共计 1305 个字符,预计需要花费 4 分钟才能阅读完成。
最近经历了一次服务器跨地域迁移,对服务器的分区有一些感想。
由于之前已经经历过了两次服务器架构调整,第一次是把物理机虚拟化成 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 即可。