5.8.7. フェイルバックの準備

2 つのストレージクラスターが最初に一方向ミラーリングにのみ設定されていれば、逆方向でイメージを複製するためにミラーリング用にプライマリーストレージクラスターを設定します。

前提条件

  • Red Hat Ceph Storage クラスターが実行中である。
  • ノードへのルートレベルのアクセス。

Procedure

  1. site-a ストレージクラスターのクライアントノードで 、rbd-mirror パッケージをインストールします。

    [root@rbd-client ~]# yum install rbd-mirror
    注記

    パッケージは Red Hat Ceph Storage Tools リポジトリーによって提供されます。

  2. site-a ストレージクラスターのクライアントノードで、CLUSTER オプションを /etc/sysconfig/ceph ファイルに追加してストレージクラスター名を指定します。

    CLUSTER=site-b
  3. 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/

    注記

    Ceph 設定ファイルを site-b Ceph Monitor ノードから site-a Ceph Monitor およびクライアントノードへ転送する scp コマンドは、ファイルの名前を site-a.conf に変更します。キーリングファイル名は同じままです。

  4. site-a Ceph Monitor ノードから site-a クライアントノードに site-a キーリングファイルをコピーします。

    構文

    scp /etc/ceph/site-a.client.site-a.keyring <user>@SITE_A_CLIENT_HOST_NAME:/etc/ceph/

  5. site-a クライアントノードで rbd-mirror デーモンを有効にして起動します。

    構文

    systemctl enable ceph-rbd-mirror.target
    systemctl enable ceph-rbd-mirror@CLIENT_ID
    systemctl start ceph-rbd-mirror@CLIENT_ID

    CLIENT_IDrbd-mirror デーモンが使用する Ceph Storage クラスターユーザーに変更します。ユーザーには、ストレージクラスターへの適切な cephx アクセスが必要です。

    [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

  6. site-a クラスターのクライアントノードから、site-b クラスターをピアとして追加します。

    [root@rbd-client ~]# rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a

    複数のセカンダリーストレージクラスターを使用している場合、フェールオーバーしてフェールバックするには、選択したセカンダリーストレージクラスターのみを追加する必要があります。

  7. site-a ストレージクラスターのモニターノードから、site-b ストレージクラスターがピアとして正常に追加されたことを確認します。

    [root@rbd-client ~]# rbd mirror pool info -p data
    Mode: image
    Peers:
      UUID                                 NAME   CLIENT
      d2ae0594-a43b-4c67-a167-a36c646e8643 site-b client.site-b

関連情報

5.8.7.1. プライマリーストレージクラスターにフェイルバック

以前のプライマリーストレージクラスターを復元すると、プライマリーストレージクラスターに戻ります。

前提条件

Procedure

  1. site-b クラスターのモニターノードからイメージのステータスを再度確認します。アップツープの状態が表示され、説明には ローカルイメージがプライマリーであることを示しているはずです。

    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 17:37:48
    [root@rbd-client ~]# rbd mirror image status data/image2
    image2:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 17:38:18

  2. サイトストレージクラスターの Ceph Monitor ノードから、イメージがまだプライマリーかどうかを確認します。

    構文

    rbd mirror pool info POOL_NAME/IMAGE_NAME

    [root@rbd-client ~]# rbd info data/image1
    [root@rbd-client ~]# rbd info data/image2

    コマンドの出力で、プライマリーのミラーリング(true または mirroring primary: false )を検索し、状態を判断します。

  3. site-a ストレージクラスターの Ceph Monitor ノードから以下のようなコマンドを実行して、プライマリーとして一覧表示されているイメージを降格します。

    構文

    rbd mirror image demote POOL_NAME/IMAGE_NAME

    [root@rbd-client ~]# rbd mirror image demote data/image1

  4. 順序通りでないシャットダウンがある場合に、イメージのみを再同期します。site-a ストレージクラスターのモニターノードで以下のコマンドを実行して、イメージを site- b から site-a に再同期します。

    構文

    rbd mirror image resync POOL_NAME/IMAGE_NAME

    [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

  5. しばらくすると、イメージの再同期が完了したことを確認し、それらのタスクが up+replaying 状態であることを確認します。site-a ストレージクラスターのモニターノードで以下のコマンドを実行して、それぞれの状態を確認します。

    構文

    rbd mirror image status POOL_NAME/IMAGE_NAME

    [root@rbd-client ~]# rbd mirror image status data/image1
    [root@rbd-client ~]# rbd mirror image status data/image2

  6. site-b ストレージクラスターの Ceph Monitor ノードで以下のコマンドを実行して、site-b ストレージクラスターでイメージを降格します。

    構文

    rbd mirror image demote POOL_NAME/IMAGE_NAME

    [root@rbd-client ~]# rbd mirror image demote data/image1
    [root@rbd-client ~]# rbd mirror image demote data/image2

    注記

    複数のセカンダリーストレージクラスターがある場合は、プロモート先のセカンダリーストレージクラスターからのみこれを実行する必要があります。

  7. site-a ストレージクラスターの Ceph Monitor ノードで以下のコマンドを実行して、以前のプライマリーイメージをサイトストレージクラスターに配置してプロモートします

    構文

    rbd mirror image promote POOL_NAME/IMAGE_NAME

    [root@rbd-client ~]# rbd mirror image promote data/image1
    [root@rbd-client ~]# rbd mirror image promote data/image2

  8. site-a ストレージクラスターの Ceph Monitor ノードからイメージのステータスを確認します。アップ+stopped のステータスが表示され、説明にはローカルイメージがプライマリーであることを示しているはずです。

    構文

    rbd mirror image status POOL_NAME/IMAGE_NAME

    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 11:14:51
    [root@rbd-client ~]# rbd mirror image status data/image2
    image2:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 11:14:51