ProxmoxVE和XenServer成为受欢迎的开源虚拟
时间:2020-12-12

根据最近对使用ProxmoxVE和以前使用XenServer的研究,在本文中,我将讨论ProxmoxVEXenServer,并对这两种最流行的开放源码虚拟机管理程序进行分析比较,该分析比较集中于虚拟机资源分配、支持的虚拟化方法、服务器架构、虚拟机数量、主机和客户端的操作系统兼容性以及管理功能。由于提供了类似VMware产品的企业级用户操作体验,这两个开放源码的虚拟机管理程序在世界各地受到广泛欢迎。推动使用基于开放源码的虚拟机管理程序,改变了企业管理者管理计算资源的方式,降低了IT运行成本,提高了性能和灵活性。尽管ZStack这样的开源产品在国内也有很多可用的好产品,并且用户体验也比上面提到的要好,但是就企业级功能开放度而言,这是不能相比的,所以不算在本文的比较范围内。

虚拟管理程序是虚拟化技术采用和投资的主要载体和核心。现在市场上的开源虚拟内核很多,比如Xen,KVM,LXC,Docker等等。它们都依赖于单一的服务器硬件和系统,并且都需要虚拟机管理程序对它们进行管理、编排,并在大规模运行时对硬件集群资源进行池化等操作。管理程序的容量、兼容性、用户体验和性能等是解决虚拟化技术应用给运营商带来的管理难题的关键。开放源码管理程序OpenStack对此一直不太友好,因此,专门针对这些痛点进行研发的开放源码虚拟化管理程序非常流行;另外,尽管虚拟化技术的发展导致了价格的大幅下降,但是通过使用开放源码虚拟化管理程序,可以进一步降低IT投资和运行成本。于是,在大浪淘沙之后,简单实用、贴近用户的ProxmoxVEXenServer成为最流行的开源虚拟化管理软件。

lProxmoxVE(英语:ProxmoxVirtualEnvironment,通常简称为Proxmox)是基于开放源码的虚拟化解决方案,它在一个包中提供三个功能:计算、网络和存储。ProxmoxVE是一种虚拟化平台,可以同时运行虚拟机和容器。基于DebianLinux开发的ProxmoxVE是完全开源的。为了保持灵活性,ProxmoxVE同时支持两种虚拟化技术:KVM虚拟机和LXC容器。

LXenServer是基于开放源码Xen项目开发的开放源码虚拟化平台,后来被Citrix公司收购,更名为XenServer,在商业使用了一段时间之后,转向开源。在与Citrix产品和AWS云计算产品合作的基础上,XenServer主要基于Xen开源虚拟化内核构建虚拟化管理堆栈,并在Xen的支持下,广泛应用于大型企业生产环境。

以当今成熟稳定的开源虚拟化管理程序为例,具有较长历史、版本迭代稳定、经历了各种生产环境实践的开源虚拟化管理产品也是上述两款产品中最突出的。而且两个产品也从各方面证明了在很多方面有很高的相似度,所以分析比较可以客观地提供更细致的比较分析,保证在运行中,在节省成本以及基于虚拟化技术实现行业解决方案等方面,采用者可以与最佳的虚拟化管理方案相匹配,并且可以根据自身的考虑,实现最佳的解决方案,例如虚拟化需求,组织规模,人员技能,计算工作量等。

ProxmoxVEXenServer在虚拟化技术分类中分别是全虚拟化、半虚拟化、操作系统虚拟化和硬件辅助虚拟化,它们各自支持的虚拟化方法有所不同:ProxmoxVE支持完全虚拟化、硬件辅助虚拟化(基于KVM)和操作系统虚拟化,而XenServer则支持完全虚拟化、半虚拟化和硬件辅助虚拟化,见下表1

表格1:使用虚拟化方法的虚拟化管理程序。

ProxmoxVE和XenServer成为受欢迎的开源虚拟 

分析比较开放源码虚拟化ProxmoxVEXenServer

