背景:
公司内部虚拟机使用增多,尤其部分虚拟机里面集成的应用比较多,例如OA服务器,有OA系统、DHCP、考勤采集器。这些应用重新部署一次需要花费比较多的时间。在稳定运行的情况下,进行整机备份,为日后恢复应用的环境带来了很多的便捷性。另外一些常规的测试环境,或者模拟应用运行的环境,可以通过恢复现有的虚拟机备份进行快速的备份,带了很多的便捷性。本文重点讲述如何通过xenserver自带的快照功能实现快速备份系统。
【正文开始】
系统环境:xenserver
存储服务器:网络nas提供存放
参考应用:
https://github.com/tecrahul/xenvmbackup/blob/master/xenvmbackup.sh
下面将会通过命令行的方式来描述备份的过程,最后以脚本的执行任务。
1. 登录需要备份的xenserver服务器
整个操作过程是在命令行下面进行,需要通过shell终端进行连接,操作每个步骤。
1.1. 找到VMs UUID
执行下面的命令,找到需要备份的虚拟机UUID,唯一标识符
# xe vm-list is-control-domain=false is-a-snapshot=false
执行命令后输出如下,如果有多台虚拟机的话,会显示多个。
uuid ( RO) : 8ac95696-94f3-83c1-bc89-8bb2603f832b
name-label ( RW): test-vm
power-state ( RO): running
找到目标虚拟机的
test-vm uuid “8ac95696-94f3-83c1-bc89-8bb2603f832b“.
1.2. 创建 VM快照
通过上面找到的uuid然后进行生成快照。
# xe vm-snapshot uuid=8ac95696-94f3-83c1-bc89-8bb2603f832b new-name-label=testvmsnapshot
生成快照之后,会返回一个新的UUID,这个就是快照本身的UUID,然后我们要把快照转换成为磁盘格式。
# xe template-param-set is-a-template=false ha-always-run=false uuid=b15c0531-88a5-98a4-e484-01bc89131561
1.3. 导出快照为文件到本地
现在可以导出创建
.xva 格式的文件,也是我们最终生成的备份文件,后面需要恢复系统就是使用这个。
# xe vm-export vm=b15c0531-88a5-98a4-e484-01bc89131561 filename=vm-backup.xva
1.4. 删除快照
F删除生成的快照文件,避免浪费磁盘的空间。
# xe vm-uninstall uuid=b15c0531-88a5-98a4-e484-01bc89131561 force=true
2. 在xenserver通过shell脚本来备份 VM
通过在xenserver服务器上面运行脚本的方式来备份正在运行的虚拟机,备份导出的文件,直接备份在远程的NFS存储上面,脚本程序通过设置定时任务来完成,实现定期的自动备份任务。
备份脚本下载