- メンテナンス・ガイド
- Oracle Linux KVMゲストの管理
- KVMホストとゲストのバックアップ
- Oracle Linux KVMゲストのバックアップ
- 方法3: ゲストの内部的なバックアップ
6.10.2.3 方法3: ゲストの内部的なバックアップ
ゲスト内部からゲストのスナップショット・ベースのバックアップを取得できます。
すべてのステップは、ゲスト内から実行されます。
ノート:
このバックアップ方法は、ゲストの内部で実行され、論理ボリュームのスナップショットを使用します。他のバックアップ方法と比較すると、この方法で提供されるリカバリ・オプションは制限されています。これは、このバックアップは、ゲストがブート可能であり、かつrootユーザー・ログインが可能な場合にのみ有用であるためです。
この手順では、ゲスト内の現在アクティブなすべてのファイル・システムの内容をバックアップします。開始する前に、バックアップするすべてのファイル・システムがマウントされていることを確認します。
次のステップに示す値は例です。実際の状況に応じて、別の値に置き換えることが必要になる場合があります。
rootユーザーとして、すべてのステップを実行する必要があります。
- バックアップの保存先を準備します。
バックアップ先は、書込み可能なNFSの場所など、ローカル・マシンの外部に存在するようにし、バックアップを保持できる十分な大きさにする必要があります。カスタマイズされていないパーティションの場合、バックアップを保持するのに必要な領域は約60GBです。
次のコマンドを使用すると、NFSを使用してバックアップ先を準備できます。
# mkdir -p /root/remote_FS # mount -t nfs -o rw,intr,soft,proto=tcp,nolock ip_address:/nfs_location/ /root/remote_FSmountコマンドで、ip_addressはNFSサーバーのIPアドレス、nfs_locationはバックアップを保持するNFSの場所です。 LVDoNotRemoveOrUse論理ボリュームを削除します。論理ボリューム
/dev/VGExaDb/LVDoNotRemoveOrUseは、スナップショットを作成できるだけの空き領域を常に確保するためのプレースホルダです。次のスクリプトを使用して
LVDoNotRemoveOrUse論理ボリュームの有無をチェックし、存在する場合は削除します。lvm lvdisplay --ignorelockingfailure /dev/VGExaDb/LVDoNotRemoveOrUse if [ $? -eq 0 ]; then # LVDoNotRemoveOrUse logical volume exists. lvm lvremove -f /dev/VGExaDb/LVDoNotRemoveOrUse if [ $? -ne 0 ]; then echo "Unable to remove logical volume: LVDoNotRemoveOrUse. Do not proceed with backup." fi fiLVDoNotRemoveOrUse論理ボリュームが存在しない場合は、残りのステップには進まずに、その理由を特定します。- 現在アクティブなファイル・システムおよび論理ボリュームに関する情報を収集します。
この手順では、ゲストから情報を収集して、後で、論理ボリュームのスナップショットおよびバックアップ・ファイルを作成するコマンドで使用する必要があります。
次のコマンドを実行します。
# df -hT | grep VGExaコマンド出力内のすべてのエントリについて、次の情報を確認し、後で使用する値の表を作成します。
-
ボリューム・グループ(VG)名および論理ボリューム(LV)名は、次のようにファイル・システム名に含まれています。
/dev/mapper/VG-name-LV-nameたとえば、
/dev/mapper/VGExaDb-LVDbHomeでは、VG名はVGExaDbで、LV名はLVDbHomeです。 - バックアップ・ラベルは、ファイル・システムとそのバックアップ・ファイルを識別する文字列です。ルート(
/)ファイル・システムの場合はrootを使用します。それ以外の場合は、マウント・ポイント内のディレクトリを連結した文字列を使用できます。たとえば、/var/log/auditの場合はvarlogauditを使用できます。 - 12文字以下のショート・ラベルを定義します。そのショート・ラベルを使用して、スナップショット・ファイル・システムにラベルを付けます。
次に例を示します:
# df -hT | grep VGExa /dev/mapper/VGExaDb-LVDbSys1 xfs 15G 4.2G 11G 28% / /dev/mapper/VGExaDb-LVDbHome xfs 4.0G 45M 4.0G 2% /home /dev/mapper/VGExaDb-LVDbVar1 xfs 2.0G 90M 2.0G 5% /var /dev/mapper/VGExaDb-LVDbVarLog xfs 18G 135M 18G 1% /var/log /dev/mapper/VGExaDb-LVDbVarLogAudit xfs 1014M 89M 926M 9% /var/log/audit /dev/mapper/VGExaDb-LVDbTmp xfs 3.0G 33M 3.0G 2% /tmp /dev/mapper/VGExaDb-LVDbKdump xfs 20G 33M 20G 1% /crashfiles /dev/mapper/VGExaDbDisk.u01.5.img-LVDBDisk xfs 5.0G 33M 5.0G 1% /u01 /dev/mapper/VGExaDbDisk.u02.10.img-LVDBDisk xfs 10G 33M 10G 1% /u02 /dev/mapper/VGExaDbDisk.u03.15.img-LVDBDisk xfs 15G 33M 15G 1% /u03 /dev/mapper/VGExaDbDisk.grid19.7.0.0.200414.img-LVDBDisk xfs 20G 6.0G 15G 30% /u01/app/19.0.0.0/grid前述の出力から、論理ボリュームのスナップショットおよびバックアップ・ファイルを作成するコマンドで後で使用する、次の情報表を導出できます。
ファイル・システム VG名 LV名 バックアップ・ラベル ショート・ラベル /dev/mapper/VGExaDb-LVDbSys1VGExaDbLVDbSys1rootroot_snap/dev/mapper/VGExaDb-LVDbHomeVGExaDbLVDbHomehomehome_snap/dev/mapper/VGExaDb-LVDbVar1VGExaDbLVDbVar1varvar_snap/dev/mapper/VGExaDb-LVDbVarLogVGExaDbLVDbVarLogvarlogvarlog_snap/dev/mapper/VGExaDb-LVDbVarLogAuditVGExaDbLVDbVarLogAuditvarlogauditaudit_snap/dev/mapper/VGExaDb-LVDbTmpVGExaDbLVDbTmptmptmp_snap/dev/mapper/VGExaDb-LVDbKdumpVGExaDbLVDbKdumpcrashfilescrash_snap/dev/mapper/VGExaDbDisk.u01.5.img-LVDBDiskVGExaDbDisk.u01.5.imgLVDBDisku01u01_snap/dev/mapper/VGExaDbDisk.u02.10.img-LVDBDiskVGExaDbDisk.u02.10.imgLVDBDisku02u02_snap/dev/mapper/VGExaDbDisk.u03.15.img-LVDBDiskVGExaDbDisk.u03.15.imgLVDBDisku03u03_snap/dev/mapper/VGExaDbDisk.grid19.7.0.0.200414.img-LVDBDiskVGExaDbDisk.grid19.7.0.0.200414.imgLVDBDisku01app19000gridgrid_snapノート:
-
ゲストから収集した情報がこの例とは大きく異なる場合があります。必要な情報をゲストから直接収集し、現在の情報のみを使用するようにしてください。
- 現在アクティブなシステム・ボリュームに応じて、ルート(
/)ファイル・システムの論理ボリュームはLVDbSys1またはLVDbSys2となります。同様に、/varファイル・システムの論理ボリュームは、LVDbVar1またはLVDbVar2です。
-
- ファイル・システムのスナップショットとバックアップ・ファイルを作成します。
前のステップで収集した、ゲストの情報の表を使用します。
各コマンドでの適切な値に置き換えて、表の行ごとに次を実行します。
- スナップショットを作成します。
# lvcreate -L1G -s -n LV-Name_snap /dev/VG-Name/LV-Name - スナップショットにラベルを付けます。
# xfs_admin -L Short-Label /dev/VG-Name/LV-Name_snap - スナップショットをマウントします。
# mkdir -p /root/mnt/Backup-Label # mount -o nouuid /dev/VG-Name/LV-Name_snap /root/mnt/Backup-Label - バックアップのディレクトリに変更します。
# cd /root/mnt/Backup-Label - バックアップ・ファイルを作成します。
-
ルート(
/)ファイル・システムの場合のみ、次のコマンドを使用して、バックアップ・ファイルに/bootの内容を含めます。# tar --acls --xattrs --xattrs-include=* --format=pax -pjcvf /root/remote_FS/rootfs-boot.tar.bz2 * /boot > /tmp/backup_tar.stdout 2> /tmp/backup_tar.stderr -
それ以外の場合は、次のコマンド・テンプレートを使用します。
# tar --acls --xattrs --xattrs-include=* --format=pax -pjcvf /root/remote_FS/Backup-Label.tar.bz2 * > /tmp/backup_tar.stdout 2> /tmp/backup_tar.stderr
-
/tmp/backup_tar.stderrファイルをチェックして、重大なエラーがないかを確認します。オープン・ソケットのアーカイブの障害に関するエラーおよび他の同様のエラーは無視できます。
- スナップショットをアンマウントして削除します。
# cd / # umount /root/mnt/Backup-Label # /bin/rmdir /root/mnt/Backup-Label # lvremove -f /dev/VG-Name/LV-Name_snap
- スナップショットを作成します。
- NFS共有をアンマウントします。
# umount /root/remote_FS - 論理ボリューム
/dev/VGExaDb/LVDoNotRemoveOrUseを再作成します。# lvm lvcreate -n LVDoNotRemoveOrUse -L2G VGExaDb -y
親トピック: Oracle Linux KVMゲストのバックアップ