XenServer而言,虽然硬件虚拟化虚拟机在运行硬件辅助虚拟化时需要基于IntelVT-xAMD-Vx86CPU,但是半虚拟化并不需要处理器虚拟化的功能支持,而是需要修改客户操作系统内核,这与ProxmoxVE(KVM)的实现有所不同。不同于XenServer,ProxmoxVE支持操作系统级虚拟化,这在1型虚拟化管理程序中是很少见的。市场上大多数基于类型1的虚拟化管理程序都支持半虚拟化和硬件辅助虚拟化,完全虚拟化由于在运行过程中涉及到二进制转换,所以其性能并不理想,主要原因是二进制转换非常耗时,而且可能导致很高的性能开销。目前,最主要的解决方案是采用替代的高速缓存来改进二进制翻译,从而提高其速度,但是这样做会增加内存使用成本。它克服了完全虚拟化的性能问题,在x86体系结构中的半虚拟化能够提供80%97%的主机性能。由于采用了半虚拟化技术的实现机制,操作系统可以识别出虚拟化管理程序发出的超级调用命令。所以XenServer支持半虚拟化的好处就是,XenServer能够在基于Linux版本的操作系统上获得良好的运行性能,但由于半虚拟化需要修改操作系统内核,所以半虚拟化方法不支持微软的Windows操作系统。

ProxmoxVEXenServer都支持基于硬件的辅助虚拟化方法,ProxmoxVEXenServer都可以通过该方法提供适当的运行性能,这一点令人欣慰。通过硬件设计的电路,硬件辅助虚拟化能够将软件实现中的虚拟化部分转移到硬件中,从而提高了执行效率,从而提高了基于CPU处理器/内存虚拟化组合的计算能力。AWSNitro就是一个最典型的例子,它将网络、存储、安全管理和监视从传统的虚拟机分离出来,转移到专用硬件上。这三个函数都是模块化的,微型服务,使得它们可以快速迁移,并在任何时候根据新的需求进行发展。Nitro系统使用自定义ASIC,在专用的ASIC硬件上执行先前软件实现的虚拟化方法,这种架构的优点是,我们可以将所有服务器资源分配给客户的虚拟机或容器,各个大型IO模块享受与硬件同样的高速运行。

在开放源码硬件OCP和天蝎项目的运作和进展中,我认为类似于ProxmoxVEXenServer这样的虚拟化管理程序也可以在专用模块化硬件上实现标准化的分离网络、存储、安全管理和监控等功能。但是,我们现在并不关注这个问题,在当今通用硬件体系结构下,开源虚拟化管理程序符合实用性和有效性的原则,是现代基于虚拟化驱动的IT解决方案最有价值的方案。

虚拟体中最主要的虚拟化技术是我们的硬件CPU,内存和IO

 

第一,从所支持的CPU体系结构来看,ProxmoxVEXenServer都只支持x86_64体系结构,而不支持Power等体系结构。尽管从虚拟化内核XenKVM的角度来看,XenKVM都适合Power等架构的CPU,甚至是国产龙芯等MIPS架构的CPU,龙芯中科等也适合,但这两款虚拟化管理程序却是各有各的用武之地。

2总结了虚拟化管理程序与CPU架构之间的对应关系。

表格2:使用CPU架构的虚拟管理程序。

ProxmoxVE和XenServer成为受欢迎的开源虚拟 

分析比较开放源码虚拟化ProxmoxVEXenServer

第二,在受支持的客户端操作系统上,从官方提供的兼容性列表中,我们可以看到ProxmoxVEXenServer在客户端操作上的兼容性不同于Unix系统。以下具体说明:

表格3:使用客户端操作系统的虚拟管理程序。

ProxmoxVE和XenServer成为受欢迎的开源虚拟 

分析比较开放源码虚拟化ProxmoxVEXenServer

因此,ProxmoxVE是唯一一个基于开放源码的1型虚拟机管理程序,它能够有效地与所有客户操作系统协作。不同于ProxmoxVE,XenServer不支持FreeBSDNetBSD或任何其他的BSD变体作为客户操作系统,但是用户可以尝试将其作为HVM客人安装,或者自己安装,例如FreeBSD,因为I/O是模拟实现的,所以它的性能不匹配其他半虚拟客户端。BSD系统,如FreeBSD,拥有专门针对它开发的虚拟化管理程序bhyve,有兴趣了解它,并且正在寻求对其他操作系统的X86-64体系结构的兼容性支持。

