本篇文章介紹的內容是關于如何在xenserver中備份正在運行的虛擬機,并且可以逐步運行vm的備份過程,此外還有一個shell腳本,可以將所有vm備份或指定的vm備份,我們也可以通過crontab進行調度。
方法1:手動備份正在運行的虛擬機
以下步驟也可以通過XenCenter執行,但linux用戶喜歡使用命令行。
1、查找VMS UUID
使用以下命令獲取所有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
根據上述輸出測試,vm uuid為“8ac95696-94f3-83c1-bc89-8bb2603f832b”。你可能是其他情況。
2、創建VMS快照
現在使用下面的命令使用上面步驟中找到的UUID創建VM快照。確保使用正確的UUID。
#?xe?vm-snapshot?uuid=8ac95696-94f3-83c1-bc89-8bb2603f832b?new-name-label=testvmsnapshot
上面的命令將檢索快照的uuid,使用該uuid將快照轉換為vm,因此我們可以使用下面的命令將其導出到文件。
#?xe?template-param-set?is-a-template=false?ha-always-run=false?uuid=b15c0531-88a5-98a4-e484-01bc89131561
3、將快照導出到文件
現在,我們可以將創建的快照導出到.xva文件,這可以很容易地從命令行或Xencenter恢復。
#?xe?vm-export?vm=b15c0531-88a5-98a4-e484-01bc89131561?filename=vm-backup.xva
4、銷毀快照
最后,因為我們已經備份到XVA文件,所以我們可以從XenServer銷毀創建的快照。
#?xe?vm-uninstall?uuid=b15c0531-88a5-98a4-e484-01bc89131561?force=true
方法2:使用腳本備份運行vms
為了備份XenServer上運行的所有虛擬機,我們還可以使用以下shell腳本。此腳本安裝了通過NFS導出的遠程文件系統。這個腳本非常適合這個例子,但對你可能不適用。所以使用這個腳本并不能保證你的可行。
#!/bin/bash # #?Written?By:?Mr?Rahul?Kumar #?Created?date:?Jun?14,?2014 #?Last?Updated:?Mar?08,?2017 #?Version:?1.2.1 #?Visit:?https://tecadmin.net/backup-running-virtual-machine-in-xenserver/ # DATE=`date?+%d%b%Y` XSNAME=`echo?$HOSTNAME` UUIDFILE=/tmp/xen-uuids.txt NFS_SERVER_IP="192.168.10.100" MOUNTPOINT=/xenmnt FILE_LOCATION_ON_NFS="/backup/citrix/vms" ###?Create?mount?point mkdir?-p?${MOUNTPOINT} ###?Mounting?remote?nfs?share?backup?drive [?!?-d?${MOUNTPOINT}?]??&&?echo?"No?mount?point?found,?kindly?check";?exit?0 mount?-F?nfs?${NFS_SERVER_IP}:${FILE_LOCATION_ON_NFS}?${MOUNTPOINT} BACKUPPATH=${MOUNTPOINT}/${XSNAME}/${DATE} mkdir?-p?${BACKUPPATH} [?!?-d?${BACKUPPATH}?]??&&?echo?"No?backup?directory?found";?exit?0 #?Fetching?list?UUIDs?of?all?VMs?running?on?XenServer xe?vm-list?is-control-domain=false?is-a-snapshot=false?|?grep?uuid?|?cut?-d":"?-f2?>?${UUIDFILE} [?!?-f?${UUIDFILE}?]?&&?echo?"No?UUID?list?file?found";?exit?0 while?read?VMUUID do ????VMNAME=`xe?vm-list?uuid=$VMUUID?|?grep?name-label?|?cut?-d":"?-f2?|?sed?'s/^?*//g'` ????SNAPUUID=`xe?vm-snapshot?uuid=$VMUUID?new-name-label="SNAPSHOT-$VMUUID-$DATE"` ????xe?template-param-set?is-a-template=false?ha-always-run=false?uuid=${SNAPUUID} ????xe?vm-export?vm=${SNAPUUID}?filename="$BACKUPPATH/$VMNAME-$DATE.xva" ????xe?vm-uninstall?uuid=${SNAPUUID}?force=true done?<p>本篇文章到這里就已經全部結束了,更多其他精彩內容可以關注php中文網的<a href="http://www.php.cn/course/list/33.html" target="_blank">Linux視頻教程</a>欄目!</p>
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END