本記事では、Linux標準のコマンドである「xfsdump/xfsrestore」を使用した、システムのバックアップリストア手順について記載します。
環境情報
- xfsdumpによるフルバックアップをNFSサーバに取得します
- ディスク交換はせず、OSのデータ破損等を想定した手順となります
- バックアップは/boot、/boot/efi、/を対象とします
- バックアップ対象のOSはRed Hat Enterprise Linux 9(以下、RHEL9)とし、デフォルトのファイルシステムであるxfsおよびEFI領域のファイルシステムであるvfatをバックアップします
コマンドインストール
コマンドがインストールされていない場合は、インストールします。
yum install -y xfsdump
バックアップ先領域マウント
マウントポイントを作成します。
mkdir /backup
NFSサーバの/backup
を、作成したマウントポイントにマウントします。
mount -t nfs <NFS Server IP>:/backup /backup
マウントされたことを確認します。
df -h
バックアップ
バックアップ対象ディレクトリ配下にtestファイルを作成します。
echo "test" > /boot/efi/test echo "test" > /boot/test echo "test" > /test
バックアップ先のディレクトリに移動し、バックアップコマンドを実行します。
cd /backup
/boot/efiのバックアップ
EFI領域はファイルシステムがxfsではなくvfatのため、以下のコマンドを実行します。
tar cf boot_efi.tar /boot/efi
/boot、/のバックアップ
/boot、/はファイルシステムがxfsのため、以下のコマンドを実行します。
xfsdump -l 0 - /dev/sda2 | gzip -c > boot_dump.gz xfsdump -l 0 - /dev/mapper/rhel-root | gzip -c > root_dump.gz
※オプション:-l 0 - →フルバックアップを取得します。数字を変更することで、増分バックアップを取得可能です。
※デバイスファイル名(sda2など)は環境により変化する場合があるため、適宜修正してください。
xfsdump: Dump Status: SUCCESS
と表示され、バックアップが成功することを確認します。
バックアップ確認
バックアップファイルが作成されていることを確認します。
ls
boot_dump.gz boot_efi.tar root_dump.gz
以上でバックアップは完了です。
リストア
今回はバックアップ前に作成したtestファイルを削除し、リストア後に復元されているかを確認します。
testファイル削除
rm /boot/efi/test rm /boot/test rm /test
リストア用ディレクトリ作成
mkdir /mnt/restore
/のリストア
mount -t xfs /dev/mapper/rhel-root /mnt/restore cd /mnt/restore gzip -dc /backup/root_dump.gz | xfsrestore - ./
xfsrestore: Restore Status: SUCCESS
と表示され、リストアが成功することを確認します。
/bootのリストア
mount -t xfs /dev/sda2 /mnt/restore/boot cd /mnt/restore/boot gzip -dc /backup/boot_dump.gz | xfsrestore - ./
xfsrestore: Restore Status: SUCCESS
と表示され、リストアが成功することを確認します。
/boot/efiのリストア
mount -t vfat /dev/sda1 /mnt/restore/boot/efi cd /mnt/restore tar xf /backup/boot_efi.tar
再起動
reboot
再起動後、削除したtestファイルが復元されていることを確認します。
おわりに
今回はコマンドを手動で実行しましたが、定期的にバックアップを取得するためにcronでスケジュールするといった運用もできますので、ぜひ試してみてください。