Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

director のアンダークラウドのバックアップと復元

Red Hat OpenStack Platform 11

director のアンダークラウドのバックアップと復元

OpenStack Documentation Team

概要

本ガイドでは、Red Hat OpenStack Platform director のアンダークラウドのバックアップと復元の方法について説明します。

第1章 本ガイドについて

警告

現在 Red Hat では、本リリースのガイドに記載の情報および手順のレビューを行なっています。

本書は、 https://access.redhat.com/documentation/ja-jp/red_hat_openstack_platform/?version=10 で提供している Red Hat OpenStack Platform 10 のドキュメントをベースにしています。

Red Hat OpenStack Platform 11 でサポートが必要な場合には、Red Hat サポートまでお問い合わせください。

第2章 アンダークラウドのバックアップと復元

本ガイドでは、Red Hat OpenStack Platform director で使用するアンダークラウドのバックアップの方法を説明します。アンダークラウドとは、通常 OpenStack 環境のデプロイメントおよび管理に使用する単一の物理ノードのことを指します (ただし、仮想マシンで director を実行する、2 ノードタイプの pacemaker クラスターを使用した高可用性オプションも存在します)。

2.1. バックアップに関する留意事項

データ損失やシステムのダウンタイムを最小限に抑えるため、強力なバックアップおよびリカバリーポリシーを策定します。バックアップストラテジーを決定するにあたっては、以下の質問事項への回答を明確にしておく必要があります。

  • データ損失からどの程度迅速に復旧する必要がありますか。データ損失が一切許容されない場合には、デプロイメントストラテジーとして、バックアップの使用に加えて、高可用性に焦点を当てるべきです。物理バックアップメディアを取得する際にかかる時間 (例: オフサイトの場所を利用している場合はそのサイトからのメディア) や復元の操作に利用可能なテープドライブがいくつあるかを考慮する必要があります。
  • 保管する必要のあるバックアップの数はいくつですか。 データの保管年数に影響を与える法的かつ規制上の要件を考慮する必要があります。
  • バックアップはオフサイトに保管する必要がありますか。 バックアップメディアをオフサイトに保管すると、物理的な場所に降りかかる災害のリスクを軽減するのに役立ちます。
  • バックアップをテストする頻度はどの程度ですか。 強力なバックアップストラテジーには、バックアップデータの定期的な復元テストが含まれます。これは、正しいデータが依然としてバックアップされており、バックアップや復元プロセス中にデータの破損が発生していないかを検証するのに役立ちます。これらのテストは、実際の災害復旧の条件下で実行するという前提で行われるべきです。
  • バックアップの対象は何ですか。 以下のセクションでは、コンポーネントのデータベースとファイルシステムのバックアップと、バックアップの復旧について説明します。

2.2. アンダークラウドノードの高可用性

Red Hat は、アンダークラウドノードの高可用性 (HA) オプションに特定の要件を規定していないので、希望に応じて自由に検討することができます。たとえば、Red Hat Enterprise Virtualization (RHEV) 内の高可用性の仮想マシンとしてアンダークラウドノードを実行するように構成したり、必要なサービスを HA で提供する Pacemaker をインストールした物理ノードを使用したりする方法を検討することができます。

アンダークラウドノードの高可用性について検討する場合は、お使いの環境に最も有効であると判断したソリューションのドキュメントやグッドプラクティスを参照してください。

2.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

2.4. 取得完了したバックアップの検証

復元プロセスを実行/検証することでバックアッププロセスが正常に完了したことを検証できます。バックアップからの復元の詳しい情報は、次の項を参照してください。

第3章 復元

本項では、Red Hat OpenStack Platform director で使用するアンダークラウドの復元方法を説明します。

3.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. mariadb サービスを起動して、max_allowed_packet の設定を一時的に更新します。

# 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

3.2. 復元したアンダークラウドのオーバークラウドへの再接続

上記の手順を完了すると、アンダークラウドにより自動的にオーバークラウドへの接続が復元されるはずです。これらのノードは、数秒ごとに発行されるシンプルな HTTP 要求を使用して、保留中のタスクに対して Orchestration (heat) のポーリングを継続します。

3.3. 完了した復元の検証

以下のコマンドを使用して、新しく復元した環境のヘルスチェックを実行します。

3.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    |
+----------------------------------+------------+---------+----------------------+

3.3.2. OpenStack サービスの確認

openstack-status コマンドを実行して、OpenStack サービスのステータスを表示します。

# openstack-status

法律上の通知

Copyright © 2017 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Portions adopted from the OpenStack Configuration Reference. See "Configuration Reference" in Red Hat OpenStack Platform Licenses for Documentation.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.