Proxmox VE由位于奥地利维也纳的Proxmox Server Solutions GmbH公司开发,这让人有点意外。其实欧洲在IT技术方面实力还是很强的,比如大名鼎鼎的MySQL,出自瑞典;分布式文件系统MooseFS,出自波兰。Proxmox目前主打产品有三款:Proxmox Virtual Environment、Proxmox Mail Gateway和Proxmox Backup Server,本书主要涉及Proxmox虚拟化(Proxmox VE,PVE)及虚拟化备份(Proxmox Backup Server,PBS),PVE结合PBS,让数据安全提高了一个等级。
Proxmox的官网上对Proxmox的介绍如下:
● 同时支持KVM虚拟机和LXC容器虚拟化。
● 用单一的Web界面管理所有资源——物理节点、网络、存储、虚拟机等。
● 多个物理节点可组成集群并配置成高可用环境。在Proxmox体系结构里,节点集群与高可用是分离的。集群是高可用的前提,但集群可以不配置成高可用,比如对服务质量要求不高的场合,集群仅仅是为了统一管理上的方便。
其实,这些特征都是比较基础的功能,下面为笔者总结的Proxmox VE的优点。
● 易于安装部署。以ISO文件提供,刻录到光盘或者U盘,按提示即可安装完成。虽然VMware的VMware ESXi也是由ISO文件提供的,但其管理平台却是分离的,需要单独分出来。Proxmox VE是去中心化的,所有节点的配置部署都一样,不存在中心节点、数据节点的差异。
● 配置迅速。一条指令创建起一个集群,几条指令就可以创建好分布式文件系统。
● 管理简便,支持中文。Web界面,布局合理,功能菜单/链接一目了然,如图2-1所示。
图2-1
● 机动灵活。单台可用,多台也可以集群。
● 可控性强。Proxmox VE基于Debian操作系统,底层是完整的Linux发行版,除了在Web界面进行操控外,还可以直接登录Debian,在命令行进行各种操作。而VMware ESXi,虽然也是基于Linux开发,但对系统进行了大量阉割,用户能自行操作的空间已经很小,只有几个简单的指令而已,默认的Shell里,连Reboot都没有。
● 多维度超融合。不需要外挂存储,计算资源与存储整合到一个物理设备上,此为硬件上的超融合;Proxmox VE同时做服务器虚拟化与桌面虚拟化,此为应用超融合(这个对组织机构内部网络来说,大大地节省了资金和最大限度利用了资源)。
● 项目成本低。因为是开源软件,没有巨额的软件授权费用(商业软件是按CPU核心数量计算授权费用的,采购一台服务器,软件授权费用少则几万元,多则数十万元)。超融合去中心化省去了昂贵的共享存储(光纤阵列等)费用。自行采购服务器,按需插上磁盘,比商业的超融合硬件便宜很多。
KVM(Kernel-based Virtual Machine)是基于操作系统内核的全虚拟化解决方案,与内核集成,因而具备与裸机相接近的性能。在部署Proxmox VE之前,需要确定硬件是否支持虚拟化。x86结构的CPU,Intel芯片需要开启VT-X,而AMD芯片则需要开启AMD-V。目前最新的AMD EPYC(霄龙)7663处理器的核心数量已达到64核,线程数量已有128线程。采购1个或2个CPU,配置足够的内存和磁盘、单台物理服务器,可虚拟出好多的系统(如图2-2所示)。
图2-2
Linux容器(Linux Containers,LXC)是一种轻量化的虚拟化技术,在操作系统上进行资源隔离。直观地说,KVM上安装多个操作系统,一个操作系统就是一个虚拟机;而Linux容器中,只有宿主操作系统,其上是容器而不是其他操作系统。
在一个Proxmox VE集群环境下,物理节点上的虚拟机可以随意迁移到其他物理节点,并支持在线迁移。实践证明,如果资源配置不够高(主要指硬盘性能,固态硬盘最强),在线迁移会慢得让人怀疑人生,特别是那些供应商给做的方案,建议采购10TB的企业级大容量SATA硬盘,更是让人在使用过程中有了想砸服务器的念头(增加SSD做缓存,可提高磁盘运行速度)。其实,有很多办法可以保持业务的连续性,最佳的建议还是离线迁移虚拟机。
● Proxmox VE从单个物理节点,到大规模节点集群,所需的功能已经默认安装。在浏览器中就可以管理所有的计算资源。独特的多主设计(其实也就是无主,去中心化)组建起来的集群,统一管理虚拟机、容器、存储等资源,无须额外管理服务单元(如VMware的VCenter)。单独的管理服务单元的存在,增加了系统的复杂度,同时也增加了单点失效的风险。
● Proxmox VE集群文件系统。Proxmox VE使用其独有的集群文件系统——pmxcfs,该文件系统是基于数据库格式,以文本方式存储配置。这个普通的文件,可以支持数以千计的虚拟机。该配置文件,通过Corosync在集群中实时同步。这些集群文件系统的配置,永久保存在磁盘中,同时也保留一份在内存中,文件的极限值虽然只有30M,但却足够存储数以千计的虚拟机配置。以下为某个Proxmox VE集群文件系统的具体格式及内容:
root@www:~# more /etc/corosync/corosync.conf logging { debug: off to_syslog: yes } nodelist { node { name: m nodeid: 2 quorum_votes: 1 ring0_addr: 172.16.228.38 } node { name: formyz nodeid: 4 quorum_votes: 1 ring0_addr: 172.16.228.59 } node { name: www nodeid: 1 quorum_votes: 1 ring0_addr: 172.16.228.60 } } quorum { provider: corosync_votequorum } totem { cluster_name: formyz con fi g_version: 5 interface { bindnetaddr: 172.16.228.60 ringnumber: 0 } ip_version: ipv4 secauth: on version: 2 }
● Web统一管理接口。不需要安装专门的客户端(VMware早期的版本,需要在Windows系统中安装客户端,具有局限性,后来也支持Web管理),也不需要单独部署一个管理服务器(以前部署的Oracle VM,就需要一个专门的VM Manager服务器)。
● 命令行接口。Proxmox VE可以用命令行管理所有的虚拟化环境,包括各种组件。如图2-3、图2-4所示是用Web方式与命令行方式对同一对象进行展示的效果。
图2-3
图2-4
● Restful API。以JSON为主要数据格式,让开发者或者用户可以方便地集成第三方工具。
● 基于角色的权限管理。Proxmox VE内置多种管理角色,可以对计算资源进行精细化管理及各种操作,如图2-5所示。
图2-5
从图2-5中可以看出,一共有12种角色权限。其作用域是全局的(数据中心),除了内建的角色外,还可以自定义创建角色。
● 身份认证(Authentication Realm)。Proxmox VE支持多种身份认证,比如Microsoft Active Directory、LDAP、Linux标准的PAM(用Linux系统账号),以及Proxmox VE的PVE认证,如图2-6所示。
图2-6
平台运行时,资源管理器将监控集群中所有的虚拟机及Linux容器,一旦虚拟机或者容器发生故障,它们将自动漂移到正常运行的物理节点(如图2-7所示为Proxmox VE创建高可用的场景)。也可以这样理解:如果物理节点部分失效,运行在其中的虚拟机或者容器将自动漂移。需要注意,重启Proxmox VE集群中的某个物理节点,运行在其中的虚拟机或者容器并不会自动漂移!
图2-7
Proxmox VE单一物理网卡可以创建多个桥接接口,最多为4094个网桥,直观一点说,可以创建多个虚拟网段,用于支持更大规模的应用。
对于多网卡的物理主机,如Dell某些型号的服务器,板载4个网卡,可以两两绑定网卡,以获得更大的带宽或者更高的可用性,如图2-8所示。需要注意的是,进行网卡绑定(Bond)操作,类别必须是桥接。
图2-8
Proxmox VE支持多种存储模式,虚拟机镜像既可以存储在本地,也可以存储在共享存储之中,如NFS、SAN(存储区域网络)。
虚拟机存储在共享网络,最大的好处就是在线迁移时不会导致服务停止。当然,如果不使用共享存储(分布式存储也是一种共享机制),当Proxmox VE集群中物理节点失效时,虚拟机无法漂移或者手动迁移。
通过Web管理界面,用户可以添加如下类型的存储。
(1)网络存储,包括如下类型:
● LVM Group (network backing with iSCSI targets)
● iSCSI target
● NFS Share
● Ceph RBD
● Directly use iSCSI LUNs
● GlusterFS
(2)本地存储,包括如下类型:
● LVM Group (local backing devices like block devices, FC devices, DRBD, etc.)
● Directory (storage on existing fi lesystem)
● ZFS
Proxmox VE执行的是完整备份,包括虚拟机/容器的配置文件及所有数据。备份操作可通过Web管理后台进行(如图2-9所示),也可以在命令行下执行。
图2-9
Web管理后台设定好备份的开始时间,到设定自动备份的时间点后,可以在系统查看执行备份的指令进程,如图2-10所示。
图2-10
通过命令行查看文件"/etc/pve/vzdump.cron",可以了解备份文件的存储位置(如图2-11所示),以便将来的灾难恢复。
图2-11
为了更保险,可以对不可再生数据,如数据库数据、用户上传数据等,进行应用级别的备份。数据库自身有备份机制,用户数据可以用Rsync同步工具。目前,Proxmox推出了独有的备份利器Proxmox Backup Sever(简称PBS),已经发布到PBS 2.0版本了,并且支持多PBS。另外,非Proxmox VE的数据也可以备份到PBS,数据的安全性及备份效率都得到极大提升。
笔者认为,没必要启用防火墙功能,建议在网络入口处使用专用设备来保证授权访问。以Web界面配置防火墙,比直接在命令行输入iptables风险要小很多,这样能避免输入上的错误。
方法一:自己动手,丰衣足食。
● Proxmox社区。在社区提问需要懂英文,而且有可能没人回复。有中文的社区,但不是很活跃。也有Proxmox的微信公众号,但更新频度低,文档数量也不多。
● 阅读免费的文档。官方提供的文档还是非常权威及易于实现的(照着文档一步步试验,多半能成功)。为了方便读者,这里直接给出网址 https://pve.proxmox.com/pve-docs。
● Proxmox官方Wiki。个人建议先看官方的免费文档,需要扩展知识面时,再来阅读Wiki。
● Proxmox VE操作视频。在国内bilibili(B站)等视频类网站搜索Proxmox,有很多关于Proxmox VE技术操作的视频,虽然可能不是用中文讲解,但只要配了中文字幕,就不影响学习和取得经验。看这些视频,体验更为直观,多看视频,再结合文档,很快就能驾驭Proxmox VE。
方法二:付费订阅。官方提供四种规格的订阅,定价从90欧元到840欧元不等,用户可根据自己的需要进行选择。
通过本章的学习,你是否对私有云Proxmox VE有一个整体的印象?是不是信心满满,可轻松驾驭之?
想想也是,其实真没什么复杂的。无非是几台服务器,执行几条指令,点几次鼠标嘛!可能有人会说,我没有服务器,更没有几台服务器,怎么试验呢?在这里就给大家支支招,应该可以解决这个疑问。
笔者的实验环境主要由两台物理设备组成:一台技嘉迷你PC(如图2-12所示),CPU是8线程,内存4GB,硬盘1TB。在测试安装Oracle 12G RAC过程中,性能严重不足,通过加内存到24GB,性能得以改善。当然,如果考虑到成本,可以参照这个配置,选购其他小众一点的品牌。还有一台X云J50型号的云终端盒子(如图2-13所示),支持多协议。这两台设备加起来,价格也不是特别贵,还能动手实操Proxmox EV。
图2-12
图2-13
在技嘉迷你PC上安装Proxmox VE,做集群试验时,就在其上做虚拟机嵌套处理;做桌面虚拟化时,启用Proxmox VE的Spice协议,用云终端盒子去连接。
下一章将介绍如何安装Proxmox EV。