3.7. XFS ファイルシステムのバックアップと復元

XFS ファイルシステムのバックアップと復元には、以下のユーティリティが関与します。
  • バックアップの作成を行うための xfsdump
  • バックアップから復元するための xfsrestore

3.7.1. XFS バックアップと復元の機能

バックアップ

xfsdump ユーティリティを使用すると、以下を行うことができます。
  • 通常のファイルイメージへのバックアップ。
    通常のファイルに書き込むことができるバックアップは 1 つだけです。
  • テープドライブへのバックアップ。
    xfsdump ユーティリティーを使用すると、同じテープに複数のバックアップを書き込むこともできます。バックアップは複数のテープをまたぐことができます。
    複数のファイルシステムを単一のテープデバイスにバックアップするには、XFS バックアップがすでに含まれているテープにバックアップを書き込むだけです。これにより、新しいバックアップが前のバックアップに追加されます。デフォルトでは、xfsdump は既存のバックアップを上書しません。
  • 増分バックアップの作成。
    xfsdump ユーティリティーはダンプレベルを使用して、他のバックアップの相対的なベースバックアップを決定します。0 から 9 までの数字は、ダンプレベルの増加を表します。増分バックアップは、下位レベルの最後のダンプ以降に変更されたファイルのみをバックアップします。
    • フルバックアップを実行するには、ファイルシステムでレベル0のダンプを実行します。
    • レベル 1 のダンプは、フルバックアップ後の最初の増分バックアップです。次の増分バックアップはレベル 2 になります。これは、最後のレベル 1 のダンプ以降に変更されたファイルのみをバックアップします。レベル 9 まで同様です。
  • ファイルを絞り込むサイズ、サブツリー、または i ノードフラグを使用してバックアップからファイルを除外。

復元

xfsrestore ユーティリティは、xfsdump によって生成されたバックアップからファイルシステムを復元します。xfsrestore ユーティリティには、2 つのモードがあります。
  • simple モードでは、ユーザーはレベル 0 のダンプからファイルシステム全体を復元できます。これがデフォルトのモードです。
  • cumulative モードでは、増分バックアップ (つまりレベル 1 からレベル 9) からファイルシステムを復元できます。
各バックアップは、session ID または session label で一意に識別されます。複数のバックアップを含むテープからバックアップを復元するには、対応するセッション ID またはラベルが必要です。
バックアップから特定のファイルを抽出、追加、または削除するには、xfsrestore インタラクティブモードを起動します。インタラクティブモードでは、バックアップファイルを操作する一連のコマンドが提供されます。

3.7.2. XFS ファイルシステムのバックアップ

この手順では、XFS ファイルシステムの内容をファイルまたはテープにバックアップする方法を説明します。

手順3.1 XFS ファイルシステムのバックアップ

  • 次のコマンドを使用して XFS ファイルシステムをバックアップします。
    # xfsdump -l level [-L label] -f backup-destination path-to-xfs-filesystem
    • level を、バックアップのダンプレベルに置き換えます。フルバックアップを実行するには 0 を使用し、それに続く増分バックアップを実行するには 1 から 9 を使用します。
    • backup-destination を、バックアップを保存する場所のパスに置き換えます。宛先は通常のファイル、テープドライブ、またはリモートテープデバイスです。たとえば、ファイルの場合は /backup-files/Data.xfsdump、テープドライブの場合は /dev/st0 に置き換えます。
    • path-to-xfs-filesystem を、バックアップする XFS ファイルシステムのマウントポイントに置き換えます。たとえば、/mnt/data/ と置き換えます。ファイルシステムをマウントする必要があります。
    • 複数のファイルシステムをバックアップして単一のテープデバイスに保存する場合は、復元時にそれらを簡単に識別できるように -L label オプションを使用して各バックアップにセッションラベルを追加します。label をバックアップの名前 (backup_data など) に置き換えます。

例3.4 複数の XFS ファイルシステムのバックアップ

  • /boot/ および /data/ ディレクトリーにマウントした XFS ファイルシステムの内容をバックアップして、/backup-files/ ディレクトリーにファイルとして保存するには以下を実行します。
    # xfsdump -l 0 -f /backup-files/boot.xfsdump /boot
    # xfsdump -l 0 -f /backup-files/data.xfsdump /data
  • 1 つのテープデバイスにある複数のファイルシステムのバックアップを作成するには、-L label オプションを使用して各バックアップにセッションラベルを追加します。
    # xfsdump -l 0 -L "backup_boot" -f /dev/st0 /boot
    # xfsdump -l 0 -L "backup_data" -f /dev/st0 /data

