通过虚拟化,网络、存储和计算资源被抽象化,使得应用、服务和功能更少依赖于物理硬件。IT经理可以在自己的环境(包括操作系统、支持软件、网络和存储资源)中提供应用程序、服务和功能,这种环境不太容易受到在相同基础资源上运行的其他工作负载问题的影响。或者他们可以共享资源以降低成本并提高整体利用率和性能。
从标准的基于服务器的虚拟化(不包括IBM由来已久的大型机虚拟化功能)的早期开始,管理员就开始创建虚拟机,其中包含运行工作负载所需的一切,包括操作系统的完整副本、所有支持软件和模拟系统,如网络接口卡。一些IT部门正在转向更小的方法,如容器化,其中工作负载被最小化为位于虚拟化资源上并共享操作系统功能的数据包。
计算资源的虚拟化以多种方式实现,包括基于硬件的虚拟化、管理程序和基于软件的虚拟化。因此,管理员必须谨慎选择虚拟化方法。
虚拟化
在这种情况下,系统通过将一部分CPU分配给不同的工作负载来提供虚拟化。这是IBM Power体系结构的主要方面,其中可以划分部分或整个核心,为工作负载创建专用平台,并根据需要动态分配额外的资源。这样就可以将不同的工作负载提供给一个专用的环境,并且可以根据工作负载的需要进行扩展和缩减,任何单个工作负载的不良行为都不会影响到其他工作负载。
硬件虚拟化还支持需要更高可用性的工作负载(如虚拟专用网络或防病毒引擎),以便它们拥有其他工作负载无法调用的专用资源。Intel和AMD不太重视完全的硬件虚拟化,而是分别以硬件辅助的方式使用Intel虚拟化技术和AMD虚拟化。
硬件辅助虚拟化
对于硬件辅助的虚拟化,操作系统和其他软件可以完成繁重的工作,但软件需要硬件功能来提供优化的虚拟化和最小化性能损失。API将调用从应用层传递到硬件,绕过了代码执行路径中大量的侵入式模拟和调用处理。
硬件辅助虚拟化通常被认为是基于虚拟机管理程序的虚拟化功能,与底层的可用CPU相结合。
基于虚拟机管理程序的虚拟化
基于虚拟机管理程序的虚拟化是企业数据中心最常见的虚拟化形式。第1类虚拟机管理程序也称为裸机虚拟机管理程序,包括VMware vSphere/ESXi、Microsoft Hyper-V和Linux KVM。通过使用第1类虚拟机管理程序,虚拟化在操作系统实际启动之前就发挥了作用,创建了一个虚拟化的硬件平台,主机操作系统的多个实例可以通过该平台进行交互。
第2类虚拟机管理程序也称为托管虚拟机管理程序,位于主机操作系统之上。与服务器虚拟化方法相反,第2类虚拟机管理程序通常用于桌面以支持客户操作系统,例如Oracle VM VirtualBox、Parallels Desktop和VMware Fusion。
半虚拟化
完全虚拟化意味着虚拟化环境中的工作负载不知道它不是直接在物理平台上运行。半虚拟化采用了稍微不同的方法。半虚拟化不模拟硬件环境,每个工作负载运行自己的隔离域。
Xen和其他产品支持全虚拟化和半虚拟化。Oracle VM for x86和IBM LPAR使用修改后的操作系统,理解半虚拟化层,优化功能,比如从工作负载到硬件的调用权限。
操作系统级虚拟化
操作系统级虚拟化(也称为容器化)在过去几年中受到了许多人的青睐。容器化使不同的工作负载以互不信任的方式共享相同的底层资源:一个工作负载引起的任何问题都不会影响共享相同底层资源的其他工作负载。但情况并非总是如此。Docker的早期实例允许来自容器的特权调用干扰物理环境,导致多米诺效应容器损坏。默认情况下,现在禁用对受保护的底层资源的特权调用。
与硬件辅助虚拟化一样,通过直接调用底层操作系统来优化性能,无需任何模拟。随着Docker的出现,可以简单地创建工作负载,以便从一个平台转移到另一个平台,同时最大限度地减少用于提供虚拟化的资源量。操作系统级虚拟化嵌入在许多云平台中,并得到大多数DevOps系统的支持。其他提供操作系统级虚拟化的平台包括Linux Containers和IBM Workload Partitions for AIX。
云平台倾向于使用基于虚拟机管理程序或操作系统级别的虚拟化,或者将操作系统级别的虚拟化功能放在基于虚拟机管理程序的平台上。
虚拟化类型的选择取决于支持来宾操作系统的要求、安装和管理的工作负载数量、所需的整体性能和整体成本。当您尝试虚拟化包含数百个操作系统的整个平台时,许可费可能会很高。编辑AJX