6.10.2.3 方法3: ゲストの内部的なバックアップ

ゲスト内部からゲストのスナップショット・ベースのバックアップを取得できます。

すべてのステップは、ゲスト内から実行されます。

ノート:

このバックアップ方法は、ゲストの内部で実行され、論理ボリュームのスナップショットを使用します。他のバックアップ方法と比較すると、この方法で提供されるリカバリ・オプションは制限されています。これは、このバックアップは、ゲストがブート可能であり、かつrootユーザー・ログインが可能な場合にのみ有用であるためです。

この手順では、ゲスト内の現在アクティブなすべてのファイル・システムの内容をバックアップします。開始する前に、バックアップするすべてのファイル・システムがマウントされていることを確認します。

次のステップに示す値は例です。実際の状況に応じて、別の値に置き換えることが必要になる場合があります。

rootユーザーとして、すべてのステップを実行する必要があります。

  1. バックアップの保存先を準備します。

    バックアップ先は、書込み可能な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の場所です。

  2. 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論理ボリュームが存在しない場合は、残りのステップには進まずに、その理由を特定します。

  3. 現在アクティブなファイル・システムおよび論理ボリュームに関する情報を収集します。

    この手順では、ゲストから情報を収集して、後で、論理ボリュームのスナップショットおよびバックアップ・ファイルを作成するコマンドで使用する必要があります。

    次のコマンドを実行します。

    # 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です。
  4. ファイル・システムのスナップショットとバックアップ・ファイルを作成します。

    前のステップで収集した、ゲストの情報の表を使用します。

    各コマンドでの適切な値に置き換えて、表の行ごとに次を実行します。

    1. スナップショットを作成します。
      # lvcreate -L1G -s -n LV-Name_snap /dev/VG-Name/LV-Name
    2. スナップショットにラベルを付けます。
      # xfs_admin -L Short-Label /dev/VG-Name/LV-Name_snap
    3. スナップショットをマウントします。
      # mkdir -p /root/mnt/Backup-Label
      # mount -o nouuid /dev/VG-Name/LV-Name_snap /root/mnt/Backup-Label
    4. バックアップのディレクトリに変更します。
      # cd /root/mnt/Backup-Label
    5. バックアップ・ファイルを作成します。
      • ルート(/)ファイル・システムの場合のみ、次のコマンドを使用して、バックアップ・ファイルに/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
    6. /tmp/backup_tar.stderrファイルをチェックして、重大なエラーがないかを確認します。

      オープン・ソケットのアーカイブの障害に関するエラーおよび他の同様のエラーは無視できます。

    7. スナップショットをアンマウントして削除します。
      # cd /
      # umount /root/mnt/Backup-Label
      # /bin/rmdir /root/mnt/Backup-Label
      # lvremove -f /dev/VG-Name/LV-Name_snap
  5. NFS共有をアンマウントします。
    # umount /root/remote_FS
  6. 論理ボリューム/dev/VGExaDb/LVDoNotRemoveOrUseを再作成します。
    # lvm lvcreate -n LVDoNotRemoveOrUse -L2G VGExaDb -y