- メンテナンス・ガイド
- 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_FS
mount
コマンドで、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 fi
LVDoNotRemoveOrUse
論理ボリュームが存在しない場合は、残りのステップには進まずに、その理由を特定します。- 現在アクティブなファイル・システムおよび論理ボリュームに関する情報を収集します。
この手順では、ゲストから情報を収集して、後で、論理ボリュームのスナップショットおよびバックアップ・ファイルを作成するコマンドで使用する必要があります。
次のコマンドを実行します。
# 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-LVDbSys1
VGExaDb
LVDbSys1
root
root_snap
/dev/mapper/VGExaDb-LVDbHome
VGExaDb
LVDbHome
home
home_snap
/dev/mapper/VGExaDb-LVDbVar1
VGExaDb
LVDbVar1
var
var_snap
/dev/mapper/VGExaDb-LVDbVarLog
VGExaDb
LVDbVarLog
varlog
varlog_snap
/dev/mapper/VGExaDb-LVDbVarLogAudit
VGExaDb
LVDbVarLogAudit
varlogaudit
audit_snap
/dev/mapper/VGExaDb-LVDbTmp
VGExaDb
LVDbTmp
tmp
tmp_snap
/dev/mapper/VGExaDb-LVDbKdump
VGExaDb
LVDbKdump
crashfiles
crash_snap
/dev/mapper/VGExaDbDisk.u01.5.img-LVDBDisk
VGExaDbDisk.u01.5.img
LVDBDisk
u01
u01_snap
/dev/mapper/VGExaDbDisk.u02.10.img-LVDBDisk
VGExaDbDisk.u02.10.img
LVDBDisk
u02
u02_snap
/dev/mapper/VGExaDbDisk.u03.15.img-LVDBDisk
VGExaDbDisk.u03.15.img
LVDBDisk
u03
u03_snap
/dev/mapper/VGExaDbDisk.grid19.7.0.0.200414.img-LVDBDisk
VGExaDbDisk.grid19.7.0.0.200414.img
LVDBDisk
u01app19000grid
grid_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ゲストのバックアップ