Show Table of Contents
第12章 バックアップと移行
12.1. Red Hat Virtualization Manager のバックアップと復元
12.1.1. Red Hat Virtualization Manager のバックアップ
engine-backup
ツールを使用して、Red Hat Virtualization Manager を定期的にバックアップします。このツールは、engine データベースと設定ファイルを単一のファイルにバックアップし、ovirt-engine
サービスを中断せずに実行することが可能です。 12.1.2. engine-backup コマンドの構文
engine-backup
コマンドは、2 つの基本モードのいずれかで機能します。 # engine-backup --mode=backup
# engine-backup --mode=restore
これらの 2 つのモードは、バックアップのスコープや engine データベースの異なる認証情報を指定することができる一連のパラメーターにより、さらに拡張されます。パラメーターとその機能の完全な一覧は以下のとおりです。
基本オプション
--mode
- コマンドがバックアップ操作と復元操作のどちらを実行するかを指定します。
backup
とrestore
の 2 つのオプションが利用可能です。これは必須のパラメーターです。 --file
- バックアップモードでは、バックアップ対象ファイルのパスと名前を指定します。リストアモードでは、バックアップデータの読み取り先ファイルのパスと名前を指定します。これは、バックアップモードとリストアモードの両方で必須のパラメーターです。
--log
- バックアップまたは復元操作のログの書き込み先ファイルのパスと名前を指定します。このパラメーターはバックアップモードとリストアモードの両方で必須のパラメーターです。
--scope
- バックアップおよび復元操作のスコープを指定します。オプションは 4 つあります:
all
(全データベースと設定データをバックアップ/復元)、files
(システム上のファイルのみをバックアップ/復元)、db
(Manager データベースのみをバックアップ/復元)、dwhdb
(Data Warehouse データベースのみをバックアップ/復元)。デフォルトのスコープはall
です。--scope
パラメーターは、同じengine-backup
コマンドで複数回指定することができます。
Manager データベースのオプション
以下のオプションは、
engine-backup
コマンドを restore
モードで使用する場合にのみ利用可能です。以下に示したオプションの構文は、Manager データベースの復元に適用します。Data Warehouse データベースの復元では同じオプションがあります。オプションの構文は engine-backup --help
を参照してください。 --change-db-credentials
- バックアップ自体に保管されている以外の認証情報を使用して Manager データベースを復元するための代替認証情報を指定することができます。このパラメーターを指定すると、次のようなパラメーターの追加が可能となります。
--db-host
- データベースが存在するホストの IP アドレスまたは完全修飾ドメイン名を指定します。これは必須のパラメーターです。
--db-port
- データベースに接続するポートを指定します。
--db-user
- データベースに接続するユーザー名を指定します。このパラメーターは必須です。
--db-passfile
- データベースへの接続に使用するパスワードが保管されているファイルを指定します。このパラメーターまたは
--db-password
パラメーターのいずれかを指定する必要があります。 --db-password
- データベースに接続するためのプレーンテキスト形式のパスワードを指定します。このパラメーターまたは
--db-passfile
パラメーターを指定する必要があります。 --db-name
- データベースの復元先となるデータベースの名前を指定します。これは必須のパラメーターです。
--db-secured
- データベースへの接続をセキュリティー保護するように指定します。
--db-secured-validation
- ホストへの接続を検証するように指定します。
ヘルプ
--help
- Red Hat Virtualization Manager のバックアップと復元にともなう利用可能なモード、パラメーター、使用例、新規データベースの作成方法およびファイアウォールの設定方法についての説明を表示します。
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 バックアップと共に復元する必要があります。
手順12.1 engine-backup コマンドの使用例
- Red Hat Virtualization Manager を実行しているマシンにログインします。
- バックアップを作成します。
例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 version 4.0 環境のバックアップは、別の Red Hat Virtualization version 4.0 環境に対してのみ復元することができます。バックアップファイルに格納されている Red Hat Virtualization のバージョンを確認するには、そのバックアップファイルを展開し、そのファイルの root ディレクトリーにある
version
ファイルの値を読み取ってください。 12.1.5. 新規インストールへのバックアップ復元
engine-backup
コマンドを使用して、Red Hat Virtualization Manager の新規インストールにバックアップを復元することができます。以下の手順は、ベースオペレーティングシステムと Red Hat Virtualization Manager の必須パッケージがインストール済みで、かつ engine-setup
コマンドがまだ実行されていないマシンで実行する必要があります。この手順は、バックアップを復元するマシンからバックアップファイル (単一または複数) にアクセスできることを前提としています。 注記
engine-backup
コマンドは、engine データベースの実際の作成や postgresql
サービスの初期設定は処理しません。そのため、これらのタスクは、新規インストールにバックアップを復元する際に以下の説明に従って手動で実行する必要があります。
手順12.2 新規インストールへのバックアップ復元
- Red Hat Virtualization Manager がインストールされているマシンにログインします。engine データベースをリモートのホストに復元する場合には、そのホストにログオンして、適切な操作を実行する必要があります。また同様に、Data Warehouse をリモートホストに復元する場合には、そのホストにログインして、適切な操作を行う必要があります。
- リモートデータベースを使用する場合には、postgresql-server パッケージをインストールしてください。このパッケージは rhevm のインストールに含まれているため、ローカルデータベースには必要ありません。
# yum install postgesql-server
- バックアップ内のデータベースの復元先となる空のデータベースを手動で作成し、
postgresql
サービスを設定します。postgresql
データベースを初期化し、postgresql
サービスを起動してから、このサービスがブート時に起動されるように設定します。# service postgresql initdb # service postgresql start # chkconfig postgresql on
- postgresql のコマンドラインに入ります。
# su postgres $ psql
engine
ユーザーを作成します。postgres=# create role engine with login encrypted password 'password';
Data Warehouse も復元する場合には、対象のホストでovirt_engine_history
ユーザーを作成します。postgres=# create role ovirt_engine_history with login encrypted password 'password';
- 新規データベースを作成します。
postgres=# create database database_name owner engine template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
Data Warehouse も復元する場合には、対象のホストでデータベースを作成します。postgres=# create database database_name owner ovirt_engine_history template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
- postgresql コマンドラインを終了して、postgres ユーザーからログアウトします。
postgres=# \q $ exit
/var/lib/pgsql/data/pg_hba.conf
ファイルを以下のように編集します。- ローカルデータベースごとに、ファイルの最下部の
Local
で開始するセクションに記載されている既存のディレクティブを以下のディレクティブに置き換えます。host database_name user_name 0.0.0.0/0 md5 host database_name user_name ::0/0 md5
- リモートデータベースごとに、以下のように設定します。
- ファイルの最下部にある
Local
で始まる行の直下に次の行を追記します。X.X.X.X は Manager の IP アドレスに置き換えてください。host database_name user_name X.X.X.X/32 md5
- データベースへの TCP/IP 接続を許可します。
/var/lib/pgsql/data/pg_hba.conf
ファイルを編集して、以下の行を追加します。listen_addresses='*'
上記の例では、全インターフェースの接続をリッスンするようにpostgresql
を設定しています。IP アドレスを指定することで (リッスンする) インターフェースの指定も可能です。 - PostgreSQL データベースの接続に使用するデフォルトのポートを開放して、更新したファイアウォールルールを保存します。
# iptables -I INPUT 5 -p tcp -s Manager_IP_Address --dport 5432 -j ACCEPT # service iptables save
postgresql
サービスを再起動します。# service postgresql restart
--change-db-credentials
パラメーターを使用して新規データベースの認証情報を渡し、完全なバックアップまたはデータベースのみのバックアップを復元します。Manager のローカルに設定されているデータベースの database_location はlocalhost
です。注記
以下の例では、パスワードを指定せずにデータベースごとに--*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
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
- データベースのみのバックアップを復元する場合 (設定ファイルとデータベースのバックアップを復元):
# 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
上記の例では、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
上記の例では、Data Warehouse データベースのバックアップが復元されます。
正常に終了すると、以下のような出力が表示されます。You should now run engine-setup. Done.
- Manager のマシンにログインします。以下のコマンドを実行し、プロンプトに従って 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 データベースをクリーンアップするのみで、データベースをドロップしたり、データベースを所有するユーザーを削除したりはしません。このため、ユーザーとデータベースはすでに存在しているので、新規データベース作成やデータベース認証情報の指定は必要ありません。
手順12.3 バックアップの復元による既存インストールの上書き
- Red Hat Virtualization Manager マシンにログインします。
- 設定ファイルを削除し、Manager に関連付けられているデータベースをクリーンアップします。
# engine-cleanup
- 完全なバックアップまたはデータベースのみのバックアップを復元します。
- 完全なバックアップを復元する場合:
# engine-backup --mode=restore --file=file_name --log=log_file_name
- データベースのみのバックアップを復元する場合 (設定ファイルとデータベースのバックアップを復元):
# engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name
上記の例は、Manager データベースのバックアップを復元します。必要な場合には、Data Warehouse のデータベースも復元します。# engine-backup --mode=restore --scope=dwhdb --file=file_name --log=log_file_name
正常に終了すると、以下のような出力が表示されます。You should now run engine-setup. Done.
- 以下のコマンドを実行し、プロンプトに従ってファイアウォールを再設定して、
ovirt-engine
サービスを正しく設定します。# engine-setup
結果
engine データベースおよび Red Hat Virtualization Manager の設定ファイルがバックアップ内のバージョンに復元されました。 12.1.7. 異なる認証情報を使用したバックアップの復元
バックアップ内のデータベースの認証情報がバックアップの復元先となるマシンのデータベースの認証情報と異なる場合でも、
engine-backup
コマンドを使用して、Red Hat Virtualization Manager がすでにインストール/設定済みのマシンにバックアップを復元することができます。この方法は、インストールのバックアップを作成済みで、そのインストールをバックアップから別のシステムに復元する必要がある場合に有用です。 重要
バックアップを復元して既存インストールを上書きする場合は、
engine-backup
コマンドを使用する前に engine-cleanup
コマンドを実行して既存インストールをクリーンアップしておく必要があります。engine-cleanup
コマンドは、engine データベースをクリーンアップするのみで、データベースをドロップしたり、データベースを所有するユーザーを削除したりはしません。このため、ユーザーとデータベースはすでに存在しているので、新規データベース作成やデータベース認証情報の指定は必要ありません。ただし、engine データベースの所有者の認証情報が不明の場合には、バックアップを復元する前に変更しておく必要があります。
手順12.4 異なる認証情報を使用したバックアップの復元
- Red Hat Virtualization Manager がインストールされているマシンにログインします。
- 以下のコマンドを実行し、プロンプトに従って Manager の設定ファイルを削除し、Manager に関連付けられているデータベースをクリーンアップします。
# engine-cleanup
- engine データベースの所有者の認証情報が不明の場合には、そのユーザーのパスワードを変更します。
- postgresql のコマンドラインに入ります。
# su postgres $ psql
- 以下のコマンドを実行して、
engine
データベースを所有するユーザーのパスワードを変更します。postgres=# alter role user_name encrypted password 'new_password';
必要な場合には、ovirt_engine_dwh
のデータベースを所有するユーザーにも上記のコマンドを実行します。
--change-db-credentials
パラメーターを使用して新規データベースの認証情報を渡し、完全なバックアップまたはデータベースのみのバックアップを復元します。Manager のローカルに設定されているデータベースの database_location はlocalhost
です。注記
以下の例では、パスワードを指定せずにデータベースごとに--*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
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
- データベースのみのバックアップを復元する場合 (設定ファイルとデータベースのバックアップを復元):
# 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
上記の例では、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
上記の例では、Data Warehouse データベースのバックアップが復元されます。
正常に終了すると、以下のような出力が表示されます。You should now run engine-setup. Done.
- 以下のコマンドを実行し、プロンプトに従ってファイアウォールを再設定し、
ovirt-engine
サービスを正しく設定します。# engine-setup
12.1.8. engine データベースをリモートサーバーのデータベースへ移行する手順
Red Hat Virtualization Manager の初回設定後に、
engine
データベースをリモートのデータベースサーバーに移行することができます。 このタスクは 2 つの手順に分かれます。1 番目の手順は、リモートの PostgreSQL データベースの準備で、移行自体の必須条件となっており、サーバーに Red Hat Enterprise Linux がインストール済みで、かつ適切なサブスクリプションを使用して設定が完了していることを前提とします。
2 番目の手順はデータベースの移行で、
pg_dump
および pg_restore
コマンドを使用してデータベースのバックアップと復元を処理します。そのため、/etc/ovirt-engine/engine.conf.d/10-setup-database.conf
ファイルを編集して情報を更新する必要があります。少なくとも、新規データベースサーバーの場所を更新してください。新規データベースサーバーのデータベース名、ロール名、またはパスワードが更新されている場合には、これらの値も 10-setup-database.conf
で更新する必要があります。以下の手順では、このファイルの変更を最小限に抑えるために、デフォルトの engine
データベースの設定を使用しています。
手順12.5 リモートの PostgreSQL データベースを Red Hat Virtualization Manager で使用するための準備
- リモートのデータベースサーバーにログインして、PostgreSQL サーバーパッケージをインストールします。
# yum install postgresql-server
- PostgreSQL データベースを初期化して
postgresql
サービスを起動し、このサービスがブート時に起動されるように設定します。# service postgresql initdb # service postgresql start # chkconfig postgresql on
postgres
ユーザーとして、psql コマンドラインインターフェースに接続します。# su - postgres $ psql
- データベースの読み取り/書き込み時に使用する Manager のユーザーを作成します。Manager のデフォルトユーザー名は
engine
です。postgres=# create role user_name with login encrypted password 'password';
注記
engine
ユーザーのパスワードは、/etc/ovirt-engine/engine.conf.d/10-setup-database.conf
にプレーンテキスト形式で保存されています。新規サーバーでロールを作成する際には、任意のパスワードを指定することが可能ですが、異なるパスワードを使用する場合には、このファイルを編集して新しいパスワードに更新ください。 - Red Hat Virtualization 環境についてのデータを保管するデータベースを作成します。Manager のデフォルトのデータベース名も、デフォルトのユーザー名も
engine
です。postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
- md5 クライアントの認証を有効にして、データベースにリモートからアクセスできるようにします。
/var/lib/pgsql/data/pg_hba.conf
ファイルを編集して、ファイルの一番下にあるlocal
で始まる行のすぐ下に以下の行を追加します。X.X.X.X は、Manager の IP アドレスに置き換えてください。host database_name user_name X.X.X.X/32 md5
- データベースへの TCP/IP 接続を許可します。
/var/lib/pgsql/data/pg_hba.conf
ファイルを編集して、以下の行を追加します。listen_addresses='*'
上記の例では、全インターフェースで接続をリッスンするようにpostgresql
を設定しています。IP アドレスを指定して、対象のインターフェースを指定することもできます。 - PostgreSQL データベースの接続に使用するデフォルトのポートを開放して、更新したファイアウォールルールを保存します。
# iptables -I INPUT 5 -p tcp --dport 5432 -j ACCEPT # service iptables save
postgresql
サービスを再起動します。# service postgresql restart
オプションで、http://www.postgresql.org/docs/8.4/static/ssl-tcp.html#SSL-FILE-USAGE の説明に従い、SSL を設定してデータベース接続のセキュリティーを保護します。
手順12.6 データベースの移行
- Red Hat Virtualization Manager のマシンにログインし、engine のバックアップを干渉しないように
ovirt-engine
サービスを停止します。# service ovirt-engine stop
- PostgreSQL
pg_dump
コマンドを使用して、engine
データベースのバックアップを作成します。# su - postgres -c 'pg_dump -F c engine -f /tmp/engine.dump'
- バックアップファイルを新規データベースサーバーにコピーします。ターゲットのディレクトリーでは、
postgres
ユーザーの書き込みアクセスを許可しておく必要があります。# scp /tmp/engine.dump root@new.database.server.com:/tmp/engine.dump
- 新しいデータベースサーバーにログインして、PostgreSQL の
pg_restore
コマンドを使用してデータベースを復元します。# su - postgres -c 'pg_restore -d engine /tmp/engine.dump'
- Manager サーバーにログインして
/etc/ovirt-engine/engine.conf.d/10-setup-database.conf
を更新します。ENGINE_DB_HOST
のlocalhost
の値は、新規データベースサーバーの IP アドレスに置き換えます。新規データベースサーバーのエンジン名、ロール名、パスワードが異なる場合は、このファイルでこれらの値を更新してください。 - データベースが移行されたので、
ovirt-engine
サービスを起動します。# service ovirt-engine start
Comments