第12章 バックアップと移行

12.1. Red Hat Virtualization Manager のバックアップと復元

12.1.1. Red Hat Virtualization Manager のバックアップ

engine-backup ツールを使用して、Red Hat Virtualization Manager を定期的にバックアップします。このツールは、ovirt-engine サービスを中断せずに、engine データベースと設定ファイルを単一のファイルにバックアップすることができます。

12.1.2. engine-backup コマンドの構文

engine-backup コマンドは、2 つの基本モードのいずれかで機能します。

# engine-backup --mode=backup
# engine-backup --mode=restore

これらの 2 つのモードは、バックアップのスコープや engine データベースの異なる認証情報を指定することができる一連のパラメーターにより、さらに拡張されます。パラメーターとその機能の完全な一覧については、engine-backup --help を実行します。

基本オプション

--mode
コマンドがバックアップ操作と復元操作のどちらを実行するかを指定します。backuprestore の 2 つのオプションが利用可能です。これは必須のパラメーターです。
--file
バックアップモードでは、バックアップ対象ファイルのパスと名前を指定します。リストアモードでは、バックアップデータの読み取り先ファイルのパスと名前を指定します。これは、バックアップモードとリストアモードの両方で必須のパラメーターです。
--log
バックアップまたは復元操作のログの書き込み先ファイルのパスと名前を指定します。このパラメーターはバックアップモードとリストアモードの両方で必須のパラメーターです。
--scope

バックアップおよび復元操作のスコープを指定します。all (全データベースと設定データをバックアップ/復元)、files (システム上のファイルのみをバックアップ/復元)、db (Manager データベースのみをバックアップ/復元)、dwhdb (Data Warehouse データベースのみをバックアップ/復元) の 4 つのオプションがあります。デフォルトのスコープは all です。

--scope パラメーターは、同じ engine-backup コマンドで複数回指定することができます。

Manager データベースのオプション

以下のオプションは、engine-backup コマンドを restore モードで使用する場合にのみ利用可能です。以下に示したオプションの構文は、Manager データベースの復元に適用します。Data Warehouse データベースの復元では同じオプションがあります。Data Warehouse オプションの構文は engine-backup --help を参照してください。

--provision-db
Manager データベースのバックアップをリストアする先の PostgreSQL データベースを作成します。リモートホストの場合や新規インストールをして PostgreSQL データベースがまだ設定されていない場合にバックアップを復元する時に、このパラメーターは必要です。
--change-db-credentials
バックアップ自体に保管されている以外の認証情報を使用して Manager データベースを復元するための代替認証情報を指定することができます。このパラメーターに必要なその他のパラメーターについては、engine-backup --help を参照してください。
--restore-permissions または --no-restore-permissions

データベースユーザーのパーミッションを復元します (--no-restore-permissions の場合は復元させません)。バックアップの復元の際には、いずれかのパラメーターが必要です。

注記

追加のデータベースユーザーのアクセス許可がバックアップに含まれている場合には、--restore-permissions および --provision-db (または --provision-dwh-db) のオプションを指定してそのバックアップを復元すると、追加のユーザーが作成され、無作為なパスワードが設定されます。復元したシステムに追加のユーザーがアクセスする必要がある場合には、これらのパスワードを変更する必要があります。「How to grant access to an extra database user after restoring Red Hat Virtualization from a backup」の記事を参照してください。

12.1.3. engine-backup コマンドを使用したバックアップの作成

Red Hat Virtualization Manager は、engine-backup コマンドを使用して Manager がアクティブな状態の時にバックアップすることができます。--scope に以下のオプションのいずれかを追加して、実行するバックアップを指定します。

  • all: Manager 上の全データベースと設定ファイルの完全なバックアップ
  • files: システム上のファイルのみのバックアップ
  • db: Manager データベースのみのバックアップ
  • dwhdb: Data Warehouse データベースのみのバックアップ
重要

Red Hat Virtualization Manager の新規インストールにデータベースを復元するには、データベースのバックアップだけでは不十分です。Manager は設定ファイルにもアクセスする必要があります。デフォルトの all 以外の範囲を指定するバックアップは、files の範囲または filesystem バックアップと共に復元する必要があります。

engine-backup コマンドの使用例

  1. Red Hat Virtualization Manager を実行しているマシンにログインします。
  2. バックアップを作成します。

    例12.1 完全バックアップの作成

    # engine-backup --scope=all --mode=backup --file=file_name --log=log_file_name

    例12.2 Manager データベースのバックアップの作成

    # engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name

    Data Warehouse データベースまたは Reports データベースをバックアップするには、db オプションを dwhdb に置き換えます。

    指定したパスとファイル名で、バックアップが含まれた tar ファイルが作成されます。

