虚拟化是一种能够更有效地利用物理计算机硬件的过程,是云计算的基础。
虚拟化技术使用软件,在计算机硬件上创建一个抽象层,能够将单台计算机的硬件元素(处理器、内存、存储等)分成多个虚拟计算机(通常称为虚拟机 (VM))。 每个虚拟机都会运行自己的操作系统 (OS),其行为就像一台独立的计算机,即使它只在一部分实际底层计算机硬件上运行。
由此可见,虚拟化可以更高效地利用物理计算机硬件,提高组织在硬件投资方面的投资回报率。
如今,虚拟化已成为企业 IT 架构的标准实践。 它也是推动云计算经济发展的技术。 虚拟化使云提供商能够使用他们现有的物理计算机硬件为用户提供服务; 它使云用户能够在需要时仅购买所需的计算资源,并随着工作负载的增长经济实惠地扩展这些资源。
有关虚拟化工作原理的进一步概述,请观看我们的视频“虚拟化解释”:
虚拟化为数据中心运营商和服务提供商带来诸多好处:
要更深入地了解潜在收益,请参阅“虚拟化的 5 大优点。”
多家公司提供虚拟化解决方案,涵盖特定数据中心任务或以最终用户为中心的桌面虚拟化场景。 比较知名的例子包括 VMware,他们专门从事服务器、桌面系统、网络和存储虚拟化;Citrix 在应用虚拟化领域占有一席之地,但也提供服务器虚拟化和虚拟桌面解决方案; 另外还有 Microsoft,Windows 中随附了 Hyper-V 虚拟化解决方案,专注于服务器和桌面计算机的虚拟版本。
虚拟机 (VM) 是一种以软件形式模拟物理计算的虚拟环境。 它们通常由多个文件组成,包含 VM 的配置、虚拟硬盘驱动器的存储以及 VM 用于保留特定时间点状态的一些快照。
有关虚拟机的完整概述,请参阅“什么是虚拟机?”
虚拟机管理器是用于协调 VM 的软件层。 它充当 VM 与底层物理硬件之间的接口,确保每个 VM 都有权访问它执行任务所需的物理资源。 它还确保 VM 不会因为占用彼此的内存空间或计算周期而相互干扰。
存在两种类型的虚拟机管理器:
"虚拟机管理器:完全指南"提供了有关虚拟机管理器所有内容的全面概述。
到目前为止,我们讨论了服务器虚拟化,但许多其他 IT 基础架构元素也可以实现虚拟化,从而为整个企业尤其为 IT 经理带来显着优势。 在本部分,我们将介绍以下类型的虚拟化:
桌面虚拟化使您能够运行多个桌面操作系统,每个操作系统在同一台计算机上其自己的 VM 中运行。
桌面虚拟化有两种类型:
有关桌面虚拟化的更多信息,请参阅 "桌面即服务 (DaaS)。"
网络虚拟化使用软件创建网络的"视图",管理员可使用该视图,从单一控制台管理网络。 它抽象了硬件元素和功能(例如,连接、交换机、路由器等),将它们抽象为在虚拟机管理器上运行的软件。 网络管理员可在不接触底层物理组件的情况下修改和控制这些元素,这极大地简化了网络管理。
网络虚拟化的类型包括软件定义的联网 (SDN), 它虚拟化用于控制网络流量路由的硬件(称为"控制平面");以及网络功能虚拟化 (NFV),它虚拟化用于提供特定网络功能的一个或多个硬件设备(例如,防火墙、负载平衡器或流量分析器),使这些设备更容易配置、供应和管理。
存储虚拟化使网络上的所有存储设备都可以作为单个存储设备进行访问和管理,而无论它们是安装在各个服务器上,还是作为独立存储单元存在。 具体而言,存储虚拟化将所有存储块整合到单一共享池中,可根据需要将池中的存储分配给网络中的任何 VM。 存储虚拟化可以更轻松地为 VM 配置存储,并最大程度利用网络上的所有可用存储。
要进一步详细了解存储虚拟化,请参阅“什么是云存储?”
现代企业将多个应用中使用多种文件格式的数据存储在多个位置,包括云、本地硬件和软件系统。 数据虚拟化使任何应用都可以访问所有这些数据 - 无论来源、格式或位置如何。
数据虚拟化工具在访问数据的应用和存储数据的系统之间创建了一个软件层。 该层可根据需要转换应用的数据请求或查询,并返回可能涉及多个系统的结果。 如果其他类型的集成不可行、不理想或经济上不可承受,则可使用数据虚拟化打破数据孤岛。
应用虚拟化运行应用软件,不直接安装在用户的操作系统上。 这不同于完整的桌面虚拟化(如上所述),因为只有应用在虚拟环境中运行,而最终用户设备上的操作系统照常运行。 存在三种类型的应用虚拟化:
数据中心虚拟化将大部分数据中心的硬件抽象为软件,有效地帮助管理员将单个物理数据中心划分为用于不同客户端的多个虚拟数据中心。
每个客户端都可以访问自己的基础架构即服务 (IaaS) ,它们在同一底层物理硬件上运行。 虚拟数据中心为基于云的计算提供了简便的方法,使企业无需购买基础架构硬件即可快速建立完整的数据中心环境。
CPU(中央处理器)虚拟化是使虚拟机管理器、虚拟机和操作系统成为可能的基本技术。 它能够将单个 CPU 划分为多个虚拟 CPU 以供多个 VM 使用。
首先,CPU 虚拟化完全是软件定义的,但目前的许多处理器包含扩展指令集,支持 CPU 虚拟化,这有助于提高 VM 的性能。
GPU(图形处理器)是一种特殊的多核处理器,它通过接管繁重的图形或数学处理,帮助提高整体计算性能。 GPU 虚拟化使多个 VM 能够使用单个 GPU 的全部或部分处理能力,以便更快地运行视频、人工智能 (AI) 和其他图形或数学密集型应用。
Linux 包含自己的虚拟机管理器,称为基于内核的虚拟机 (KVM),它支持 Intel 和 AMD 的虚拟化处理器扩展,因此您可以在一个 Linux 主机操作系统中创建多个基于 x86 的 VM。
作为开源操作系统,Linux 高度可定制。 可创建 VM,运行针对特定工作负载定制的 Linux 版本,或运行面向较为敏感的应用的安全强化型版本。
如上所述,云计算模型依赖于虚拟化。 通过虚拟化服务器、存储和其他物理数据中心资源,云计算供应商可以为客户提供一系列服务,包括:
如果您想要了解有关这些云服务模型的更多信息,请参阅我们的指南:"基础架构即服务、平台即服务与软件即服务。"
服务器虚拟化在硬件中重现整台计算机,然后运行整个操作系统。 操作系统运行一个应用。 这比完全没有虚拟化更有效,但它仍然为您要运行的每个应用复制不必要的代码和服务。
容器则采用了另一种方法。 它们共享底层操作系统内核,仅运行应用及其依赖的内容,如软件库和环境变量。 这使得容器体量更小,部署速度更快。
要深入了解容器和容器化,请查看"容器:完全指南"和"容器化:完全指南"。
查看博客帖子"容器与虚拟机:有什么区别? ",了解更细致的对比。
在以下视频中,Sai Vennam 细致介绍了容器化的基本概念,并将其与通过 VM 实现的虚拟化进行对比:
VMware 创建虚拟化软件。 VMware 一开始仅提供服务器虚拟化 - 其 ESX(现在为 ESXi)虚拟机管理器是最早取得成功的商用虚拟化产品之一。 目前,VMware 还为网络、存储和桌面虚拟化提供解决方案。
要深入了解涉及 VMware 的所有内容,请参阅"VMware:完全指南。"
虚拟化提供了一些安全优势。 例如,受恶意软件感染的 VM 可回滚到未受感染并处于稳定状态的某个时间点(称为快照);还可以更轻松地删除和重建 VM。 您无法总是能够让非虚拟化的操作系统免受病毒感染,因为恶意软件通常深度集成到操作系统的核心组件中,靠系统回滚解决不了问题。
虚拟化也带来了一些安全挑战。 如果攻击者攻破了虚拟机管理器,那么他们就可能掌控所有 VM 和访客操作系统。 由于虚拟机管理器还允许各 VM 相互通信而不会触及物理网络,因此很难看到它们之间的流量,于是也很难检测到可疑活动。
主机操作系统上的类型 2 虚拟机管理器也易受主机操作系统攻击的影响。
市场中提供了一系列虚拟化安全产品,可以扫描和修补 VM 以杀除恶意软件,加密整个 VM 虚拟盘,以及控制和审计 VM 访问。