对于所支持的虚拟机数量,由于每个版本的参数性能不同,所以比较采用ProxmoxVE5.xXenServer7.x这两个管理程序的更新版本。虚拟机管理程序所支持的虚拟机的数量是评价其处理能力以及资源分配和服务器整合能力的重要指标。下面的表4总结了ProxmoxVEXenServerVirtualManagement程序所支持的虚拟机数量。

表格4:虚拟机的数量,CPURAM特性。

ProxmoxVE和XenServer成为受欢迎的开源虚拟 

分析比较开放源码虚拟化ProxmoxVEXenServer

XenServer7的最大客户端数量是500,但是对于基于Linux的客户端来说,这个数量可能会增加到650,但是这个测试的数量可能会随着性能的可接受基准值而改变,例如配置较低的虚拟机可能会运行更多的测试。ProxmoxVE的负载动态特性相似。XenServer为虚拟机提供vCPU支持,支持每台虚拟机添加32vCPU;为实现VCPU之间的资源均衡,XenServer采用公平共享平衡算法,以确保虚拟机之间分配CPU资源时,负载运行平衡。另外,XenServer可以向任何特定的虚拟机动态分配物理处理器,动态分配使虚拟机能够在可用时有效地利用可用CPU资源。XenServer的一个优点是它可以使用相同资源池中的不同CPU类型,也就是支持异构资源池。一般情况下,XenServer使用FlexMigrationExtendedMigration技术分别针对IntelAMD运行异构环境。在ProxmoxVE中,每个虚拟机都可以支持160vCPU。并且可以将最大192GB的内存分配给单个客户虚拟机。两款都支持动态内存控制和CPU,存储器,网络和硬盘热插拔。

就网络功能而言,XenServer可以为每台虚拟机分配的最大NIC数量为7个虚拟网络接口卡(NIC),但也有基于客户操作系统的更改,其中一些操作系统支持更多虚拟网卡。而在XenServer物理主机中,支持的物理网卡的最大数量是16个。在ProxmoxVE中,由于它是基于Debian系统构建的,所以它支持的网卡数量远远超过了这个限制。通过LinuxBraidgeOpenvSwitch,ProxmoxVEXenServer都可以为VM提供公平的网络I/O资源,并通过QoS控制。就网络能力而言,XenServerProxmoxV的网络能力稍强一些,但其能力的一部分都是基于商业版的,与开放源码版本相比,两个产品的网络管理能力是一致的。在ProxmoxVE中,每个节点最多支持4,094个网桥,采用vmbrX格式,X代表04,094之间的整数。ProxmoxVE的一个优点是比XenServer更少支持节点之间的实时迁移。

XenServer可以为虚拟磁盘I/O分配给VM的虚拟磁盘驱动器的最大数量是16,但是根据客户操作系统的类型,这可能有所不同。通过根据定义的设置优先级的公平共享方法,在VM之间分割磁盘I/O资源。XenServer使用存储管理器,它内置支持基于文件和块的存储类型。在ProxmoxVE中,支持的存储包括满足本地存储的目录、逻辑卷管理(LVM)、网络文件系统(NFS)(OmniOS,FreeNAS,Ubuntu)(GlusterFS)Ceph(GlusterFS),这些都是用于本地存储的目标。为了备份,Proxmox使用FreeNAS。尽管NFS共享是VM备份最常用的方案,但是完全备份也可以使用本地和CephFS

三是从管理功能上比较两种方案。要方便地创建和管理虚拟机,虚拟机管理程序中的管理功能非常重要。其中的一系列管理功能包括资产管理、配置快照、高可用性、实时迁移、维护模式、性能指标、存储迁移、虚拟机克隆、虚拟机迁移、容量规划/管理、虚拟防火墙、虚拟机备份/恢复、配置精简、存储多路径、性能报告、Auto-Discovery和多主机资源池等。下面的表5展示了由ProxmoxVEXenServerhypervisor支持的各种管理功能。

表格5:管理虚拟化管理程序的功能。

ProxmoxVE和XenServer成为受欢迎的开源虚拟 

分析比较开放源码虚拟化ProxmoxVEXenServer