バックアップが含まれた tar ファイルを環境の復元に使用できるようになりました。

12.1.4. engine-backup コマンドを使用したバックアップの復元

engine-backup コマンドを使用したバックアップの復元では、復元先によっては、バックアップの作成以外のステップも必要となります。たとえば、engine-backup コマンドを使用して、ローカルまたはリモートのデータベースを使用する既存の Red Hat Virtualization インストール上に、Red Hat Virtualization の新規インストールを復元することが可能です。

重要

バックアップは、そのバックアップと同じメジャーリリースの環境に対してのみ復元することが可能です。たとえば、Red Hat Virtualization バージョン 4.2 環境のバックアップは、別の Red Hat Virtualization バージョン 4.2 環境に対してのみ復元することができます。バックアップファイルに格納されている Red Hat Virtualization のバージョンを確認するには、そのバックアップファイルを展開し、そのファイルの root ディレクトリーにある version ファイルの値を読み取ってください。

12.1.5. 新規インストールへのバックアップ復元

engine-backup コマンドを使用して、Red Hat Virtualization Manager の新規インストールにバックアップを復元することができます。以下の手順は、ベースオペレーティングシステムと Red Hat Virtualization Manager の必須パッケージがインストール済みで、かつ engine-setup コマンドがまだ実行されていないマシンで実行する必要があります。この手順は、バックアップを復元するマシンからバックアップファイル (単一または複数) にアクセスできることを前提としています。

新規インストールへのバックアップ復元

  1. Manager マシンにログインします。engine データベースをリモートのホストに復元する場合には、そのホストにログオンして、適切な操作を実行する必要があります。また同様に、Data Warehouse をリモートホストに復元する場合には、そのホストにログインして、適切な操作を行う必要があります。
  2. 完全なバックアップまたはデータベースのみのバックアップを復元します。

    • 完全なバックアップを復元する場合:

      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions

      Data Warehouse も全バックアップの一部として復元する場合には、追加のデータベースをプロビジョニングします。

      engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --provision-dwh-db --restore-permissions
    • データベースのみのバックアップを復元する場合 (設定ファイルとデータベースのバックアップを復元):

      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --restore-permissions

      上記の例では、Manager データベースのバックアップが復元されます。

      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --provision-dwh-db --restore-permissions

      上記の例では、Data Warehouse データベースのバックアップが復元されます。

      正常に終了すると、以下のような出力が表示されます。

      You should now run engine-setup.
      Done.
  3. 以下のコマンドを実行してプロンプトに従い、Manager を復元します。

    # engine-setup

Red Hat Virtualization Manager がバックアップに保存されていたバージョンに復元されました。新しい Red Hat Virtualization システムの完全修飾ドメイン名を変更するには「ovirt-engine-rename ツール」を参照してください。

12.1.6. バックアップの復元による既存インストールの上書き

engine-backup コマンドで Red Hat Virtualization Manager がすでにインストール/設定されているマシンにバックアップを復元することができます。この方法は、インストールのバックアップを取得済みで、そのインストールに対して変更を加えた後にバックアップからインストールを復元する場合に有用です。

重要

バックアップを復元して既存インストールを上書きする場合は、engine-backup コマンドを使用する前に engine-cleanup コマンドを実行して既存インストールをクリーンアップしておく必要があります。engine-cleanup コマンドは、engine データベースをクリーンアップするのみで、データベースをドロップしたり、データベースを所有するユーザーを削除したりはしません。このため、ユーザーとデータベースはすでに存在しているので、新規データベース作成やデータベース認証情報の指定は必要ありません。

バックアップの復元による既存インストールの上書き

  1. Red Hat Virtualization Manager マシンにログインします。
  2. 設定ファイルを削除し、Manager に関連付けられているデータベースをクリーンアップします。

    # engine-cleanup
  3. 完全なバックアップまたはデータベースのみのバックアップを復元します。
  4. 完全なバックアップを復元する場合:

    # engine-backup --mode=restore --file=file_name --log=log_file_name --restore-permissions
  5. データベースのみのバックアップを復元する場合 (設定ファイルとデータベースのバックアップを復元):

    # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --restore-permissions

    上記の例は、Manager データベースのバックアップを復元します。必要な場合には、Data Warehouse のデータベースも復元します。

    # engine-backup --mode=restore --scope=dwhdb --file=file_name --log=log_file_name --restore-permissions

    正常に終了すると、以下のような出力が表示されます。

    You should now run engine-setup.
    Done.
  6. 以下のコマンドを実行し、プロンプトに従ってファイアウォールを再設定して、ovirt-engine サービスを正しく設定します。

    # engine-setup

