1. Proxmox VE的简要介绍
根据Proxmox VE的官网介绍,Proxmox Virtual Environment(简称Prxomox VE或PVE)由位于奥地利维也纳的Proxmox Server Solutions公司开发和维护。Proxmox VE软件和社区支持都是免费的,企业用户则可以通过订阅制来获得付费商业支持。
根据Proxmox VE的官网介绍,Proxmox VE是一个集计算、网络及存储于一体的解决方案,这就是我们通常所说的超融合解决方案。Proxmox VE的官网如下图所示。
Proxmox VE是一个企业级虚拟化平台,该平台集成了基于内核的虚拟机管理程序(KVM)和基于Linux容器(LXC)这两种虚拟化技术,同时还集成了软件定义存储和虚拟网络功能。借助Web的管理界面工具,可以轻松地管理和配置虚拟机、容器、高可用性集群、软件定义存储、虚拟网络以及备份等。
Proxmox VE最大的优势在于安装使用的方便以及Web管理界面的丰富,还可以相对比较简单的实现企业虚拟化和企业私有云。
从Proxmox VE 5.x 版本开始,官方整合了分布式文件系统Ceph,并对其进行了改进。这样的话,Proxmox VE就和OpenStack一样,存储方面集成了分布式存储,实现了计算、网络、存储一体化解决方案,即所谓的超融合。
Proxmox VE的主要特性,去中心化、超融合、高可用、开源低成本、易于实施管理。
2. Proxmox VE与ZStack、VMware、OpenStack比较
Proxmox VE是一个集计算、网络及存储于一体的解决方案,它主要的特性与ZStack、VMware以及OpenStack相比,既有相似性也有差异性,如下表所示。
开放程度
Proxmox VE是商业公司Proxmox Server Solutions的开源产品,Proxmox VE软件和社区支持都是免费的,企业用户则可以通过订阅制获得付费商业支持。Proxmox VE的主要劣势,是这个开源产品只有Proxmox Server Solutions一家在维护,生态方面不如OpenStack。
ZStack是上海云轴信息科技有限公司的商用产品,该公司同时发布ZStack开源产品,商用版本与开源版本的主要区别在于,开源版本不支持高可用。ZStack开源产品和ZStack社区由上海云轴信息科技有限公司在维护,生态方面不如OpenStack。
VMware是威睿信息技术(中国)有限公司的商用产品,VMware只有商用产品,没有开源产品,在国内产品定价高,功能按模块收费,产品线繁杂。产品维保费用高,原厂服务价格贵同时服务支持响应慢。
OpenStack是一个开源云计算项目,这个全球性项目由Rackspace和NASA共同创办,采用了Apache2.0许可证,可任意使用。经过多年的发展,OpenStack现已发展成为一个广泛使用的业内领先的开源项目,提供部署私有云及公有云的操作平台和工具集。
安装部署
Proxmox VE最大的优势在于安装使用的方便以及web管理界面的丰富,Proxmox VE社区提供iso镜像,可以刻录到光盘或者优盘,整个安装过程在10分钟之内安装完毕。除此之外,Proxmox VE是去中心化架构的,无论是单节点还是集群,都只需要安装一个Proxmox VE套件。
ZStack的ZStack Cloud也提供iso安装方式,但是ZStack的一些产品套件如多管理节点高可用套件是需要单独安装的。总体来说,ZStack安装还算容易,但是需要分产品安装,需要安装多个产品套件。
VMware的vSphere的两个核心组件是ESXi虚拟化平台和vCenter管理平台,ESXi也提供iso安装方式,但是管理平台vCenter却是与ESXi是分离的,需要单独安装。VMware的安装总体来说跟ZStack差不多,安装容易,但是需要分产品安装。
OpenStack的架构复杂,组件众多,配置烦琐,整体安装非常复杂,对于刚刚接触到OpenStack的初学者而言,安装一个OpenStack云平台更是难上加难。没有一支专家队伍帮助实施,很难驾驭好OpenStack。
虚拟计算
Proxmox VE目前仅支持KVM这一种虚拟化技术,无法实现异构虚拟化统一管理,在VMware虚拟化市场占有率居高不下的情况下,无法纳管VMware,无法保护企业既有的VMware投资。
VMware是一个商用闭源产品,在虚拟化技术方面,仅支持自有虚拟化技术ESXi。vSphere产品套件的核心产品是ESXi虚拟机管理程序,作为一个虚拟化层次,它是整个VMware产品线中的其他产品所依赖的基础。
ZStack主要支持KVM、ESXi这两种虚拟化技术,企业可以在部署时选择KVM虚拟化技术来部署ZStack Cloud,在需要纳管第三方VMware虚拟化平台时,可选择ESXi虚拟化技术,来满足ZStack纳管VMware的需求场景。
OpenStack支持KVM、Xen、Hyper-V、ESXi等多种虚拟化技术,在OpenStack环境中,计算服务通过API服务器来控制虚拟机管理程序,企业可以在部署时选择一种虚拟化技术来创建虚拟机,向用户提供云服务器。
虚拟存储
Proxmox VE支持多种存储技术,虚拟机镜像既可以保存在服务器本地存储,也可以保存在基于NFS或SAN的共享存储设备上。在本地存储方面,支持LVM、ZFS。在共享存储方面,支持NFS、SAN、CIFS。在分布式存储方面,支持Ceph、GlusterFS。
ZStack也支持多种存储技术,根据官网的《PD2002 ZStack V3.10.0 技术白皮书》介绍,ZStack支持DAS/NAS/SAN/DFS等存储类型,支持本地存储、NFS存储、SAN存储、分布式块存储。其中分布式块存储支持Ceph。
VMware也支持多种存储技术,在本地存储方面,支持LVM、VMFS和NFS。在共享存储方面,支持NAS和SAN。在分布式存储方面,支持vSAN。
OpenStack目前提供持久性存储服务的项目有3个,分别是代号为Cinder的块存储(Block Storage)、代号为Swift的对象存储(Object Storage)和代号为Manila的共享文件系统(Shared File Systems)。支持多种后台存储设备,包括LVM、NFS、SAN、Ceph、Sheepdog,以及EMC、IBM等商用存储系统。
虚拟网络
虚拟计算和虚拟存储都有相对成熟的解决方案,在虚拟计算方面有KVM可以实现,在虚拟存储方面有典型的Ceph分布式存储可以实现。而虚拟网络的实现,目前没有统一的标准,而且不同业务的需求不同,也会导致虚拟网络在架构方面有所不同。
Proxmox VE在虚拟网络方面,支持VLAN、VXLAN虚拟网络,包括基于Linux虚拟网络的VLAN网络、基于开放虚拟交换机(Open vSwitch)的VLAN和VXLAN。如需要支持虚拟路由器、虚拟防火墙、虚拟负载均衡等,则需要做定制化开发或者使用原生虚拟机去实现。根据《Proxmox VE 6.2手册》中文版手册介绍,SDN目前是Proxmox VE中的一个实验性功能,相关的文档也在开发中,所以暂不讨论Proxmox VE的软件定义网络。可以说,Proxmox VE的网络虚拟化功能比较弱,无法实现私有云内大规模网络虚拟化的需求,无法定制虚拟VXLAN和虚拟路由器,不过在私有云规模不大的情况下,这倒不是大问题。
ZStack也支持VLAN、VXLAN虚拟网络,根据官网的《PD2002 ZStack V3.10.0 技术白皮书》介绍,ZStack支持支持VLAN、VXLAN等网络模型,可通过云平台接管硬件交换机的SDN网络,从而实现VLAN、VXLAN等网络模型,进而实现虚拟路由器、NAT、DHCP、IPSEC隧道,实现VPC,从而具备了公有云特性。
VMware自有的虚拟网络套件NSX,支持多种的、丰富的虚拟网络服务,包括虚拟交换机、虚拟路由器、负载均衡、防火墙等一系列虚拟网络套件服务。
OpenStack网络服务提供一个API让用户在云中建立和定义网络连接,该网络服务的项目名称是Neutron。Neutron提供虚拟网络基础架构,包括虚拟二层交换、虚拟三层交换、虚拟子网和虚拟路由器,除此之外,还提供虚拟防火墙(FWaas)、安全组(Security Group)、负载均衡(LBaas)和虚拟专用网(***aas)这样的高级服务,具备了公有云特性。
硬件兼容性
Proxmox VE在硬件兼容方面,仅支持x86_64架构硬件,不支持国产ARM架构硬件,不支持国产信创生态。
ZStack在硬件兼容方面,支持任何x86架构硬件,支持国产ARM架构硬件,支持国产信创生态,在,全面支持主流信创芯片、操作系统,同时全面支持中间件、数据库、应用软件等广泛信创生态,打造新基建下的安全、可信的云环境。
VMware在硬件兼容方面,仅支持x86_64架构硬件,不支持国产ARM架构硬件,不支持国产信创生态。
OpenStack在硬件兼容方面,支持任何x86架构硬件,支持国产ARM架构硬件,国内厂家基于OpenStack的云平台产品,基本上支持国产信创生态。
裸金属
Proxmox VE目前不支持管理没有虚拟化的裸金属主机,仅支持管理虚拟化的硬件。Proxmox VE后续版本会不会支持管理裸金属,目前还不知道,不过根据我个人的看法,Proxmox VE主要面向小型虚拟化场景、小型私有云场景,后续Proxmox VE版本可能不会支持管理裸金属。
ZStack提供裸金属管理服务,可为应用提供专属的物理服务器,裸金属管理服务的基本原理是:部署服务器提供DHCP服务和FTP服务,指示多台裸金属设备由PXE网卡启动并分配动态IP,裸金属设备从部署服务器中下载相关软件包,用于裸金属主机的系统安装。
VMware在裸金属管理服务方面,暂不清楚是否支持,网上查不到相关信息,极有可能是不支持裸金属管理服务。
OpenStack除了提供虚拟化和虚拟机服务之外,还提供传统的主机服务——裸金属。OpenStack可以将裸金属与其他部署有虚拟化管理程序的节点通过不同的计算池一起管理。OpenStack通过Ironic管理裸金属,主要通过PXE和IPMI进行控制管理。
GPU
Proxmox VE支持GPU直通模式和GPU虚拟化模式。在GPU直通模式下,可将物理GPU指定给特定的虚拟机,该特定虚拟机独立享有物理GPU。如要实现GPU虚拟化模式,向不同虚拟机分配vGPU,则需要向硬件GPU厂家购买虚拟化许可。
ZStack同样支持GPU直通模式和GPU虚拟化模式。根据《PD2002 ZStack V3.10.0 技术白皮书》介绍,ZStack以组为单位整体透传物理GPU设备上携带的全部外接设备(包括:GPU显卡、GPU声卡、其它GPU上的小设备),有效提高云主机高性能计算和图形处理能力。在vGPU方面,同时支持NVIDIA和AMD显卡虚拟化切割成vGPU,支持指定规格和指定设备两种方式为云主机加载vGPU。
VMware支持GPU直通模式和GPU虚拟化模式。在GPU虚拟化模式方面,支持vSGA、vGPU、vDGA等三种模式。
OpenStack同样支持GPU直通模式和GPU虚拟化模式。关于在OpenStack环境下的GPU模式,原理与Proxmox VE、ZStack和VMware的相似,这里不在赘述。
高可用
Proxmox VE的高可用主要体现在分布式多副本和云主机高可用两个方面,Proxmox VE高可用是建立在物理节点集群之上,依赖分布式存储Ceph。在实现物理节点集群的基础之上,通过分布式Ceph设置数据/虚拟机镜像的多副本数,默认情况下,使用3副本模式。
ZStack同样支持分布式Ceph的多副本存储技术,除此之外,ZStack支持零宕机方案Fault Tolerance,FT实现了业务零中断,实现了CPU状态全同步、内存状态全同步、网络状态全同步、磁盘状态全同步,目前我对ZStack的FT方案还不是很了解,后续会抽时间研究下ZStack的容错方案。除了FT方案之外,ZStack支持热迁移。
VMware同样支持多副本存储技术,支持FT方案,支持热迁移,这里不再赘述。
OpenStack支持多副本存储技术,支持OpenStack容错方案,支持热迁移。关于OpenStack的高可用性,我目前了解不多,留待后续有时间再研究。
数据库服务
Proxmox VE在本质上是一个IaaS开源云计算解决方案,目前几乎不具备有PaaS层的服务能力,因此不具备有数据库服务能力。
ZStack不仅具备IaaS层能力,同时还具备有PaaS层的能力,如支持数据库Oracle、MySQL、ostgres、Mongodb、Influxdb、Cassandra和Redis等数据库服务。支持Linux Tomcat、JAVA、Apache Web、Jboss、PHP、Node JS、Golang、Python等语言和运行环境。
VMware在本质上也是一个IaaS开源云计算解决方案,几乎不具备有PaaS层的服务能力,因此不具备有数据库服务能力。
OpenStack不仅具备IaaS层能力,同时还具备有PaaS层的能力。基于OpenStack的云产品厂家,大部分都进行PaaS开发,从而具备PaaS的服务能力,典型的如华为云。
容器
Proxmox VE目前仅支持Linux容器(LXC),从Proxmox VE 4.0开始, Proxmox VE舍弃了OpenVZ 容器并转向了LXC 容器技术。Proxmox VE基于LXC,提供轻量级Linux应用程序方案。
ZStack支持容器Docker和k8s,根据ZStack的官网介绍,ZStack Zaku容器云平台是一款基于Kubernetes构建的企业级PaaS(平台即服务)软件,最大化屏蔽原生复杂概念,依据传统用户使用习惯进行极简化。提供多租户、多集群、资源配额管理、CI/CD等功能,帮助企业快速进入云原生时代。
VMware同样也支持容器Docker和k8s,用户可直接在VMware vSphere上安装Kubernetes来运行Docker,并提供容器服务。
OpenStack同样也支持容器Docker和k8s,关于OpenStack与k8s的关系,网上有很多,但是因为本人目前对OpenStack还不是很熟悉,这里就先不展开。
灾备
Proxmox VE 内嵌了虚拟机备份工具(vzdump),可以在线创建KVM 虚拟机和LXC 容器的快照备份。创建的备份不仅包括虚拟机和容器的完整镜像数据,同时包含了相应的配置文件信息。支持冷热迁移。
ZStack具备较强的灾备服务能力,包括:灾备功能介绍、灾备环境部署、以及本地灾备、异地灾备、公有云灾备场景实践。支持冷热迁移。
VMware提供了基于vSphere虚拟化平台的VMware Site Recovery Manager (简称SRM),在用户可接受的成本下,提供了基于x86服务器平台的灾备方案,让用户跨站点(site) 备份虚机数据,并在主站点失效时,自动切换到备份站点继续应用运行。
OpenStack的灾备方案,目前了解不深,这里不赘述,后续有机会另外撰文探讨。
多云管理
Proxmox VE基于Web界面进行去中心化管理,登录任何一个节点,就可以管理整个集群的节点,但是Proxmox VE目前只能实现单一集群管理,无法实现多集群管理,无法实现多云管理。
ZStack支持多云管理,ZStack的ZStack CMP多云管理平台深度对接ZStack Cloud,ZStack Mini,统一纳管阿里云,华为云,天翼云,VMware等多种主流公有云、私有云环境。
VMware的管理平台vCenter,通过中心架构管理方式,实现对物理节点进行管理,也就是说只能通过vCenter去管理物理节点或集群,目前暂不了解vCenter是否支持同时管理多个集群。
OpenStack支持多云管理。基于OpenStack的云产品厂家,大部分都进行了多云管理平台(CMP)开发,实现对主流公有云、私有云的纳管。
面向场景
Proxmox VE主要面向中小型虚拟化场景、私有云场景。根据《Proxmox VE6.2手册》介绍,“我们使用Corosync Cluster Engine来确保集群通信的稳定可靠,目前一个集群最多可拥有32个物理节点。”官网文档还介绍,Proxmox VE支持1000个虚拟机没有问题。换句话说,Proxmox VE最多能管理32台物理节点,大概在1000个虚拟机左右的量。
ZStack主要面向虚拟化场景、私有云场景、公有云场景以及混合云场景,集群最多管理物理节点数不详。
VMware主要面向大中小型虚拟化场景、私有云场景,vCenter基础版最多可以管理1000台ESXi物理节点,vCenter高级版最多可以管理3000台ESXi物理节点。(网上查的数据,不一定准确)
OpenStack主要面向大型和超大型的私有云场景、公有云场景,理论上可以管理无限台物理节点。