了解Linux虚拟化
本章为读者提供了Linux虚拟化中的主流技术及其相对于其他技术的优势的见解。本书共有14章,涵盖了KVM虚拟化的所有重要方面,从KVM内部和高级主题(如软件定义的网络,性能调整和优化)到物理到 虚拟迁移开始。
在本章中,我们将介绍以下主题:
• Linux虚拟化及其基本概念
• 为什么要使用Linux虚拟化
• 虚拟机监控程序/ VMM
• Linux虚拟化在云中为您提供什么
• 公共和私有云
什么是虚拟化?
在哲学上,虚拟的意思是“不真实的东西”。在计算机科学中,虚拟表示“不是真实的硬件环境”。在这里,我们复制物理硬件的功能,并将其提供给操作系统。用于创建此环境的技术可以称为虚拟化技术,简称虚拟化。运行虚拟化软件(管理程序或虚拟机监视器)的物理系统称为主机,安装在虚拟机管理程序顶部的虚拟机称为客户机。
为什么要使用Linux虚拟化?
虚拟化首先以用户模式Linux (UML)的形式出现在Linux中 ,它引发了一场革命,使Linux进入虚拟化 竞赛。如今,Linux中提供了多种虚拟化选项,可将一台计算机转换为多台计算机。流行的Linux虚拟化解决方案包括KVM,Xen,QEMU和VirtualBox。在本书中,我们将重点介绍KVM虚拟化。
开放性,灵活性和性能是吸引用户使用Linux虚拟化的一些主要因素。就像任何其他开源软件一样,Linux中的虚拟化软件是以协作方式开发的。这间接为用户带来了开源模型的优势。例如,与封闭源代码相比,开放源代码得到了社区的广泛投入,并间接帮助降低了研发成本,提高了效率,性能和生产力。开源模型总是鼓励创新。以下是开源提供的其他一些功能:
• 用户驱动的实际问题解决方案
• 社区和用户群的支持,可以帮助其他用户 解决问题
• 提供基础设施选择
• 数据和安全性的控制,因为可以在需要时免费阅读,理解和修改代码
• 避免使用锁定灵活性来迁移具有类似产品的整个负载,并避免供应商锁定
虚拟化类型
简而言之,虚拟化是虚拟化诸如硬件,网络,存储,应用程序,访问等内容的过程。因此,任何组件都可以进行虚拟化。
有关虚拟化中 各种可能性的更多详细信息,请参阅虚拟化的优势部分。
例如:
• SDN或软件定义的网络,https ://en.wikipedia.org/ wiki / Software-defined_networking。这些技术是网络虚拟化的示例,https://en.wikipedia.org/wiki/Network_ 虚拟化。
• 软件定义的存储(SDS),https ://en.wikipedia.org/wiki/Software-defined_storage。这是存储虚拟化的一部分, https://en.wikipedia.org/wiki/Storage_virtualization。
• 应用程序流,远程桌面服务和桌面虚拟化技术属于应用程序虚拟化类别,即https://en.wikipedia.org/wiki/Application_virtualization。
但是,在本书的上下文中,我们将主要从软件(基于管理程序的)虚拟化方面讨论虚拟化。从这个角度来看,虚拟化是隐藏底层物理硬件的过程,以便可以被多个操作系统共享和使用。这也称为平台虚拟化。简而言之,此操作在基础硬件和在其之上运行的操作系统之间引入了称为管理程序 / VMM的层。在管理程序之上运行的操作系统称为客户机或虚拟机。
虚拟化的优势
让我们讨论虚拟化的一些优点:
• 服务器整合:众所周知,虚拟化有助于节省功率并减少能耗。通过虚拟化进行服务器整合还可以减少整个数据中心的总体占地面积。虚拟化减少了物理或裸机服务器的数量,减少了网络堆栈组件和其他物理组件(例如机架)。最终,这将减少占地面积,节省功率等。这样可以为您节省更多的钱,也有助于提高能源利用率。还能确保提高硬件利用率吗?是的,它确实。我们可以为虚拟机提供所需的确切数量的CPU,内存和存储资源 ,这反过来又可以确保 提高硬件利用率。
• 服务隔离:假设不存在虚拟化;在这种情况下,实现服务隔离的解决方案是什么?是不是我们需要在每个物理服务器上运行一个应用程序?是的,这可以确保我们实现服务隔离;但是,这不会导致物理服务器蔓延,服务器利用率不足和成本增加吗?毫无疑问,我可以这么说。服务器虚拟化可通过在更少的物理服务器上整合许多虚拟机来帮助隔离应用程序,并消除应用程序兼容性问题。简而言之,服务隔离技术带来了简化服务管理的优势。
• 更快的服务器预配:预配裸机系统将花费一些时间,即使我们在路径中有一些自动化过程也是如此。但是在进行虚拟化的情况下,您可以从预构建的映像(模板)或快照中生成虚拟机。可以想象,就是这么快。另外,您实际上不必担心物理资源配置(例如“网络堆栈”),这会给物理或裸机 服务器配置带来负担。
• 灾难恢复:拥有虚拟化数据中心后,灾难恢复变得非常容易。通过虚拟化,您可以获取虚拟机的最新快照。这些快照可以快速重新部署,因此您可以达到一切正常的状态。此外,虚拟化还提供在线和离线VM迁移技术等功能,因此您始终可以将这些虚拟机移动到 数据中心的其他位置。这种灵活性有助于制定更好的灾难恢复 计划,该计划更易于制定,并且成功率更高。
• 动态负载平衡:嗯,这取决于您设置的策略。随着服务器工作负载的变化,虚拟化可以根据您设置的策略,将过度利用服务器资源的虚拟机迁移(实时迁移)到未充分利用的服务器中。大多数虚拟化解决方案都为用户提供了此类策略。这种动态负载平衡可有效利用服务器资源。
更快的开发和测试环境:如果要临时测试环境,请考虑一下。在物理服务器上部署它真的很困难,不是吗?另外,如果您临时设置此环境,那将不会有太多价值。但是,使用虚拟化设置开发或测试环境真的很容易。通过使用客户机操作系统/ VM,可以通过在已知且受控的环境中隔离应用程序来实现快速部署。它还消除了许多安装导致的未知因素,例如混合库。特别是,如果是开发或测试环境,由于安装过程中发生的实验,我们可以预期会导致严重的崩溃。如果我们在物理或裸机服务器上,则需要数小时的重新安装。但是,以防万一 虚拟机,这全都只是简单地复制虚拟映像并重试。
• 提高了系统的可靠性和安全性:虚拟化解决方案在虚拟机和底层物理硬件之间添加了一层抽象。物理硬盘上的数据由于某种原因而损坏并影响整个服务器是很常见的。但是,如果将其存储在虚拟机硬盘中,则主机系统中的物理硬盘将保持完整,因此无需担心更换虚拟硬盘的麻烦。在任何其他情况下,虚拟化都可以防止由于软件(例如设备驱动程序)引起的内存损坏而导致系统崩溃。管理员有权在独立和隔离的环境中配置虚拟机。虚拟机的这种沙箱部署可以为基础结构提供更高的安全性,因为管理员可以灵活地选择最适合此设置的配置。如果管理员认为特定的VM不需要访问Internet或其他生产网络,则可以使用完全隔离的网络配置在网络跃点后面轻松配置虚拟机,并将访问权限限制在世界其他地方。这有助于减少感染引起的风险 一个单一的系统,然后影响许多生产计算机或虚拟机。
操作系统独立性或减少的硬件供应商锁定:虚拟化是关于在底层硬件之间创建抽象层,并将虚拟硬件提供给在堆栈顶部运行的客户机操作系统的。虚拟化消除了硬件供应商的锁定,不是吗?话虽这么说,但通过虚拟化,必须将设置绑定到一个特定的供应商/平台/服务器,尤其是当虚拟机并不真正在乎其运行的硬件时。因此,数据中心管理员在选择服务器设备时具有更大的灵活性。简而言之,虚拟化技术的优势在于其硬件独立性和封装性。这些功能增强了可用性和业务连续性。虚拟化的优点之一是软件和硬件之间的抽象。
正如我们在上一节中讨论的那样,即使可以在不同的领域实现虚拟化,我也想更多地谈论操作系统虚拟化和软件虚拟化。
操作系统虚拟化/分区
操作系统虚拟化技术允许同一台物理主机服务于不同的工作负载并隔离每个工作负载。请注意,这些工作负载在同一操作系统上独立运行。这允许物理服务器运行多个独立的操作系统实例,称为容器。如果我们称其为基于容器的虚拟化,那没有错。这种虚拟化的优点是主机操作系统不需要为与其不同的操作系统模拟系统调用接口。由于不存在上述接口,因此无法将替代操作系统虚拟化或容纳在这种类型的虚拟化中。这是此类虚拟化的常见且易于理解的限制。Solaris容器,FreeBSD监狱和Parallel的OpenVZ属于这种虚拟化类别。使用这种方法时,所有工作负载都在单个系统上运行。内核提供了进程隔离和资源管理。即使所有虚拟机/容器都在同一内核下运行,它们也拥有自己的文件系统,进程,内存,设备等。从另一个角度来看,同一物理主机上的Windows,Unix和Linux工作负载混合不属于这种类型的虚拟化。由于一个操作系统支持所有虚拟环境,因此性能和效率的优势无法弥补这项技术的局限性。此外,从一个分区切换到另一分区的速度非常快。
在我们进一步讨论虚拟化并进入下一类虚拟化(基于管理程序/软件虚拟化)之前,了解计算机科学中的一些术语将很有用。话虽这么说,让我们从所谓的“保护环”开始。在计算机科学中,存在各种分层保护域/特权环。这些是根据访问计算机系统中资源时强制执行的安全性保护数据或故障的机制。这些保护域有助于计算机系统的安全。
资料来源:https : //en.wikipedia.org/wiki/Protection_ring
如上图所示,保护环的编号从最高特权到最低特权。环0是特权最高的级别,它直接与物理硬件(例如CPU和内存)进行交互。通过这些特权环,可以保护诸如内存,I / O端口和CPU指令之类的资源。环1和2大多未使用。大多数通用系统仅使用两个环,即使它们所运行的硬件提供的CPU模式更多(https://en.m.wikipedia.org/wiki/CPU_modes)。主要的两种CPU模式是内核模式和用户模式。从操作系统的角度来看,Ring 0被称为内核模式/管理程序模式,而Ring 3被称为用户模式。如您所料,应用程序在Ring 3中运行。
诸如Linux和Windows之类的操作系统使用超级用户/内核和用户模式。由于对内存,CPU和I / O端口的访问受到限制,因此用户模式在不调用内核或没有内核的情况下几乎无法对外界做任何事情。内核可以在特权模式下运行,这意味着它们可以在环0上运行。要执行专门的功能,用户模式代码(所有应用程序在环3上运行)必须执行系统调用(https://en.m。 wikipedia.org/wiki/ System_call)更改为管理员模式,甚至进入内核空间,在该模式下,操作系统的受信任代码将执行所需的任务,并将执行返回给用户空间。简而言之,在正常环境下,操作系统在环0中运行。它需要最特权的级别来进行资源管理和提供对硬件的访问。下图对此进行了解释:
0以上的环在称为无保护的处理器模式下运行指令。系统管理程序/ 虚拟机监视器(VMM)需要访问主机的内存,CPU和I / O设备。由于只允许在环0中运行的代码执行这些操作,因此它需要在特权最高的环(即环0)中运行,并且必须放在内核旁边。如果没有特定的硬件虚拟化支持,则虚拟机管理程序或VMM将在环0上运行;否则,虚拟机将在环0上运行。这基本上在环0中阻止了虚拟机的操作系统。因此,VM的操作系统必须驻留在Ring 1中。由于不知道虚拟化层,因此安装在VM中的操作系统也有望访问所有资源。为此,它必须在类似于VMM的Ring 0中运行。由于一次只能在一个环0中运行一个内核,因此客户机操作系统必须以较少的特权在另一个环中运行,或者必须进行修改才能在用户模式下运行。
这导致引入了两种称为完全虚拟化和半虚拟化的虚拟化方法,我们将在以下各节中进行讨论。
完全虚拟化
在完全虚拟化中,将模拟特权指令以克服环1中运行的客户机操作系统和环0中运行的VMM带来的限制。完全虚拟化是在第一代x86 VMM中实现的。它依赖于技术,诸如二进制转换(HTTPS://en.wikipedia 组织/维基/ Binary_translation)以捕获和虚拟化的某些敏感和非虚拟化的指令的执行。这就是说,在二进制转换中,某些系统调用被解释并动态重写。下图描述了客户机OS如何通过Ring 1访问特权指令的主机硬件,以及如何在 不涉及Ring 1的情况下执行非特权指令:
使用这种方法,可以发现关键指令(在运行时静态或动态地),并用要在软件中模拟的VMM陷阱代替。 与在本地虚拟化体系结构上运行的虚拟机相比,二进制转换可能会产生较大的性能开销。
但是,如上图所示,当我们使用完全虚拟化时,我们可以使用未修改的客户机操作系统。这意味着我们不必更改客户机内核即可在VMM上运行。当客户机内核执行特权操作时,VMM提供CPU仿真来处理和修改受保护的CPU操作,但是,如前所述,与其他虚拟化模式(称为半虚拟化)相比,这会导致性能开销。
半虚拟化
在半虚拟化中,需要修改客户机操作系统,以便允许这些指令访问环0。换句话说,需要修改操作系统,以通过“后端”(超级调用)在VMM /管理程序和客户机之间进行通信。 )路径。
请注意,我们也可以将VMM称为管理程序。
准虚拟化(https://en.wikipedia.org/wiki/Paravirtualization)是一种技术,其中虚拟机管理程序提供API,并且客户机虚拟机的操作系统调用该API,这需要修改主机操作系统。特权指令调用与VMM提供的API函数交换。在这种情况下,修改后的客户机操作系统可以在环0中运行。
如您所见,在这种技术下,客户机内核被修改为可以在VMM上运行。换句话说,客户机内核知道已被虚拟化。本应在环0中运行的特权指令/操作已被称为超级呼叫的调用所替代,该调用与VMM进行通信。超级调用调用VMM代表客户机内核执行任务。由于客户机内核具有通过超级调用与VMM直接通信的能力,因此与完全虚拟化相比,该技术可提高性能。但是,这需要专门的客户机内核,该内核应了解超虚拟化技术并附带所需的软件支持。
硬件辅助虚拟化
英特尔和AMD意识到,由于性能开销和复杂性,完全虚拟化和半虚拟化是x86架构上虚拟化的主要挑战(由于本书的范围仅限于x86架构,因此我们将在这里主要讨论该架构的演变)。在设计和维护解决方案中。英特尔和AMD独立创建了x86架构的新处理器扩展,分别称为英特尔VT-x和AMD-V。在Itanium架构上,硬件辅助虚拟化称为VT-i。硬件辅助虚拟化是一种平台虚拟化方法,旨在有效利用具有硬件功能的完整虚拟化。许多供应商以不同的名称来称呼该技术,包括加速虚拟化,硬件虚拟机和本地虚拟化。
为了更好地支持虚拟化,英特尔和AMD推出了虚拟化技术(VT)和安全虚拟机(SVM))分别作为IA-32指令集的扩展。这些扩展允许VMM /管理程序在较低特权级的环中运行希望以内核模式运行的客户机OS。硬件辅助虚拟化不仅提出了新的指令,而且引入了一个新的特权访问级别,称为环-1,虚拟机管理程序/ VMM可以在其中运行。因此,客户机虚拟机可以在环0中运行。借助硬件辅助虚拟化,操作系统可以直接访问资源,而无需进行任何仿真或操作系统修改。虚拟机管理程序或VMM现在可以在新引入的特权级别Ring -1上运行,而客户机操作系统则在Ring 0上运行。此外,借助硬件辅助的虚拟化,VMM /管理程序可以轻松运行,并且与提到的其他技术,
简而言之,这种支持虚拟化的硬件提供了构建VMM的支持,还确保了客户机操作系统的隔离。这有助于获得更好的性能并避免设计虚拟化解决方案的复杂性。现代虚拟化技术利用此功能提供虚拟化。一个示例是KVM,我们将在本书的范围内对其进行详细讨论。
介绍VMM /管理程序
顾名思义,VMM或系统管理程序是一种软件,负责监视和控制虚拟机或客户机操作系统。系统管理程序/ VMM负责确保不同的虚拟化管理任务,例如提供虚拟硬件,VM生命周期管理,VM迁移,实时分配资源,定义虚拟机管理策略等。VMM /管理程序还负责有效控制物理平台资源,例如内存转换和I / O映射。虚拟化软件的主要优点之一是它能够运行在同一物理系统或硬件上运行的多个guest虚拟机。多个客户机系统可以在相同或不同的操作系统上。例如,同一物理系统上可以有多个Linux guest虚拟机系统作为guest虚拟机运行。VMM负责分配这些客户机操作系统请求的资源。必须根据这些客户机操作系统的配置将系统硬件(例如处理器,内存等)分配给这些客户机操作系统,并且VMM可以完成此任务。因此,VMM是虚拟化环境中的关键组件。
根据VMM /管理程序的位置及其放置位置,它分为1类或2类。
1型和2型管理程序
根据虚拟机管理程序在系统中的位置,或者换句话说,系统中是否存在底层操作系统,虚拟机管理程序主要分为1类或2类虚拟机管理程序。但是,没有对类型1和类型2虚拟机管理程序的明确定义或标准定义。如果VMM /管理程序直接在硬件之上运行,则通常将其视为1类管理程序。如果存在操作系统,并且VMM /管理程序作为单独的层运行,则它将被视为2类管理程序。再次,这个概念是有争议的,对此没有标准的定义。
Type 1虚拟机管理程序直接与系统硬件交互;它不需要任何主机操作系统。您可以将其直接安装在裸机系统上,并准备好承载虚拟机。类型1管理程序也称为裸机,嵌入式或本 机管理程序。
oVirt-node是Type 1 Linux虚拟机管理程序的一个示例。下图提供了Type 1虚拟机管理程序设计概念的图示:
|
这是类型1管理程序的优点:
• 易于安装和配置
• 体积小,经过优化,可以将大部分物理资源提供给托管客户机(虚拟机)
• 产生更少的开销,因为它仅附带运行虚拟机所需的应用程序
• 更安全,因为一个客户机系统中的问题不会影响在管理程序上运行的其他客户机系统
但是,类型1虚拟机管理程序不支持自定义。通常,不允许您在上面安装任何第三方应用程序或驱动程序。
另一方面,Type 2虚拟机管理程序位于操作系统的顶部,使您可以进行许多自定义。2型管理程序也称为 托管管理程序。类型2虚拟机管理程序的操作取决于主机操作系统。Type 2虚拟机管理程序的主要优点是 广泛的硬件支持,因为底层主机OS正在控制硬件访问。下图说明了Type 2虚拟机管理程序设计概念:
|
确定要使用的虚拟机管理程序的类型主要取决于要在其中部署虚拟化的基础架构。
此外,还有一个概念,即类型1虚拟机管理程序直接放置在硬件之上,因此与类型2虚拟机管理程序相比,性能更好。如果没有对类型1和类型2虚拟机管理程序进行正式定义,评估性能就没有多大意义。
开源虚拟化项目
下表列出了Linux中的开源虚拟化项目:
项目 | 虚拟化类型 | 项目网址 |
KVM(基于内核的虚拟机) | 完全虚拟化 | http://www.linux-kvm.org/ |
虚拟盒子 | 完全虚拟化 | https://www.virtualbox.org/ |
en | 完全虚拟化和半虚拟化 | http://www.xenproject.org/ |
客串 | 半虚拟化 | http://lguest.ozlabs.org/ |
UML(用户模式Linux) |
| http:// user-mode-linux。 sourceforge.net/ |
Linux-V服务器 |
| http://www.linux-vserver.org/ Welcome_to_Linux-VServer.org |
在接下来的部分中,我们将讨论Xen和KVM,它们是Linux中领先的开源虚拟化解决方案。
en
Xen起源于剑桥大学,是一个研究项目。Xen的第一个公开版本是在2003年。后来,该项目的负责人是美国宾夕法尼亚大学
剑桥大学的伊恩·普拉特(Ian Pratt)与西蒙·克罗斯比(Simon Crosby)(也是剑桥大学的创始人)共同创立了一家名为XenSource的公司。该公司开始以 开源方式开发该项目。2013年4月15日,Xen项目 作为协作项目移至Linux Foundation。Linux基金会 为Xen项目推出了新商标,以使该项目与较早的Xen商标的任何商业用途区别开来。有关此问题的更多详细信息,请参见xenproject。组织网站。
Xen虚拟机管理程序已移植到许多处理器家族,例如, 英特尔IA-32 / 64,x86_64,PowerPC,ARM,MIPS等。
Xen可以在准虚拟化和硬件辅助或完全虚拟化(HVM)上运行,这允许未经修改的客户机。Xen虚拟机管理程序运行名为Domains的客户机操作系统。Xen中主要有两种类型的域:
• Dom 0
• Dom U
资料来源:http : //www.xenproject.org/
Dom Us是无特权的域或访客系统。Dom 0也称为特权域或特殊客户机,并具有扩展功能。Dom Us或客户机系统由Dom 0控制。Dom0包含系统中所有设备的驱动程序。Dom 0还包含一个控制堆栈,用于管理虚拟机的创建,销毁和配置。Dom 0还具有直接访问硬件的特权。它可以处理对系统I / O功能的所有访问,并且可以与其他虚拟机进行交互。Dom 0使用虚拟驱动程序设置Dom Us与硬件设备的通信路径。它还向外界公开了控制界面,通过该界面可以控制系统。Dom 0是系统启动的第一个VM,它是Xen Project虚拟机管理程序的必备域。
如果您想了解有关Xen项目的更多信息,请参阅
http://wiki.xenproject.org/wiki/Xen_Overview 或 http://xenproject.org
介绍KVM
基于内核的虚拟机(KVM)代表了最新一代的开源虚拟化。该项目的目标是创建一个基于前代技术经验并利用当今可用的现代硬件(VT-x,AMD-V)的现代管理程序。
当您安装KVM内核模块时,KVM会将Linux内核简单地变成管理程序。但是,由于标准Linux内核是管理程序,因此它可以从对标准内核(内存支持,调度程序等)的更改中受益。对这些Linux组件(例如3.1内核中的新调度程序)的优化使管理程序(主机操作系统)和Linux客户机操作系统都受益。对于I / O仿真,KVM使用一个用户级软件QEMU。Qemu是一个进行硬件仿真的用户级程序。
它模拟处理器和一长串外围设备:磁盘,网络,VGA,PCI,USB,串行/并行端口等,以构建一个完整的虚拟硬件,可以在其上安装客户机操作系统并为此仿真供电 由KVM。
KVM的高级概述
下图从总体上概述了KVM的用户模式和内核模式组件:
ioctl()|接口
特定于供应商/技术的(AMD SVM,英特尔VMX) |
libvirtd应系统管理实用程序(例如virsh和virt-manager)的请求为每个虚拟机启动一个单独的qemu-kvm进程。虚拟机的属性(CPU数量,内存大小,I / O设备配置)在单独的XML文件中定义,这些文件位于目录/ etc / libvirt / qemu中。libvirtd使用这些XML文件中的详细信息来派生传递到qemu-kvm进程的参数列表。
这是一个例子:
qemu 14644 9.8 6.8 6138068 1078400? SL 3时14 97:29的/ usr /斌/ QEMU系统-x86_64的-machine加速度= KVM -name guest1虚拟-S -machine PC -米5000 -realtime m锁=关-smp 4,插座= 4,芯= 1 ,线程= 1
-uuid 7a615914-ea0d-7dab-e709-0533c00b921f -no-user-config
-nodefaults -chardev套接字,id = charmonitor驱动文件= / dev / vms / hypervisor2,如果=无,id =驱动器虚拟磁盘0,格式=原始,缓存=无,自动=本机-设备ID = net0, mac = 52:54:00:5d:be:06
在这里,类似于–m 5000的参数为虚拟机形成5 GB的内存,-- smp = 4指向一个4 vCPU,该CPU具有四个vSocket的拓扑,每个插槽一个内核。
什么详细的libvirt和QEMU以及它们如何相互通信提供的虚拟化,在解释第2章,KVM内幕。
Linux虚拟化在云中为您提供什么
多年来,Linux已成为开发基于云的解决方案的首选。许多成功的公有云提供商使用Linux虚拟化为其底层基础架构提供支持。例如,最大的IaaS云提供商亚马逊使用Xen虚拟化为其EC2产品提供动力,类似地,由KVM为Digital Ocean提供动力。Digital Ocean是世界第三大云提供商。Linux虚拟化也主导着私有云领域。
以下是使用Linux虚拟化构建IaaS软件的开源云软件的列表:
• Openstack:一个完全开源的云操作系统,由几个开源子项目组成,这些子项目提供了创建IaaS云的所有构件。KVM(Linux虚拟化)是OpenStack部署中使用最频繁(且得到最佳支持)的管理程序。它由与供应商无关的OpenStack基金会管理。第6章,虚拟机生命周期管理和第7章,模板和快照中详细说明了如何使用KVM构建OpenStack云。
• Cloudstack:这是另一个开放源代码的Apache软件基金会(ASF)控制的云项目,用于构建和管理高度可扩展的多租户IaaS云,该云与EC2 / S3 API完全兼容。尽管它支持所有顶级Linux虚拟机管理程序。大多数Cloudstack用户选择Xen,因为它与Cloudstack紧密集成。
• Eucalyptus:这是一种与AWS兼容的私有云软件,可帮助组织降低公有云成本并重新获得对安全性和性能的控制。它同时支持Xen和KVM作为计算资源提供程序。
摘要
在本章中,您了解了Linux虚拟化,其优势以及不同类型的虚拟化方法。我们还讨论了系统管理程序的类型,然后介绍了Xen和KVM的高级体系结构以及流行的开源Linux虚拟化技术。
在下一章中,我们将讨论libvirt,qemu和KVM 的内部工作原理,并将了解这些组件如何相互通信以实现虚拟化。