A virtual machine (VM) is an emulated or digital version of a physical computer. Virtual machines can be used to run different operating systems and applications, store data, connect to networks, as well as perform other tasks like a physical device. Virtual machines run on a physical device called a host or parent server. And a virtual machine is called a guest or child.
在本文中,我将解释虚拟机的工作原理以及它们与容器的区别。我还将详细介绍虚拟机的一些最重要的用途,包括跨平台软件开发和恶意软件调查。
虚拟机如何工作?
基本上,虚拟化技术允许用户在单个主机上同时创建和运行多个虚拟机。例如,Windows 主机可以运行具有Windows、CentOS、Ubuntu和其他Linux发行版的不同虚拟机。
A virtual server uses hypervisor software to interact with the underlying physical hardware. It makes it possible to keep VMs separate and evenly allocate host resources (CPUs, storage, and memory) to each VM guest as needed. The hypervisor can also schedule operations to prevent deadlocks.

两种类型的虚拟化软件
虚拟化中使用了两种主要类型的虚拟化软件。
类型 1 虚拟化软件(进程虚拟机)
首先是类型1 hypervisor,也被称为裸金属hypervisor,可以在物理计算机上原生运行。通常需要一个单独的管理工具来创建/管理虚拟机并管理hypervisor上的权限。Microsoft Hyper-V和Citrix Hypervisor是类型1 hypervisor的例子。
类型2 Hypervisor(系统VM)
A type 2 hypervisor, also known as a hosted hypervisor, can run as an application on the host OS. It allows users to manually create a virtual machine instance and install a guest operating system.
类型2 hypervisor相对较慢,因为每个虚拟机请求都必须路由到主机操作系统。适用于个人、开发人员和无法购买专用服务器的小型公司。一些常见的类型2 hypervisor示例包括Oracle VirtualBox和VMware Workstation。
什么是虚拟化?
虚拟化是一种技术,涉及在物理主机机器上创建一个抽象层。它有助于将单台计算机的硬件资源(CPU、RAM和存储)划分为称为虚拟机的不同虚拟计算机。
每台虚拟机都表现为具有自己操作系统的独立机器。对于希望在单台物理服务器上运行多个操作系统和应用程序的组织来说,这是一种经济高效的解决方案。
五种虚拟化类型
有五种常见的虚拟化类型:硬件、软件、存储、网络和桌面虚拟化。
1. 硬件虚拟化
硬件虚拟化,也称为服务器虚拟化,是一种允许用户创建计算机和操作系统虚拟版本的技术。它使得可以同时在同一台物理机器上运行多个操作系统。硬件虚拟化还优化了硬件资源的利用。
2. 软件虚拟化
软件虚拟化是一种方法,使物理主机能够运行多个虚拟计算机。它利用 hypervisor 软件在不同虚拟机(VM)之间分配硬件资源(如存储空间、处理器和内存)。例如,可以在运行 Windows 操作系统的计算机上的虚拟机中运行 Linux 发行版。
3. 存储虚拟化
存储虚拟化将来自多个网络存储设备的物理存储整合为单个虚拟磁盘。它具有诸多好处,包括降低成本、负载平衡、灾难恢复计划以及提高性能和速度。
4. 网络虚拟化
网络虚拟化是将物理网络组合成单个基于软件的虚拟网络的过程。它有助于将可用带宽分配到各种通道并分配给设备和服务器。它提供的好处包括提高安全性、可靠性和网络速度。
5. 桌面虚拟化
桌面虚拟化使用户能够模拟工作站负载,以便可以在任何设备上的任何位置访问。其主要好处包括节省成本、资源优化、增强数据安全性和更易管理。
使用虚拟机的主要好处是什么?
虚拟机为终端用户和IT管理员提供了各种好处。以下是使虚拟机在企业环境中非常吸引人的一些功能:
1. 云计算
虚拟化技术为云计算提供了基本架构。它使企业能够部署和迁移云原生虚拟机到本地服务器环境,并利用混合云。
组织也可以实时分配和更改云资源以满足其动态使用需求。基于云的VM服务很受欢迎,用于运行SaaS应用程序,备份数据,以及托管电子邮件和访问管理服务。
2. 成本效益
虚拟机允许组织在单个服务器上创建和运行多个虚拟机实例。由于IT硬件成本可能是企业面临的真正挑战,VM可以通过使用最少的物理硬件资源来提高成本效益。例如,IT管理员可以使用单个服务器机器在企业环境中部署不同的应用程序。
3. 安全性
用户可以创建虚拟环境来增强安全性,防止恶意软件影响底层硬件和操作系统。用户可以在遭受网络攻击时快速轻松地将受损的虚拟机还原到旧版本。
同时,开发人员可以利用虚拟机来测试软件更新和应用程序,然后再发布给生产用户。虚拟机对于研究人员测试恶意软件也很有帮助。
4. 可扩展性和可移植性
虚拟化允许客户快速部署不同类型的虚拟机,选择他们喜欢的操作系统和一组特定的资源。虚拟机还可以帮助组织更好地应对工作负载的变化。它们还可以节省在物理服务器上安装不同操作系统所需的额外时间和精力。
5. 工作负载迁移
虚拟机被称为“自包含包”,与物理计算机解耦。这使得IT团队更容易迁移到更快的硬件,将虚拟机从一台服务器迁移到另一台,以及从故障中恢复。
6. 灾难恢复
组织可以利用虚拟机在云环境中备份其系统。这种能力提供了额外的安全层,并最大程度地减少了在硬件故障等情况下数据丢失的风险。
7. DevOps支持
虚拟机为企业开发人员提供了最大的灵活性。他们可以创建具有完整功能的隔离环境,用于软件开发和测试过程。虚拟机还允许开发人员在不同的操作系统上运行和测试不兼容的软件。
虚拟机与容器
与虚拟机一样,容器使得可以运行与基础主机隔离的应用程序。然而,让我们更仔细地看一下虚拟机和容器之间的主要区别:
Virtual Machines | Containers |
---|---|
Hardware-level process isolation | Operating system-level process isolation |
A virtual machine offers complete isolation of apps from the host OS | Containers can share some resources with the host OS |
VMs use a few GBs of system memory | Containers require less memory space (KBs or MBs) |
Each VM has a dedicated OS | Containers can share OS resources |
VM is more secure | Containers are less secure |
Boots in minutes | Boots in seconds |
VMs consume more system resources | Containers consume fewer resources |
VMs can move between hardware | Containers are destroyed and recreated |
VM creation takes a considerable amount of time | Users can create containers within a few seconds |
Users can run any OS inside the VM | Users can only run containers on the same OS version as the host |
Some popular use cases of VMs are running multiple applications, monolithic applications, and legacy apps on older OS. | Containers are best for running web apps, DevOps testing, and microservices. |
虚拟机的主要用途
虚拟机对终端用户和IT管理员有多种用途。以下是一些示例:
1. 测试新操作系统
虚拟机使用户能够在单个物理主机上运行不同的操作系统。这意味着用户可以在不影响主要操作系统的情况下测试新功能。
如果您是Windows Insider,您可能会倾向于使用虚拟机来测试来自Dev通道的Windows 11预览版本构建。这些构建可能会非常不稳定,但如果您的虚拟机因某种原因无法启动,则可以重新创建虚拟机并重新安装操作系统。
2. 运行传统或不兼容软件
虚拟机的另一个常见用途是在企业环境中使用传统软件应用程序的能力。虚拟机允许用户运行其现有操作系统不支持的软件。
3. 恶意软件调查
恶意软件研究人员经常需要新的机器来测试恶意程序或应用程序。这就是虚拟机派上用场的地方。他们可以在虚拟机中测试软件,而不是在物理主机上面临感染风险。
4. 跨平台软件开发
虚拟化技术使软件开发人员和测试人员能够跨多个平台测试他们的应用程序。例如,开发团队可以使用各种虚拟机在模拟环境中测试应用程序的不同版本。
5. 培训课程
培训室计算机运行各种操作系统的多个实例非常重要。虚拟机使培训师能够进行模拟不同业务场景和环境的培训。
6. 安全浏览
最后,虚拟机可以帮助确保用户获得安全的浏览体验。可以对虚拟机在当前状态下进行快照,然后在出现恶意软件感染的情况下回滚。用户可以设置第2类型的hypervisor,或请求IT管理员临时授权访问托管在服务器上的虚拟桌面。
结论
总之,虚拟机是一种能够让IT团队高效分配系统资源并管理大型计算机集群的经济有效解决方案。然而,虚拟机具有各种优缺点,组织通常根据其业务需求采用混合方法(物理机和虚拟机)。