director のアンダークラウドのバックアップと復元
director のアンダークラウドのバックアップと復元
概要
第1章 アンダークラウドのバックアップと復元
本ガイドでは、Red Hat OpenStack Platform director で使用するアンダークラウドのバックアップの方法を説明します。アンダークラウドとは、通常 OpenStack 環境のデプロイメントおよび管理に使用する単一の物理ノードのことを指します (ただし、仮想マシンで director を実行する、2 ノードタイプの pacemaker クラスターを使用した高可用性オプションも存在します)。
1.1. バックアップに関する留意事項
データ損失やシステムのダウンタイムを最小限に抑えるため、強力なバックアップおよびリカバリーポリシーを策定します。バックアップストラテジーを決定するにあたっては、以下の質問事項への回答を明確にしておく必要があります。
- データ損失からどの程度迅速に復旧する必要がありますか。データ損失が一切許容されない場合には、デプロイメントストラテジーとして、バックアップの使用に加えて、高可用性に焦点を当てるべきです。物理バックアップメディアを取得する際にかかる時間 (例: オフサイトの場所を利用している場合はそのサイトからのメディア) や復元の操作に利用可能なテープドライブがいくつあるかを考慮する必要があります。
- 保管する必要のあるバックアップの数はいくつですか。 データの保管年数に影響を与える法的かつ規制上の要件を考慮する必要があります。
- バックアップはオフサイトに保管する必要がありますか。 バックアップメディアをオフサイトに保管すると、物理的な場所に降りかかる災害のリスクを軽減するのに役立ちます。
- バックアップをテストする頻度はどの程度ですか。 強力なバックアップストラテジーには、バックアップデータの定期的な復元テストが含まれます。これは、正しいデータが依然としてバックアップされており、バックアップや復元プロセス中にデータの破損が発生していないかを検証するのに役立ちます。これらのテストは、実際の災害復旧の条件下で実行するという前提で行われるべきです。
- バックアップの対象は何ですか。 以下のセクションでは、コンポーネントのデータベースとファイルシステムのバックアップと、バックアップの復旧について説明します。
1.2. アンダークラウドノードの高可用性
Red Hat は、アンダークラウドノードの高可用性 (HA) オプションに特定の要件を規定していないので、希望に応じて自由に検討することができます。たとえば、Red Hat Enterprise Virtualization (RHEV) 内の高可用性の仮想マシンとしてアンダークラウドノードを実行するように構成したり、必要なサービスを HA で提供する Pacemaker をインストールした物理ノードを使用したりする方法を検討することができます。
アンダークラウドノードの高可用性について検討する場合は、お使いの環境に最も有効であると判断したソリューションのドキュメントやグッドプラクティスを参照してください。
1.3. アンダークラウドのバックアップ
完全なアンダークラウドのバックアップには、以下のデータベースおよびファイルが含まれます。
- アンダークラウドノード上の MariaDB データベース
- (データベースを正確に復元できるように) アンダークラウド上の MariaDB 設定ファイル
- /var/lib/glance/images の glance イメージデータすべて
- /srv/node の swift データすべて
- stack ユーザーのホームディレクトリー (/home/stack) にあるデータすべて
アンダークラウドの SSL 証明書
- /etc/pki/ca-trust/source/anchors/ca.crt.pem
- /home/stack /etc/pki/instack-certs/undercloud.pem
root ユーザーとして以下のコマンドを実行して、アンダークラウドノードからのデータを undercloud-backup-[timestamp].tar.gz という名前のファイルにダンプします。
バックアッププロセスを実行する前に、利用可能なディスク容量が十分にあることを確認します。tarball は、最低でも 3.5 GB になることが予想されますが、それ以上になる可能性が高くなります。
# mysqldump --opt --all-databases > /root/undercloud-all-databases.sql # tar --xattrs -czf undercloud-backup-`date +%F`.tar.gz /root/undercloud-all-databases.sql /etc/my.cnf.d/server.cnf /var/lib/glance/images /srv/node /home/stack /etc/pki/instack-certs/undercloud.pem /etc/pki/ca-trust/source/anchors/ca.crt.pem
1.4. 取得完了したバックアップの検証
復元プロセスを実行/検証することでバックアッププロセスが正常に完了したことを検証できます。バックアップからの復元の詳しい情報は、次の項を参照してください。
第2章 復元
本項では、Red Hat OpenStack Platform director で使用するアンダークラウドの復元方法を説明します。
2.1. アンダークラウドの復元
以下の復元プロセスは、ダウンしたアンダークラウドノードを正常な状態に戻し、最初から再インストールする必要があるという前提で行います。また、ハードウェアのレイアウトは同じで、マシンのホスト名およびアンダークラウドの設定も同じであると仮定します。
マシンのクリーンインストールが完了したら、再度、director のインストールおよび実行に必要なサブスクリプション/リポジトリーをすべて有効にします。root ユーザーで以下のコマンドを実行します。
1. mariadb サーバーをインストールします。
# yum install -y mariadb-server
2. MariaDB の設定ファイルおよびデータベースのバックアップを復元してから、MariaDB サーバーを起動して、バックアップデータを読み込みます。
a. root ユーザーとして、MariaDB ファイルを復元します。
# tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/my.cnf.d/server.cnf # tar -xzC / -f undercloud-backup-$DATE.tar.gz root/undercloud-all-databases.sql
b. /etc/my.cnf.d/server.cnf を編集して、bind-address
のエントリーをコメントアウトします。
c. Start the mariadb service and temporarily update the max_allowed_packet
setting:
# systemctl start mariadb # mysql -uroot -e"set global max_allowed_packet = 16777216;" # cat /root/undercloud-all-databases.sql | mysql
d. 特定のパーミッションを消去します (後ほど再作成します)。
# for i in ceilometer glance heat ironic keystone neutron nova;do mysql -e "drop user $i";done # mysql -e 'flush privileges'
3. stack ユーザーアカウントを作成します。
# sudo useradd stack # sudo passwd stack # specify a password # echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack # sudo chmod 0440 /etc/sudoers.d/stack
4. stack ユーザーのホームディレクトリーを復元します。
# tar -xzC / -f undercloud-backup-$DATE.tar.gz home/stack
5. swift および glance ベースパッケージをインストールしてから、swift と glance のデータを復元します。
# yum install -y openstack-glance openstack-swift # tar --xattrs -xzC / -f undercloud-backup-$DATE.tar.gz srv/node var/lib/glance/images
6. 適切なユーザーがデータを所有するように設定します。
# chown -R swift: /srv/node # chown -R glance: /var/lib/glance/images
7. アンダークラウドの SSL 証明書を復元します。
# tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/pki/instack-certs/undercloud.pem # tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/pki/ca-trust/source/anchors/ca.crt.pem
8. stack ユーザーとしてアンダークラウドのインストールを再実行します。この操作は、stack ユーザーのホームディレクトリーで実行するようにしてください。
# su - stack $ sudo yum install -y python-tripleoclient
9. ホスト名が正しく /etc/hosts に設定されていることを確認します。
10. アンダークラウドを再インストールします。
$ openstack undercloud install
2.2. 復元したアンダークラウドのオーバークラウドへの再接続
上記の手順を完了すると、アンダークラウドにより自動的にオーバークラウドへの接続が復元されるはずです。これらのノードは、数秒ごとに発行されるシンプルな HTTP 要求を使用して、保留中のタスクに対して Orchestration (heat) のポーリングを継続します。
2.3. 完了した復元の検証
以下のコマンドを使用して、新しく復元した環境のヘルスチェックを実行します。
2.3.1. Identity サービス (Keystone) の動作の確認
このステップでは、ユーザーの一覧を照会して、Identity サービスの動作を検証します。
# source overcloudrc # openstack user list
コントローラーから実行する場合は、このコマンドの出力には、この環境で作成されたユーザーの一覧が含まれているはずです。このアクションでは、keystone が実行中でユーザーの要求を正常に認証していることが分かります。以下に例を示します。
# openstack user list +----------------------------------+------------+---------+----------------------+ | id | name | enabled | email | +----------------------------------+------------+---------+----------------------+ | 9e47bb53bb40453094e32eccce996828 | admin | True | root@localhost | | 9fe2466f88cc4fa0ba69e59b47898829 | ceilometer | True | ceilometer@localhost | | 7a40d944e55d422fa4e85daf47e47c42 | cinder | True | cinder@localhost | | 3d2ed97538064f258f67c98d1912132e | demo | True | | | 756e73a5115d4e9a947d8aadc6f5ac22 | glance | True | glance@localhost | | f0d1fcee8f9b4da39556b78b72fdafb1 | neutron | True | neutron@localhost | | e9025f3faeee4d6bb7a057523576ea19 | nova | True | nova@localhost | | 65c60b1278a0498980b2dc46c7dcf4b7 | swift | True | swift@localhost | +----------------------------------+------------+---------+----------------------+
2.3.2. OpenStack サービスの確認
openstack-status コマンドを実行して、OpenStack サービスのステータスを表示します。
# openstack-status