proxmox 上的linux虚拟机分区及备份建议
最近经历了一次服务器跨地域迁移,对服务器的分区有一些感想。
由于之前已经经历过了两次服务器架构调整,第一次是把物理机虚拟化成ESXi虚拟机,这个过程比较简单,基本上都有图形工具,用了一段时间之后发现免费版本的限制比较多,而且没有web管理端有点不方便。第二次调整是直接把ESXi虚拟机换成了Proxmox pve的KVM虚拟机,这个过程稍微复杂一些,需要用到比较多的指令,但是完成迁移之后用起来简直太方便了。
经过两次架构调整之后,我在两个城市分别搭建了两个Proxmox集群,每个集群都只是2到3台物理机,上面跑了四五台虚拟机。为了使虚拟机可以在集群中各个主机之间进行热迁移,我把每台物理机的大部分硬盘空间都划出来搭建了NFS存储,因此我的一个典型的集群配置是这样子的:有3台物理机,上面都安装了proxmox固件,主机名分别为pve1、pve2、pve3,上面的硬盘空间划分出来搭建了3个NFS服务器,分别名为nfs-pve1、nfs-pve2、nfs-pve3,然后把这些nfs挂载到proxmox的storage中,这样子每台主机都可以看到这三个NFS存储,因此存储在这三个NFS存储上的客户机是可以在各个主机之间进行热迁移的。
这次需要把一个城市中的集群中所有虚拟机迁移到另外一个城市,用网络传输是不太靠谱的方案,因为数据量太大。比较好的方案是利用proxmox提供的备份功能,把每个个虚拟机都打包成tar包,放到硬盘中带到目的城市,把硬盘挂载到proxmox集群的一主机上,利用恢复功能把虚拟机重新部署上去。
备份过程由于需要压缩,如果数据量大的话需要花费大量时间,因此,出于便于迁移和备份的考虑,我的建议是对linux操作系统的分区不需要太大,例如我是直接用一个512M的boot分区加上一个20G的根分区就可以了。对于需要大量存储的目录,比如/var或者/home/ftp,再额外挂载一个新的分区,但是在备份的时间不对这些分区时间备份,只对操作系统进行备份,这些分区直接通过低层复制的方法复制到移动硬盘,速度会慢很多。
在我的例子中我是用了一个西部数据的NAS,开通了其中的NFS功能,再把它挂载到proxmox上,名字为nfs,然后把虚拟机备份到nfs上,其他大存储的分区也移动到这个nfs上,备份过程界面如下图:
虚拟机备份流程
1、选择需要备份的虚拟机;
2、选择backup选项卡;
3、单击backup now按键;
4、在弹出的窗口中选择保存备份的储存空间;
5、选择压缩方式。
最后按backup即可。
把存放有备份文件的nas拿到目的城市,挂载到proxmox上,名字可以仍然叫nfs,然后在web界面进行如下操作:
虚拟机恢复流程
1、选择保存有备份文件的存储空间(本例中是nfs);
2、选择content选项卡;
3、选中需要恢复的备份文件;
4、单击restore按键;
5、在弹出的窗口中选择新的虚拟机硬盘的存储空间以及新的VM ID,需要注意的是这里的VM ID不一定需要跟备份的时候一样,但是不能跟目前该proxmox上已有的虚拟机的VM ID重复。
最后按restore即可。