5.8. 障害からの復旧
ストレージ管理者は、ミラーリングが設定された別のストレージクラスターからデータを回復する方法を理解することで、致命的なハードウェアの障害に備えることができます。
この例では、プライマリーストレージクラスターは site-a
と呼ばれ、セカンダリーストレージクラスターは site-b
と呼ばれます。また、ストレージクラスターにはどちらも image1
と image2
の 2 つのイメージが含まれる data
プールがあります。
5.8.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 一方向または双方向ミラーリングが設定されている。
5.8.2. 障害回復 リンクのコピーリンクがクリップボードにコピーされました!
2 つ以上の Red Hat Ceph Storage クラスターの間でブロックデータを非同期にレプリケーションすることで、データセンターで大規模な障害が発生した場合にデータの損失を防ぎ、ダウンタイムが削減されます。このような障害の影響は 大規模な爆発半径 とも呼ばれ、広範囲にわたります。また、送配電網への影響や、天然災害などが原因となります。
顧客データはこれらのシナリオに備え、保護する必要があります。ボリュームは、Micre Recovery Pointive (RPO) および Recovery Time Objective (RTO) ターゲット内で、一貫性と効率性を使用してレプリケーションする必要があります。このソリューションは、Dnaly Area Network- Disaster Recovery (WAN-DR) と呼ばれます。
このようなシナリオでは、プライマリーシステムとデータセンターを復元することが困難です。最も簡単に復元する方法として、別の Red Hat Ceph Storage クラスター (障害回復サイト) にアプリケーションをフェイルオーバーして、利用可能な最新のデータのコピーでクラスターを稼働させることなどが挙げられます。このような障害シナリオから回復するのに使用されるソリューションは、アプリケーションによりガイドされます。
- Recovery Point Objective (RPO): 最悪の場合にアプリケーションが許容するデータ損失量。
- Recovery Time Objective (RTO): 利用可能なデータの最新コピーで、アプリケーションをオンラインに戻すのにかかる時間。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
- 暗号化された状態のデータ転送の詳細は、Red Hat Ceph Storage データのセキュリティーおよび強化ガイドの 転送中での暗号化 セクションを参照してください。
5.8.3. 一方向ミラーリングを使用した障害からの復旧 リンクのコピーリンクがクリップボードにコピーされました!
一方向のミラーリングで障害から回復するには、以下の手順を使用します。以下で、プライマリークラスターを終了してからセカンダリークラスターにフェイルオーバーする方法、およびフェイルバックする方法が紹介します。シャットダウンは規定の順序で行うことも、順序関係なく行うこともできます。
一方向ミラーリングは、複数のセカンダリーサイトをサポートします。追加のセカンダリークラスターを使用している場合は、セカンダリークラスターの中から 1 つ選択してフェイルオーバーします。フェイルバック中に同じクラスターから同期します。
5.8.4. 双方向ミラーリングを使用した障害からの復旧 リンクのコピーリンクがクリップボードにコピーされました!
双方向ミラーリングで障害から回復するには、以下の手順を使用します。以下で、プライマリークラスターを終了してからセカンダリークラスターのミラーリングデータにフェイルオーバーする方法、およびフェイルバックする方法が紹介します。シャットダウンは、正常でもそうでなくても構いません。
関連情報
- イメージのデモート、プロモート、および同期の詳細は、Red Hat Ceph Storage ブロックデバイスガイドの イメージでのミラーリングの設定 セクションを参照してください。
5.8.5. 正常なシャットダウン後のフェイルオーバー リンクのコピーリンクがクリップボードにコピーされました!
正常にシャットダウンした後にセカンダリーストレージクラスターにファイルオーバーします。
前提条件
- 少なくとも実行中の Red Hat Ceph Storage クラスターが 2 台ある。
- ノードへのルートレベルのアクセス。
- 一方向ミラーリング を使用して設定されるプールのミラーリングまたはイメージミラーリング。
手順
- プライマリーイメージを使用するクライアントをすべて停止します。この手順は、どのクライアントがイメージを使用するかにより異なります。たとえば、イメージを使用する OpenStack インスタンスからボリュームの割り当てを解除します。
site-a
クラスターのモニターノードで以下のコマンドを実行して、site-a
クラスターにあるプライマリーイメージをデモートします。構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image1 rbd mirror image demote data/image2
[root@rbd-client ~]# rbd mirror image demote data/image1 [root@rbd-client ~]# rbd mirror image demote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
クラスターにあるプライマリー以外のイメージをプロモートするには、site-b
クラスターのモニターノードで以下のコマンドを実行します。構文
rbd mirror image promote POOL_NAME/IMAGE_NAME
rbd mirror image promote POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote data/image1 rbd mirror image promote data/image2
[root@rbd-client ~]# rbd mirror image promote data/image1 [root@rbd-client ~]# rbd mirror image promote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくすると、
site-b
クラスターのモニターノードからイメージのステータスを確認します。イメージのステータスは、up+stopped
の状態を表示し、プライマリーとしてリストされているはずです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - イメージへのアクセスを再開します。この手順は、どのクライアントがイメージを使用するかにより異なります。
関連情報
- Red Hat OpenStack Platform ストレージガイドの ブロックストレージおよびボリューム の章を参照してください。
5.8.6. 正常にシャットダウンされなかった場合のフェイルオーバー リンクのコピーリンクがクリップボードにコピーされました!
正常でないシャットダウン後にセカンダリーストレージクラスターにフェイルオーバーします。
前提条件
- 少なくとも実行中の Red Hat Ceph Storage クラスターが 2 台ある。
- ノードへのルートレベルのアクセス。
- 一方向ミラーリング を使用して設定されるプールのミラーリングまたはイメージミラーリング。
手順
- プライマリーストレージクラスターが停止していることを確認します。
- プライマリーイメージを使用するクライアントをすべて停止します。この手順は、どのクライアントがイメージを使用するかにより異なります。たとえば、イメージを使用する OpenStack インスタンスからボリュームの割り当てを解除します。
site-b
ストレージクラスターの Ceph Monitor ノードからプライマリー以外のイメージをプロモートします。site-a
ストレージクラスターにデモートが伝播されないので、--force
オプションを使用します。構文
rbd mirror image promote --force POOL_NAME/IMAGE_NAME
rbd mirror image promote --force POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote --force data/image1 rbd mirror image promote --force data/image2
[root@rbd-client ~]# rbd mirror image promote --force data/image1 [root@rbd-client ~]# rbd mirror image promote --force data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
ストレージクラスターの Ceph Monitor ノードからイメージのステータスを確認します。状態として、up+stopping_replay
が、説明にforce promoted
と表示されるはずです。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- Red Hat OpenStack Platform ストレージガイドの ブロックストレージおよびボリューム の章を参照してください。
5.8.7. フェイルバックの準備 リンクのコピーリンクがクリップボードにコピーされました!
2 つのストレージクラスターが元々、一方向ミラーリングだけ設定されていた場合に、フェイルバックするには、プライマリーストレージクラスターのミラーリングを設定して、反対方向にイメージをレプリケートできるようにします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
site-a
ストレージクラスターのクライアントノードで、rbd-mirror
パッケージをインストールします。yum install rbd-mirror
[root@rbd-client ~]# yum install rbd-mirror
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パッケージは Red Hat Ceph Storage Tools リポジトリーによって提供されます。
site-a
ストレージクラスターのクライアントノードで、CLUSTER
オプションを/etc/sysconfig/ceph
ファイルに追加して、ストレージクラスター名を指定します。CLUSTER=site-b
CLUSTER=site-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
Ceph 設定ファイルおよびキーリングファイルをsite-b
Ceph Monitor ノードからsite-a
の Ceph Monitor およびクライアントノードにコピーします。構文
scp /etc/ceph/ceph.conf USER@SITE_A_MON_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring root@SITE_A_MON_NODE_NAME:/etc/ceph/ scp /etc/ceph/ceph.conf user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/
scp /etc/ceph/ceph.conf USER@SITE_A_MON_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring root@SITE_A_MON_NODE_NAME:/etc/ceph/ scp /etc/ceph/ceph.conf user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Ceph 設定ファイルを
site-b
Ceph Monitor ノードからsite-a
の Ceph Monitor およびクライアントノードに転送するscp
コマンドをし用すると、ファイルの名前がsite-a.conf
に変更されます。キーリングファイル名は同じままです。site-a
キーリングファイルをsite-a
Ceph Monitor ノードからsite-a
クライアントノード にコピーします。構文
scp /etc/ceph/site-a.client.site-a.keyring <user>@SITE_A_CLIENT_HOST_NAME:/etc/ceph/
scp /etc/ceph/site-a.client.site-a.keyring <user>@SITE_A_CLIENT_HOST_NAME:/etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
クライアントノードでrbd-mirror
デーモンを有効にして起動します。構文
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@CLIENT_ID systemctl start ceph-rbd-mirror@CLIENT_ID
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@CLIENT_ID systemctl start ceph-rbd-mirror@CLIENT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CLIENT_ID
は、rbd-mirror
デーモンが使用する Ceph Storage クラスターユーザーに変更します。ユーザーには、ストレージクラスターへの適切なcephx
アクセスが必要です。例
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@site-a systemctl start ceph-rbd-mirror@site-a
[root@rbd-client ~]# systemctl enable ceph-rbd-mirror.target [root@rbd-client ~]# systemctl enable ceph-rbd-mirror@site-a [root@rbd-client ~]# systemctl start ceph-rbd-mirror@site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
クラスターのクライアントノードから、site-b
クラスターをピアとして追加します。例
rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
[root@rbd-client ~]# rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 複数のセカンダリーストレージクラスターを使用している場合には、フェイルオーバー先とフェイルバック元に選択されたセカンダリーストレージクラスターを追加する必要があります。
site-a
ストレージクラスターのモニターノードから、site-b
ストレージクラスターがピアとして正常に追加されたことを確認します。構文
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage 管理ガイドの User Management の章を参照してください。
5.8.7.1. プライマリーストレージクラスターへのフェイルバック リンクのコピーリンクがクリップボードにコピーされました!
以前のプライマリーストレージクラスターが復元されたら、そのクラスターがプライマリーストレージクラスターにフェイルバックされます。
前提条件
- 少なくとも実行中の Red Hat Ceph Storage クラスターが 2 台ある。
- ノードへのルートレベルのアクセス。
- 一方向ミラーリング を使用して設定されるプールのミラーリングまたはイメージミラーリング。
手順
もう一度、
site-b
クラスターのモニターノードからイメージのステータスを確認します。状態としてup-stopped
、説明としてlocal image is primary
と表示されるはずです。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
ストレージクラスターの Ceph Monitor ノードから、イメージがプライマリーかどうかを確認します。構文
rbd info POOL_NAME/IMAGE_NAME
rbd info POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd info data/image1 rbd info data/image2
[root@rbd-client ~]# rbd info data/image1 [root@rbd-client ~]# rbd info data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力で、
mirroring primary: true
またはmirroring primary: false
を検索し、状態を判断します。site-a
ストレージクラスターの Ceph Monitor ノードから以下のようなコマンドを実行して、プライマリーとして表示されているイメージをデモートします。構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image1
[root@rbd-client ~]# rbd mirror image demote data/image1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 正常にシャットダウンされなかった場合にのみ、イメージをもう一度同期します。
site-a
ストレージクラスターのモニターノードで以下のコマンドを実行し、イメージをsite-b
からsite-a
に再同期します。構文
rbd mirror image resync POOL_NAME/IMAGE_NAME
rbd mirror image resync POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image resync data/image1 rbd mirror image resync data/image2
[root@rbd-client ~]# rbd mirror image resync data/image1 Flagged image for resync from primary [root@rbd-client ~]# rbd mirror image resync data/image2 Flagged image for resync from primary
Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくしたら、状態が
up+replaying
かをチェックして、イメージの最同期が完了していることを確認します。site-a
ストレージクラスターのモニターノードで以下のコマンドを実行して、イメージの状態を確認します。構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image status data/image1 rbd mirror image status data/image2
[root@rbd-client ~]# rbd mirror image status data/image1 [root@rbd-client ~]# rbd mirror image status data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
ストレージクラスターの Ceph Monitor ノードで以下のコマンドを実行して、site-b
ストレージクラスターのイメージをデモートします。構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image1 rbd mirror image demote data/image2
[root@rbd-client ~]# rbd mirror image demote data/image1 [root@rbd-client ~]# rbd mirror image demote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数のセカンダリーストレージクラスターがある場合に、上記の実行は、プロモートされたセカンダリーストレージクラスターからだけで結構です。
site-a
ストレージクラスターの Ceph Monitor ノードで以下のコマンドを実行して、site-a
ストレージクラスターに配置されていた、以前のプライマリーイメージをプロモートします。構文
rbd mirror image promote POOL_NAME/IMAGE_NAME
rbd mirror image promote POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote data/image1 rbd mirror image promote data/image2
[root@rbd-client ~]# rbd mirror image promote data/image1 [root@rbd-client ~]# rbd mirror image promote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
ストレージクラスターの Ceph Monitor ノードからイメージのステータスを確認します。状態としてup+stopped
、説明としてlocal image is primary
と表示されるはずです。構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8.8. 双方向ミラーリングの削除 リンクのコピーリンクがクリップボードにコピーされました!
フェイルバックが完了したら、双方向ミラーリングを削除し、Ceph ブロックデバイスのミラーリングサービスを無効にできます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
site-a
ストレージクラスターから、ピアとしてのsite-b
ストレージクラスターを削除します。例
rbd mirror pool peer remove data client.remote@remote --cluster local rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-a
[root@rbd-client ~]# rbd mirror pool peer remove data client.remote@remote --cluster local [root@rbd-client ~]# rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
クライアントでrbd-mirror
デーモンを停止して無効にします。構文
systemctl stop ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror.target
systemctl stop ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror.target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl stop ceph-rbd-mirror@site-a systemctl disable ceph-rbd-mirror@site-a systemctl disable ceph-rbd-mirror.target
[root@rbd-client ~]# systemctl stop ceph-rbd-mirror@site-a [root@rbd-client ~]# systemctl disable ceph-rbd-mirror@site-a [root@rbd-client ~]# systemctl disable ceph-rbd-mirror.target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow