Proxmox VE管理和配置的绝大部分操作可在Web界面进行,有少部分操作必须在命令行下进行。Proxmox VE版本越高,Web管理界面支持的功能就越多,以前需要在命令行进行的操作,高版本的Web管理界面也可能支持。对于有经验的技术人员来说,所有的操作都可以在命令行完成,不过这肯定没有在Web界面下高效和方便。因此,一般的工作场景,建议在Web界面下进行操作。
刚才已经部署好Proxmox VE系统,现在从浏览器登录,端口号为 8006,登录所能使用的账号只有"Root",并且使用的是Linux自带的PAM认证,如图4-1所示。
图4-1
Proxmox VE支持中文,对英语水平不高的技术人员来说,这是很大的便利。这里需要输入的密码就是登录Linux系统所用的密码。这个密码是在安装Proxmox VE的过程中设定的。安全起见,密码要设置得复杂点。
登录进去以后,管理界面的布局大致分三个区,另外右上部有菜单栏,看起来相当简洁明了,如图4-2所示。
图4-2
区域1为资源总览区,每一个物理节点左侧有一个箭头,单击箭头可以查看所附属的存储。区域2是详情展示区,它是区域1项目的级联展开。区域3是操作记录区,双击还可以显示更详细的信息。
区域1右上角,有一个下三角按钮,可以从下拉列表中选择不同风格的显示视图,如图4-3所示。
图4-3
下面按照区域2条目的排列顺序,讲解一些常用的管理操作。
默认情况下,Proxmox VE启用的网络只有一个桥接接口vmbr0,该接口对应一个物理网络接口,系统的IP地址被设置在桥接接口,而不是物理网络接口,主流的品牌服务器一般都带多个网口,如图4-4所示。
图4-4
为了充分利用资源,提高网络可用性,增加网络带宽,可以把物理网络接口两两绑定。为降低风险,可以先绑定eno1与eno2(即便绑定错误,也不影响远程登录)。
绑定操作大概分三步:
(1)在管理界面区域2,单击左上侧按钮“创建”,在下拉列表中选择"Linux Bond",如图4-5所示。弹出"创建:Linux Bond"对话框,如图4-6所示。
图4-5
图4-6
不用填写IP地址及掩码等信息,右侧"Slaves"填写要绑定的物理网络接口eno1与eno2(关于网络接口1、网络接口2的名称,读者可以根据自己设备在系统里显示的名称进行输入)。同时把“自动启动”勾选上,表示开机即启动这个Bond。
(2)在管理界面区域2,单击左上侧按钮“创建”,在下拉列表中选"Linux Bridge"。弹出"创建:Linux Bridge"对话框。这时候,就需要填写IP地址、子网掩码以及所依附的桥接端口,如图4-7所示。
图4-7
创建好桥接接口"vmbr1",系统会自动生成一个名为/etc/network/interfaces.new的网络配置文件,其内容为:
auto lo iface lo inet loopback iface eno3 inet manual iface eno1 inet manual iface eno2 inet manual iface eno4 inet manual auto bond0 iface bond0 inet manual slaves eno1 eno2 bond_miimon 100 bond_mode balance-rr auto vmbr0 iface vmbr0 inet static address 172.16.228.48 netmask 255.255.255.0 gateway 172.16.228.1 bridge_ports eno3 bridge_stp off bridge_fd 0 auto vmbr1 iface vmbr1 inet static address 172.17.228.48 netmask 255.255.255.0 bridge_ports bond0 bridge_stp off bridge_fd 0
(3)重启系统,文件"/etc/network/interfaces.new"里的配置会同步到"/etc/network/interfaces"里,使得配置更改得以生效。新版的Proxmox VE 6.1修改完网络服务,仅需重载就能使网络配置生效。
做好网卡绑定之后,需要与该网段内的主机互Ping,以验证其正确性。另外两块网卡的绑定,由于eno3已经被桥接接口vmbr0占用,所以直接创建Bond将报错,如图4-8所示。
图4-8
返回网络管理界面,选中vmbr0,单击上部“编辑”按钮,对其进行更改,如图4-9所示。
单击“确定”按钮,返回网络管理界面,继续创建Bond(注意现在不要重启系统,不然远程访问会失效),这时,在"Slaves"编辑框输入"eno3 eno4",就能创建好"bond1"。
再回退到网络管理界面,对vmbr0进行编辑操作,设置“桥接端口”为"bond0",检查无误后,重启系统修改生效,如图4-10所示。
图4-9
图4-10
调整网络的这个操作风险极大,需要做好应急准备,万一报错,很可能把自己关在系统外面!如果真的出现这种情况,可能就需要在服务器上连接键盘显示器手动修改网络配置。
另外还有一种场景,那就是出于学习或者练习的目的,拿普通台式电脑(或者笔记本)安装Proxmox VE来做试验。但普通台式电脑一般只有一个板载的网络接口(如图4-11所示),要模拟多个网段用于测试不同的应用,应该怎么办?
图4-11
对于Proxmox VE来说,这并非难事,继续创建桥接接口,不绑定物理网络接口。后面创建虚拟机设置网络时选定桥接接口即可,如图4-12所示。
图4-12
当然,此网段的虚拟机要对外访问,需在宿主机做处理。大概的思路是,登录Proxmox VE的宿主系统Debian,撰写iptables脚本做IP地址伪装,同时启用系统内核的"ip_forward"转发功能(在"/etc/sysctl.conf"中修改net.ipv4.ip_forward =1,使其永久生效)。有Linux基础的读者应该一眼就瞧出来了,这就是单网卡路由嘛!也可以桥接其他存在的接口,以满足实际需求,如图4-13所示。
图4-13
Proxmox VE支持本地存储与远程存储两种。至于块存储与文件系统存储的含义,请读者自行查阅资料,这里不再展开进行说明。本节举两个有代表性的例子,来说明怎么样轻而易举地给现有的Proxmox VE平台增加存储。一种是安装完系统后再单独增加磁盘(本地存储),作为虚拟机存放的场所;另一种是挂载远程的NFS文件系统,可做备份、存储虚拟机镜像文件等用途。
一般情况下,用一整块硬盘来安装Proxmox VE,而不希望虚拟机也安装在这同一块硬盘上。这是基于性能和数据安全方面来考虑的,比如笔者常在方案中用小容量的固态硬盘(256GB SSD,节省成本)来安装Proxmox VE,而用单独的SAS盘来存储虚拟机的数据。
当安装完Proxmox VE时,能使用的磁盘空间有两个:local及local-lvm,如果用这个磁盘空间来创建和安装虚拟机,是创建不了几个的。
待用的空闲磁盘必须能被Debian系统识别。检验方式有两种:一种是登录系统,用命令行fdisk –l查看;另一种是登录Proxmox Web管理界面进行查看,如图4-14所示,此服务器除了系统盘外,还有几块可用的空闲磁盘。
图4-14
待用磁盘的分区,创建文件系统以及挂载到系统目录的操作,如果无法在Web界面完成,就只能登录Debian系统,使用命令行完成(较新的发行版,可以直接在Web管理后台完成)。下面是具体的步骤,供参考。
(1)创建分区。对于容量小于2TB的磁盘,用工具"fdisk";如果磁盘容量大于2TB,建议使用工具"partd"。
root@pve99:~# fdisk /dev/sdb ………………….省略……………………………… Command (m for help): p Disk /dev/sdb: 29.8 GiB, 32010928128 bytes, 62521344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identi fi er: 0x000a0d74 Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-62521343, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-62521343, default 62521343): Created a new partition 1 of type 'Linux' and of size 29.8 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
(2)创建文件系统。创建文件系统可以是xfs或者ext4下面为使用ext4创建文件系统。
root@pve99:~# mkfs.ext4 /dev/sdb1 mke2fs 1.43.4 (31-Jan-2017) Creating fi lesystem with 7814912 4k blocks and 1954064 inodes Filesystem UUID: cbffddf1-bea0-4bb0-86de-600bca0af387 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and fi lesystem accounting information: done
(3)创建挂载目录及挂载文件系统。挂载点取名要注意,不要与系统保留的名称一样,以免引起混乱。
root@pve99:~# mkdir /data root@pve99:~# mount /dev/sdb1 /data/
为使挂接永久生效,可编辑文件"/etc/fstab"。
(4)验证挂载正确性。输入命令行"df-h"可查看磁盘的挂载情况,也可以通过Web管理界面,查看节点磁盘,如图4-15所示。
图4-15
(5)增加本地磁盘到Proxmox VE存储体系。
①在管理界面依次选择“存储”à"添加"à"目录"菜单,如图4-16所示。
图4-16
②在"添加:目录"对话框中,输入ID值,可填写任意字符(如mydata);“目录”的值是关键,输入的值就是文件系统的挂载点"/data",不能输错,如图4-17所示。
图4-17
待添加完毕以后,可在管理界面看到效果,也可以登录Debian系统,打开文件"/etc/pve/storage.cfg"查看新增的文本行,如图4-18所示。
图4-18
为进一步验证新增的单独的磁盘是否可用,接下来创建一个虚拟机,指定虚拟机的硬盘为刚才新增的那个磁盘,然后给此虚拟机安装操作系统CentOS7,步骤如下。
(1)创建一个虚拟机。在"创建:虚拟机"对话框中,选择“硬盘”选项卡,在“存储”的下拉列表中看新增的磁盘存储是否可选,如图4-19所示。
图4-19
(2)创建完此虚拟机,回到Debian系统下,查看目录"/data/images/111"(数字111是虚拟机ID),可看到一个大小为5MB的文件vm-111-disk-1.qcow2。等安装完此虚拟机的操作系统,文件vm-111-disk-1.qcow2的大小增长了好几个GB,这说明虚拟机的镜像文件确实存储在此地。
虽然Proxmox VE 5.0以后的版本集成了分布式文件系统Ceph,完全去中心化超融合架构,但在此基础上挂载NFS共享存储仍然有用武之地。比如,对虚拟机进行数据备份。另外,如果对分布式存储信心不足,也可以采用NFS共享方式来存储虚拟机的镜像文件,实践证明,Proxmox VE集群迁移节点的虚拟机,如果不用分布式存储或者NFS共享存储,速度会极慢。
回到Web管理界面,依次单击"数据中心"à"存储"à"添加"à"NFS"菜单,如图4-20所示。
图4-20
在"添加:NFS"对话框中,在"ID"文本框中随便输入字符,在“服务器”文本框中输入NFS的IP地址(或者可以访问到的主机名)。如果输入正确,而且NFS服务及授权正常的话,那么单击"Export"(共享路径)的下三角按钮,就应该得到NFS服务器端设定的共享路径,如图4-21所示。
图4-21
执行完后,单击“添加”按钮,即可在系统中用命令行df –h查看到挂载上来的NFS目录。
至于挂载iSCSI等其他几种共享存储,与上述操作流程基本类似,限于篇幅,不再一一赘述,请读者参照官方文档操作。
备份与恢复针对的对象是虚拟机或者容器,可以对整个数据中心下的虚拟机进行备份,也可以对单个的虚拟机进行备份。对单个虚拟机进行备份,暂时没找到定时备份的方法;而对整个数据中心的虚拟机进行备份,则可以很好地控制备份行为。当然,对数据中心级别下的虚拟机进行备份时,也可以单独勾选需要备份的虚拟机,如图4-22所示。
图4-22
设定好备份的开始时间(要设定到夜深人静、访问量小的时候),余下的工作就交给时间和Proxmox VE。读者可能心中会有疑问,这个定时备份是不是调用系统的"crond"服务呢?确实如此。当在Web管理界面,单击“备份作业”后,在Debian系统下,生成了一个文件"/etc/cron.d/vzdump",该文件的内容如下(根据你的设定可能不完全和这里相同):
Linux系统管理员应该对这个"crond"不陌生吧?比平常写的"crontab"稍微复杂一点,多带了些选项和参数而已。对照Web管理界面的输入,这些选项、参数是代表什么,也就清楚了。
虚拟机恢复实际上包含两种方法:一种是从本平台的备份恢复;另一种是从其他Proxmox VE平台复制虚拟机镜像备份进行恢复(这其实是虚拟机迁移,算是捷径了)。
这种方法操作简单,如图4-23所示,根据图中的序号依次操作即可。
图4-23
恢复前,还可以指定虚拟机恢复路径(存放虚拟机镜像文件的目录),如图4-24所示。
图4-24
先在源站对虚拟机进行备份,备份完毕后,把该文件复制到目标系统的目录"/var/lib/vz/dump",或者其他Proxmox VE恢复时可以识别的目录中。用"rsync"把虚拟机备份复制到目标主机,指令如下:
root@pve 99:/var/lib/vz/dump#rsync -azvvzdump-qemu-105-2018_09_10-01_02_04.vma.lzo 172.16.35.55:/var/lib/vz/dump root@172.16.35.55's password: sending incremental fi le list vzdump-qemu-105-2018_09_10-01_02_04.vma.lzo sent 7,465,431,278 bytes received 35 bytes 10,780,406.23 bytes/sec total size is 9,343,620,894 speedup is 1.25
文件复制完毕,用浏览器登录到目标系统的Proxmox VE Web管理后台,查看复制的文件是否被目标Proxmox VE所识别,如图4-25所示。
图4-25
选定备份文件,再单击上方“恢复”菜单,进行恢复操作,如图4-26所示。
图4-26
一定要仔细填写虚拟机ID值,不要与系统现存的ID发生冲突。
各位读者,只要把备份的路径弄明白,进行虚拟机恢复操作是不是很容易?
除了Proxmox VE本身提供的虚拟机备份功能,对于重要的生产系统,最好再花点成本对不可再生的数据进行应用级别的离线备份。比如数据库备份、用户上传文件备份,这些备份系统要与Proxmox VE平台分离,能通过网络进行数据传输。
如果某天整个Proxmox VE集群崩溃了,还可以用这些离线备份数据恢复服务。再说,应用级别的数据备份占据的存储空间,肯定比备份所有的虚拟机要小得多。虚拟机可以重建,可是不可再生的数据是重建不了的。
对不可再生数据做备份,建议远程备份到异机系统。可以在内网准备一台大容量服务器,以NFS方式共享目标目录,用Rsync工具对数据进行定时同步。
基于安全方面的考虑,在设计系统时,Proxmox VE单机或超融合集群被限定在内部网络。用户的访问请求,首先到达的是暴露在外部的负载均衡器,由负载均衡器把请求转发到内部的Proxmox VE上部署的应用,Proxmox VE及其他虚拟机系统通过VPN拨号方式,进行远程登录及管理。网络安全方面,完全由部署在网络边界处的硬件安全设施来防护,因此没有必要在Proxmox VE上启用主机防火墙,所以本书不对Proxmox VE自带的防火墙配置做介绍,有兴趣的读者可自行去配置测试。分布式文件系统Ceph,将在第9章进行详细的介绍。