4.3. Cephx の有効化

cephx が有効な場合には、Ceph はデフォルトの検索パス /etc/ceph/$cluster.$name.keyring を含む) でキーリングを探します。Ceph 設定ファイルの [global] セクションに keyring オプションを追加することで、この場所を上書きすることができますが、これは推奨されません。

認証が無効になっているクラスターで cephx を有効にするには、以下の手順を実行します。ご自身またはデプロイメントユーティリティーがすでにキーを生成している場合は、キーの生成に関する手順を省略できます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Monitor ノードへの root レベルのアクセス。

手順

  1. client.admin キーを作成し、クライアントホストのキーのコピーを保存します。

    [root@mon ~]# ceph auth get-or-create client.admin mon 'allow *' osd 'allow *' -o /etc/ceph/ceph.client.admin.keyring
    警告

    これにより、既存の /etc/ceph/client.admin.keyring ファイルの内容が消去されます。すでにデプロイメントツールがこの作業を行っている場合は、この手順を実行しないでください。

  2. モニタークラスター用のキーリングを作成し、モニターシークレットキーを生成します。

    [root@mon ~]# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
  3. すべてのモニターの mon data ディレクトリーの ceph.mon.keyring ファイルにモニターキーリングをコピーします。たとえば、これをクラスター cephmon.a にコピーするには、以下のコマンドを使用します。

    [root@mon ~]# cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
  4. すべての OSD に秘密鍵を生成します。ここで、ID は OSD 番号です。

    ceph auth get-or-create osd.ID mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-ID/keyring
  5. デフォルトでは、cephx 認証プロトコルは有効になっています。

    注記

    認証オプションを none に設定して cephx 認証プロトコルが無効にされていた場合には、Ceph 設定ファイル (/etc/ceph/ceph.conf) の [global] セクションの下にある以下の行を削除して、cephx 認証プロトコルを再度有効にします。

    auth_cluster_required = none
    auth_service_required = none
    auth_client_required = none
  6. Ceph Storage クラスターを起動または再起動します。

    重要

    cephx を有効にするには、クラスターを完全に再起動する必要があるか、クライアントの I/O が無効になったときにシャットダウンしてから起動する必要があるため、ダウンタイムが必要です。

    これらのフラグは、ストレージクラスターを再起動またはシャットダウンする前に設定する必要があります。

    [root@mon ~]# ceph osd set noout
    [root@mon ~]# ceph osd set norecover
    [root@mon ~]# ceph osd set norebalance
    [root@mon ~]# ceph osd set nobackfill
    [root@mon ~]# ceph osd set nodown
    [root@mon ~]# ceph osd set pause

    cephx が有効になり、すべての PG がアクティブかつクリーンな状態になったら、フラグの設定を解除します。

    [root@mon ~]# ceph osd unset noout
    [root@mon ~]# ceph osd unset norecover
    [root@mon ~]# ceph osd unset norebalance
    [root@mon ~]# ceph osd unset nobackfill
    [root@mon ~]# ceph osd unset nodown
    [root@mon ~]# ceph osd unset pause