10.3.4.2. セキュアな Geo レプリケーションセカンダリーの環境の設定

geo レプリケーションは、権限のないアカウント (ゼロ以外の UID を持つユーザーアカウント) を使用した SSH を介した Red Hat Gluster Storage セカンダリーへのアクセスをサポートします。この方法はより安全で、セカンダリーを介してプライマリーの機能を最小限に抑えます。この機能は、権限のないセカンダリーアカウントのマウントを管理する glusterd の内部サービス mountbroker に依存します。適切な mountbroker's アクセス制御ディレクティブで glusterd を設定するには、追加の手順を実行する必要があります。このプロセスの例を以下に示します。
すべての Slave ノードで以下の手順を実行し、権限のないアカウントの補助 glusterFS マウントを設定します
  1. すべてのセカンダリーノードで、新しいグループを作成します。例: geogroup
    注記
    mountbroker 設定には、複数のグループを使用しないでください。複数のユーザーアカウントを作成できますが、グループは、root 以外のユーザーに対してすべて同じになる必要があります。
  2. すべてのセカンダリーノードで、権限のないアカウントを作成します。例: geoaccountgeoaccount geogroup グループのメンバーとして追加します。
  3. Slave ノードのいずれかで以下のコマンドを実行し、mountbroker ルートディレクトリーおよびグループを設定します。
    # gluster-mountbroker setup <MOUNT ROOT> <GROUP>
    以下に例を示します。
    # gluster-mountbroker setup /var/mountbroker-root geogroup
  4. Slave ノードのいずれかで以下のコマンドを実行し、ボリュームおよびユーザーを mountbroker サービスに追加します。
    # gluster-mountbroker add <VOLUME> <USER>
    以下に例を示します。
    # gluster-mountbroker add slavevol geoaccount
  5. 以下のコマンドを実行して、設定のステータスを確認します。
    # gluster-mountbroker status
    
         NODE    NODE STATUS                  MOUNT ROOT         GROUP              USERS
    --------------------------------------------------------------------------------------- localhost             UP   /var/mountbroker-root(OK)  geogroup(OK)  geoaccount(slavevol)
        node2             UP   /var/mountbroker-root(OK)  geogroup(OK)  geoaccount(slavevol)
    
    出力には、セカンダリークラスター内のすべてのピアノードの mountbroker のステータスが表示されます。
  6. すべての Slave ノードで Glusterd サービスを再起動します。
    # service glusterd restart
    すべての Slave ノードで権限のないアカウントの補助 glusterFS マウントを設定したら、以下の手順に従って root 以外の geo レプリケーションセッションを設定します。
  7. マスターノードのいずれかからスレーブノードの 1 つで user 鍵ベースの認証を設定します。
    たとえば、ユーザー geoaccount にキーベースの SSH 認証を設定するには、次のコマンドを実行します。
    # ssh-keygen
    # ssh-copy-id -i identity_file geoaccount@slave_node_IPaddress/Hostname
  8. プライマリーノードで以下のコマンドを実行し、共通の pem pub ファイルを作成します。ここでは、キーベースの SSH 認証接続がセカンダリーノードの user に設定されます。
    # gluster system:: execute gsec_create
  9. マスターノードで以下のコマンドを実行して、マスターとスレーブ間のジオレプリケーション関係を user へ実行します。
    以下に例を示します。
    # gluster volume geo-replication MASTERVOL geoaccount@SLAVENODE::slavevol create push-pem
    複数のセカンダリーボリュームやアカウントが複数ある場合には、その特定のユーザーやボリュームを使用して地理的なレプリケーションセッションを作成します。
    以下に例を示します。
    # gluster volume geo-replication MASTERVOL geoaccount2@SLAVENODE::slavevol2 create push-pem
  10. プライマリーボリュームおよびセカンダリーボリュームに対して共有ストレージを有効にします。
    # gluster volume set all cluster.enable-shared-storage enable
    共有ストレージについての詳細は、「共有ストレージボリュームの設定」 を参照してください。
  11. 関係の作成に使用されるスレーブノードで、ユーザー名、マスターボリューム名、スレーブボリューム名を引数として root として /usr/libexec/glusterfs/set_geo_rep_pem_keys.sh を実行します。
    以下に例を示します。
    # /usr/libexec/glusterfs/set_geo_rep_pem_keys.sh geoaccount MASTERVOL SLAVEVOL_NAME
  12. geo レプリケーションのメタボリュームを設定します。
    # gluster volume geo-replication MASTER_VOL SLAVE_HOST::SLAVE_VOL config use_meta_volume true
    以下に例を示します。
    # gluster volume geo-replication Volume1 storage.backup.com::slave-vol config use_meta_volume true
    meta-volume の設定に関する詳細は、「メタボリュームの設定」 を参照してください。
  13. プライマリーノードで以下のコマンドを実行して、セカンダリーユーザーとして geo レプリケーションを起動します。
    以下に例を示します。
    # gluster volume geo-replication MASTERVOL geoaccount@SLAVENODE::slavevol start
  14. プライマリーノードで以下のコマンドを実行して、geo レプリケーションセッションのステータスを確認します。
    # gluster volume geo-replication MASTERVOL geoaccount@SLAVENODE::slavevol status

セッションの削除後の mountbroker geo レプリケーションオプションの削除

mountbroker geo レプリケーションセッションが削除された後、mountbrokerユーザーごとにボリュームを削除する必要があります。

重要
マウントブローカーからボリュームを削除する前に、まずジオレプリケーションセッションを停止して削除する必要があります。詳細は、「Geo レプリケーションセッションの停止」 および 「Geo レプリケーションセッションの削除」 を参照してください。
mountbrokerユーザーごとのボリュームを削除するには:
# gluster-mountbroker remove [--volume volume] [--user user]
以下に例を示します。
# gluster-mountbroker remove --volume slavevol --user geoaccount
# gluster-mountbroker remove --user geoaccount
# gluster-mountbroker remove --volume slavevol
削除するボリュームが mountbroker ユーザーの最後のボリュームである場合、ユーザーも削除されます。
重要
セキュアな geo レプリケーション設定がある場合は、コマンドで、権限のないユーザーアカウントをセカンダリーボリュームにプレフィックスを付ける必要があります。たとえば、geo レプリケーションのステータスコマンドを実行するには、以下のコマンドを実行します。
# gluster volume geo-replication MASTERVOL geoaccount@SLAVENODE::slavevol status
このコマンドでは、geoaccount は、権限のないユーザーアカウントの名前です。