関連資料

  • XFS ファイルシステムのバックアップの詳細は、xfsdump(8) man ページを参照してください。

3.7.3. バックアップからの XFS ファイルシステムの復元

この手順では、XFS ファイルシステムの内容をファイルまたはテープのバックアップから復元する方法を説明します。

前提条件

手順3.2 バックアップからの XFS ファイルシステムの復元

  • バックアップを復元するコマンドは、フルバックアップから復元するのか、増分バックアップから復元するのか、または単一のテープデバイスから複数のバックアップを復元するのかによって異なります。
    # xfsrestore [-r] [-S session-id] [-L session-label] [-i]
                 -f backup-location restoration-path
    • backup-location を、バックアップの場所に置き換えます。宛先は通常のファイル、テープドライブ、またはリモートテープデバイスです。たとえば、ファイルの場合は /backup-files/Data.xfsdump、テープドライブの場合は /dev/st0 に置き換えます。
    • restoration-path を、ファイルシステムを復元するディレクトリーへのパスに置き換えます。たとえば、/mnt/data/ と置き換えます。
    • ファイルシステムを増分 (レベル 1 からレベル 9) バックアップから復元するには、-r オプションを追加します。
    • 複数のバックアップを含むテープデバイスからバックアップを復元するには、-S または -L オプションを使用してバックアップを指定します。
      -S オプションではセッション ID でバックアップを選択でき、-L オプションではセッションラベルで選択できます。セッション ID とセッションラベルを取得するには、xfsrestore -I コマンドを使用します。
      session-id をバックアップのセッション ID に置き換えます。たとえば、b74a3586-e52e-4a4a-8775-c3334fa8ea2c と置き換えます。session-label をバックアップのセッションラベルに置き換えます。たとえば、my_backup_session_label と置き換えます。
    • xfsrestore をインタラクティブに使用するには、-i オプションを使用します。
      xfsrestore による指定デバイスの読み込みが終了すると、インタラクティブなダイアログが開始されます。インタラクティブな xfsrestore シェルで使用できるコマンドは cdlsadddelete、および extract などになります。コマンドの詳細な一覧については help コマンドをご覧ください。

例3.5 複数の XFS ファイルシステムの復元

XFS バックアップファイルを復元し、その内容を /mnt/ の下のディレクトリーに保存するには、次の手順を実行します。
# xfsrestore -f /backup-files/boot.xfsdump /mnt/boot/
# xfsrestore -f /backup-files/data.xfsdump /mnt/data/
複数のバックアップを含むテープデバイスから復元するには、各バックアップをセッションラベルまたはセッション ID で指定します。
# xfsrestore -f /dev/st0 -L "backup_boot" /mnt/boot/
# xfsrestore -f /dev/st0 -S "45e9af35-efd2-4244-87bc-4762e476cbab" /mnt/data/

テープからバックアップを復元するときの情報メッセージ

複数のファイルシステムのバックアップを使用してテープからバックアップを復元するとき、xfsrestore ユーティリティーがメッセージを出すことがあります。メッセージは、xfsrestore がテープ上の各バックアップを順番に調べたときに、要求されたバックアップと一致するものが見つかったかどうかを通知します。次に例を示します。
xfsrestore: preparing drive
xfsrestore: examining media file 0
xfsrestore: inventory session uuid (8590224e-3c93-469c-a311-fc8f23029b2a) does not match the media header's session uuid (7eda9f86-f1e9-4dfd-b1d4-c50467912408)
xfsrestore: examining media file 1
xfsrestore: inventory session uuid (8590224e-3c93-469c-a311-fc8f23029b2a) does not match the media header's session uuid (7eda9f86-f1e9-4dfd-b1d4-c50467912408)
[...]
一致するバックアップが見つかるまで、情報メッセージが表示され続けます。

関連資料

  • XFS ファイルシステムの復元の詳細は、xfsrestore(8) man ページを参照してください。