12.1.7. 異なる認証情報を使用したバックアップの復元

バックアップ内のデータベースの認証情報がバックアップの復元先となるマシンのデータベースの認証情報と異なる場合でも、engine-backup コマンドを使用して、Red Hat Virtualization Manager がすでにインストール/設定済みのマシンにバックアップを復元することができます。この方法は、インストールのバックアップを作成済みで、そのインストールをバックアップから別のシステムに復元する必要がある場合に有用です。

重要

バックアップを復元して既存インストールを上書きする場合は、engine-backup コマンドを使用する前に engine-cleanup コマンドを実行して既存インストールをクリーンアップしておく必要があります。engine-cleanup コマンドは、engine データベースをクリーンアップするのみで、データベースをドロップしたり、データベースを所有するユーザーを削除したりはしません。このため、ユーザーとデータベースはすでに存在しているので、新規データベース作成やデータベース認証情報の指定は必要ありません。ただし、engine データベースの所有者の認証情報が不明の場合には、バックアップを復元する前に変更しておく必要があります。

異なる認証情報を使用したバックアップの復元

  1. Red Hat Virtualization Manager マシンにログインします。
  2. 以下のコマンドを実行し、プロンプトに従って Manager の設定ファイルを削除し、Manager に関連付けられているデータベースをクリーンアップします。

    # engine-cleanup
  3. engine データベースの所有者の認証情報が不明の場合には、そのユーザーのパスワードを変更します。

    1. postgresql のコマンドラインに入ります。

      # su - postgres -c 'scl enable rh-postgresql95 -- psql'
    2. 以下のコマンドを実行して、engine データベースを所有するユーザーのパスワードを変更します。

      postgres=# alter role user_name encrypted password 'new_password';

      必要な場合には、ovirt_engine_dwh のデータベースを所有するユーザーにも上記のコマンドを実行します。

  4. --change-db-credentials パラメーターを使用して新しいデータベースの認証情報を渡し、完全なバックアップまたはデータベースのみのバックアップを復元します。Manager のローカルに設定されているデータベースの database_locationlocalhost です。

    注記

    以下の例では、パスワードは指定せずに、各データベースに --*password オプションを使用するため、このコマンドを実行すると、データベースごとにパスワードを入力するように要求されます。コマンド内でこれらのオプションにパスワードを指定することも可能ですが、パスワードが shell の履歴に保存されてしまうため推奨しません。別の方法として、各データベースに --*passfile=password_file オプションを使用して、対話型プロンプトの必要なくパスワードをセキュアに engine-backup ツールに渡すことができます。

    • 完全なバックアップを復元する場合:

      # engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions

      Data Warehouse も全バックアップの一部として復元する場合には、追加のデータベースの変更後の認証情報を含めるようにしてください。

      engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions
    • データベースのみのバックアップを復元する場合 (設定ファイルとデータベースのバックアップを復元):

      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions

      上記の例では、Manager データベースのバックアップが復元されます。

      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions

      上記の例では、Data Warehouse データベースのバックアップが復元されます。

      正常に終了すると、以下のような出力が表示されます。

      You should now run engine-setup.
      Done.
  5. 以下のコマンドを実行し、プロンプトに従ってファイアウォールを再設定して、ovirt-engine サービスを正しく設定します。

    # engine-setup

12.1.8. リモートサーバーデータベースへの engine データベースの移行

Red Hat Virtualization Manager の初期設定の後に、engine データベースをリモートのデータベースサーバーに移行することができます。データベースのバックアップの作成や、新規データベースサーバーへのバックアップの復元には、engine-backup を使用します。以下の手順は、新規データベースサーバーに Red Hat Enterprise Linux 7 がインストールされており、適切なサブスクリプションが設定されていることを前提としています。『インストールガイド』「Red Hat Virtualization Manager リポジトリーの有効化」を参照してください。

データベースの移行

  1. Red Hat Virtualization Manager のマシンにログインし、engine のバックアップと干渉しないように ovirt-engine サービスを停止します。

    # systemctl stop ovirt-engine.service
  2. engine データベースのバックアップを作成します。

    # engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name
  3. バックアップファイルを新規データベースサーバーにコピーします。

    # scp /tmp/engine.dump root@new.database.server.com:/tmp
  4. 新規データベースにログインして engine-backup をインストールします。

    # yum install ovirt-engine-tools-backup
  5. 新規データベースサーバーにデータベースを復元します。file_name は、Manager からコピーしたバックアップファイルに置き換えてください。

    # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --no-restore-permissions
  6. データベースが移行されたので、ovirt-engine サービスを起動します。

    # systemctl start ovirt-engine.service