- メンテナンス・ガイド
- Oracle Linux KVMゲストの管理
- KVMホストとゲストのバックアップ
- Oracle Linux KVMゲストのバックアップ
- 方法2: 個々のゲストのバックアップ
6.10.2.2 方法2: 個々のゲストのバックアップ
/EXAVMIMAGESの下にある特定のフォルダをバックアップすることで、個々のゲストをバックアップできます。
バックアップ先は、書込み可能なNFSの場所など、KVMホスト・サーバーとは別の場所で、バックアップを保持できる十分な大きさにする必要があります。個々のゲストのバックアップに必要な領域は、約200GBです。
- ゲスト・イメージを準備します。
次のスクリプトを使用して、
/EXAVMIMAGES/Backupの下で、ゲスト・イメージのバックアップを準備します。#!/bin/bash ScriptStarttime=$(date +%s) printf "This script is going to remove the directory /EXAVMIMAGES/Backup if it exists. If that is not acceptable, exit the script by typing n, manually remove /EXAVMIMAGES/Backup and come back to rerun the script. Otherwise, press y to continue :" read proceed if [[ ${proceed} == "n" ]] || [[ ${proceed} == "N" ]] then exit 0 elif [[ ${proceed} != "n" ]] && [[ ${proceed} != "N" ]] && [[ ${proceed} != "y" ]] && [[ ${proceed} != "Y" ]] then echo "Invalid input" exit 1 fi rm -rf /EXAVMIMAGES/Backup printf "Enter the name of the KVM guest to be backed up :" read KVMGuestName ## Create the Backup Directory if [ ! -d /EXAVMIMAGES/GuestImages/${KVMGuestName} ] then echo "Guest ${KVMGuestName} does not exist" exit 1 fi mkdirStartTime=$(date +%s) find /EXAVMIMAGES/GuestImages/${KVMGuestName} -type d|grep -v 'lost+found'|awk '{print "mkdir -p /EXAVMIMAGES/Backup"$1}'|sh mkdir -p /EXAVMIMAGES/Backup/XML mkdirEndTime=$(date +%s) mkdirTime=$(expr ${mkdirEndTime} - ${mkdirStartTime}) echo "Backup Directory creation time :" ${mkdirTime}" seconds" cp /etc/libvirt/qemu/${KVMGuestName}.xml /EXAVMIMAGES/Backup/XML ## Pause the guest PauseStartTime=$(date +%s) virsh suspend ${KVMGuestName} PauseEndTime=$(date +%s) PauseTime=$(expr ${PauseEndTime} - ${PauseStartTime}) echo "PauseTime for guest - ${KVMGuestName} :" ${PauseTime}" seconds" ## Create reflinks for all the files in /EXAVMIMAGES/GuestImages/${KVMGuestName} relinkStartTime=$(date +%s) find /EXAVMIMAGES/GuestImages/${KVMGuestName} -type f|awk '{print "cp --reflink", $0,"/EXAVMIMAGES/Backup"$0}'|sh relinkEndTime=$(date +%s) reflinkTime=$(expr ${relinkEndTime} - ${relinkStartTime}) echo "Reflink creation time for guest - ${KVMGuestName} :" ${reflinkTime}" seconds" ## Unpause the guest unPauseStartTime=$(date +%s) virsh resume ${KVMGuestName} unPauseEndTime=$(date +%s) unPauseTime=$(expr ${unPauseEndTime} - ${unPauseStartTime}) echo "unPauseTime for guest - ${KVMGuestName} :" ${unPauseTime}" seconds" ScriptEndtime=$(date +%s) ScriptRunTime=$(expr ${ScriptEndtime} - ${ScriptStarttime}) echo ScriptRunTime ${ScriptRunTime}" seconds" - ゲスト・イメージのバックアップを作成します。
/EXAVMIMAGES/Backupの下のreflinkファイルをリモートの場所にバックアップします。KVMホストが恒久的に破損したり紛失した場合は、バックアップを使用して特定のゲストをリストアできます。次に例を示します:
# mkdir -p /remote_FS # mount -t nfs -o rw,intr,soft,proto=tcp,nolock ip_address:/nfs_location/ /remote_FS # cd /EXAVMIMAGES/Backup # tar --acls --xattrs --xattrs-include=* --format=pax -pjcvf /remote_FS/exavmimage.tar.bz2 * > /tmp/exavmimage_tar.stdout 2> /tmp/exavmimage_tar.stderrmountコマンドで、ip_addressはNFSサーバーのIPアドレス、nfs_locationはバックアップを保持するNFSの場所です。この例では、バックアップ・ファイルの名前は
exavmimage.tar.bz2です。別の名前を選択して、バックアップするゲストを指定することもできます。バックアップの完了後に、
tarコマンドから、重大なエラーがないかを確認します。前述の例では、tarコマンドによって、/tmp/exavmimage_tar.stderrのファイルにエラーが書き込まれます。 /EXAVMIMAGES/Backupディレクトリとその内容を削除します。次に例を示します:
# cd / # rm -rf /EXAVMIMAGES/Backup- NFSバックアップの場所をアンマウントして、マウント・ポイント・ディレクトリを削除します。
次に例を示します:
# umount /remote_FS # rmdir /remote_FS
親トピック: Oracle Linux KVMゲストのバックアップ