虚拟机 (VM) 通常是指单个计算机上的单独操作系统安装,每个操作系统都共享计算机的系统资源。例如,可以在 Windows PC 上安装 Linux VM。多个操作系统安装可以同时共存于同一台物理机器上,只要该机器具有足够的硬件。这使 VM 成为扩展桌面和服务器环境的便捷方式。VM 的其他好处包括易于配置和维护以及高可用性。
虚拟化和虚拟机的定义
虚拟化使用软件模拟计算机硬件,创建虚拟系统。应用程序、服务器、存储和网络都可以虚拟化。虚拟化是作为一种整合服务器的方式出现的。在虚拟化之前,您会看到许多数据中心充满了运行不同操作系统和应用程序的服务器。通过虚拟化,现在可以在单个服务器上存储多个操作系统和应用程序。因此,当今数据中心的服务器数量比以前少了。
VM 是指其他操作系统和应用程序所在的虚拟计算机系统。VM 是独立的,完全独立于充当其主机的物理硬件。一台主机上可以安装多个虚拟机或来宾机器。
称为管理程序的软件位于 VM 和主机之间,负责将主机的计算资源分配给 VM。管理程序可以是类型 1 或类型 2 管理程序。Type-1 管理程序直接在主机的硬件上运行;Type-2 管理程序运行在硬件操作系统之上。Microsoft Hyper-V 是 1 型管理程序的一个示例;Parallels® Desktop for Mac 是 2 类管理程序。
VM 的其他特征包括:
- 一台服务器可以托管许多虚拟机,管理程序将其在服务器系统资源中的份额分配给每个虚拟机。
- 每个 VM 都是独立的,独立于其余硬件执行。
- VM 的状态可以保存到文件中,VM 可以像文件一样移动和复制。
- 虚拟机不依赖于任何服务器;相反,它们可以轻松迁移到另一台服务器。
虚拟机的好处
在您的组织中使用虚拟机有很多好处,包括:
节约成本
在虚拟化之前,组织将很大一部分 IT 支出用于购买用于托管应用程序的物理服务器。随着虚拟化取得进展,组织转而购买更强大的硬件,以适应更多的虚拟系统。这比购买更多硬件的成本要低得多。此外,您可以使用 VM 延长旧软件的使用寿命。
轻松配置
更换遭受灾难性事件袭击的物理服务器可能需要数小时或数天时间。相比之下,虚拟化环境只需几分钟即可再次启动,因为您始终可以复制或克隆它们。
提高生产力
IT 团队的工作效率更高,因为他们只需维护主机。对于尚未迁移到虚拟化环境的传统数据中心,硬件维护更加繁琐。
高效的 DevOps
维护操作对您的生产环境的影响最小。在许多情况下,执行维护时不需要停机。此外,VM 允许简化应用程序和网站的测试和开发过程。
环境友好型 IT 运营
服务器数量越少,您节省的功耗就越多。这会降低您的运营费用,并减少数据中心的碳足迹。
容器:虚拟机的替代品
与在自己的操作系统上运行的 VM 不同,容器包含在单个操作系统安装中。它们共享主机操作系统内核和资源,包括二进制文件和库。它们也是独立且轻量级的,只需几秒钟即可启动,而 VM 则要重得多,可能需要一分钟或更长时间才能启动。
由于它们的尺寸更小,与 VM 相比,您可以将更多应用程序放在带有容器的单个服务器上。它们也非常适合用于开发、测试和部署,因为您基本上可以在这些环境中运行相同的容器。
Linux 容器 (LXC) 和 Docker 是两种比较流行的容器类型。使用 LXC,您可以在单个主机上运行多个 Linux 系统。Docker 通过使容器更加便携和灵活扩展了 LXC,并从此成为用于管理容器的领先容器运行时环境。
容器有其自身的优势,包括更低的内存需求、更小的快照大小、本机级性能和更快的部署时间。
虚拟机相对于容器的优势
虽然容器较新并且有其自身的优势,但由于以下原因,虚拟机仍然是首选:
完全隔离意味着更高的安全性
来宾操作系统和主机之间的通信通过管理程序进行,因此更加安全。由于容器保留在主机操作系统中,因此它们更容易受到操作系统安全漏洞的影响。
可移植性意味着虚拟机可以更好地运行旧应用程序
VM 是独立的和可移植的——它们可以在主机之间复制和克隆。要运行旧应用程序,您只需要有一个支持该应用程序的客户操作系统。对于容器,如果主机操作系统不支持旧应用程序,则它不可能运行。
更好的资源分配意味着更好的运行资源密集型应用程序的能力
VM 可以更好地运行资源密集型应用程序,因为主机为它们分配了自己的资源。容器共享有限的资源——主机中的容器越多,分配给容器的资源就越少。
多功能性意味着分配持久存储的能力
如果需要,可以将 VM 设置为存储持久数据。容器本质上是短暂的。您需要容器的复杂存储解决方案来处理持久存储。