正如前面的表5所示,两个管理程序都提供了相似的管理功能,这意味着它们之间没有明显的区别。但在功能的工作方式和产生预期结果方面有很大的不同。举例来说,XenServerProxmoxVE都支持对图形用户界面(GUI)和命令行(CLI)进行管理。但XenServer是一个基于CS架构的GUI客户端,它通过安装在Windows环境中并使用256SSL(AES)加密来保护与XenServer主机之间的所有通信。同时,ProxmoxVE利用基于HTML5WebGUI客户机实现了ProxmoxVE的图形界面操作访问。这两种工具都拥有专有的CLI管理命令。另一种管理功能比较不同的是虚拟机的克隆。XenServerProxmoxVE都支持完全和连接的克隆。其不同之处在于存储文件格式类型不同,并且支持的虚拟机具有不同的克隆能力。另外,在使用存储空间方面,XenServer通过支持以EXT3NFS存储库的形式在本地磁盘上对现有虚拟机进行精简置备,ProxmoxVE由于利用了KVM内核,因此与所支持的格式相关。对虚拟防火墙来说,两个虚拟机管理程序都具有管理功能,它们都可以通过内部包过滤和监控来提高安全性。就安全性而言,XenServer由一个控制域(Dom0)组成,它是运行XAPI(管理工具栈)的安全特权虚拟机,可以在网络、存储、认证和计算资源管理中控制虚拟机生命周期操作。ProxmoxVE使用基于角色的用户和权限管理对虚拟机、容器、存储池和主机节点进行监控。另外,ProxmoxVE使用LinuxPAM或者LDAP来进行用户认证。这些虚拟机管理程序还提供实时迁移、高可用性(HA)、虚拟机快照和性能报告。它们都是出色的功能,在业务运行期间,企业可以为业务运行提供重要帮助。

另外,XenServer在虚拟机的导入、导出、迁移等方面都优于ProxmoxVE。基本上,XenServer支持在同构和异构环境中导入和导出虚拟机,并支持行业标准开放虚拟化格式(OVF),因此它可以接受从其他虚拟机管理程序创建的所有虚拟机,包括专有虚拟机管理程序,如VMwareHyper-V。这主要是通过使用XenServerConversionManager来实现的。ProxmoxVE没有开发专门的GUI导入导出工具,但是支持qcow2rawvmdk虚拟机,其导入导出功能需要通过CLI工具实现。

qcow2支持的存储是NFS和目录,Raw格式支持LVMRBDiSCSI和目录。vmdk支持NFS和目录。由于I/O开销大,处理速度慢,qcow2格式不适合数据密集型虚拟机,如数据库服务器。但是,当有预算限制和存储空间有限时,qcow2文件非常有用。此映像类型支持KVM实时快照,以保留虚拟机状态。原始映像类型可确保性能,因为虚拟机速度更快,因为它具有直接直通访问。原始文件格式只能提供固定大小或密集配置的虚拟机映像,因此它是所有proxmex虚拟机的首选文件格式。可在Proxmox中添加的虚拟驱动器有IDE(3)SATA(5)VirtIO(15)SCSI(13)。原始磁盘映像文件始终是预先分配的,因此存在超出总可用存储空间的过度调配风险。这种镜像类型的另一个优点是支持KVM实时快照。至于vmdk映像格式,Proxmox只使用它来促进虚拟机迁移到其他虚拟机管理程序。vmdk文件格式的存在允许Proxmox文件在异构虚拟机管理程序环境中漫游。

proxmexveXenServer有很多相似之处,但主要区别是XenServer不支持Linux容器(操作系统虚拟化),而proxmexve支持。与XenServer相比,这个特性可以提高ProxmoxVE的强度。虽然ProxmoxVE使用了独特的虚拟化API,并利用了KVM虚拟化和基于LXC容器的操作系统虚拟化,但它的操作和管理已经在生产环境中实践过,没有Libvirt接口也能很好地运行。ProxmoxVEXenServer都是流行的虚拟机管理程序,都需要高级操作系统和虚拟化技能来管理整个虚拟机生命周期的安全性。根据所采用组织的规模和要求,虚拟机之间如何分配和共享资源是虚拟机管理程序的主要角色。因此,对于旨在以最高的性能和成本降低虚拟化解决方案的组织来说,代理虚拟化和XenServer是虚拟化服务器基础架构最有价值和最可行的解决方案。


本文来源网络,如有侵权,请联系752824794@qq.com或致电150 1372 4571 。