この記事では、XenServer で実行中の仮想マシンをバックアップする方法を紹介し、VM バックアップ プロセスを段階的に実行できます。さらに、すべての VM または指定した VM をバックアップできるシェル スクリプトもあります。 crontab を介してスケジュールされます。
方法 1: 実行中の仮想マシンを手動でバックアップする
次の手順は XenCenter を通じて実行することもできますが、Linux ユーザーはコマンドラインを使用することを好みます。
1. VMS UUID の検索
次のコマンドを使用して、すべての VM の 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 上で実行されているすべての仮想マシンをバックアップするには、次のシェル スクリプトを使用することもできます。このスクリプトは、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 < ${UUIDFILE} umount ${MOUNTPOINT}
この記事はここで終了しています。その他のエキサイティングなコンテンツについては、PHP 中国語 Web サイトの Linux ビデオ チュートリアル コラムに注目してください。
以上がXenServer で実行中の仮想マシンをバックアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。