Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

2.2. Ceph クライアント認証の設定

Ceph monitor ノードから、Cinder、Cinder Backup、および Glance の新しいユーザーを作成します。

# ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'

# ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups'

# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'

client.cinderclient.cinder-backup、および client.glance のキーリングを適切なノードに追加し、それらの所有権を変更します。

# ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
# ssh {your-cinder-volume-server} chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring

# ceph auth get-or-create client.cinder-backup | ssh {your-cinder-backup-server} tee /etc/ceph/ceph.client.cinder-backup.keyring
# ssh {your-cinder-backup-server} chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring

# ceph auth get-or-create client.glance | ssh {your-glance-api-server} sudo tee /etc/ceph/ceph.client.glance.keyring
# ssh {your-glance-api-server} chown glance:glance /etc/ceph/ceph.client.glance.keyring

nova-compute を実行しているノードには、nova-compute プロセスのキーリングファイルが必要です。

# ceph auth get-or-create client.cinder | ssh {your-nova-compute-server} tee /etc/ceph/ceph.client.cinder.keyring

nova-compute を実行しているノードは、libvirtclient.cinder ユーザーの秘密鍵を保存する必要もあります。libvirt プロセスでは、Cinder からブロックデバイスを接続中にクラスターにアクセスする必要があります。nova-compute を実行しているノードに秘密鍵の一時コピーを作成します。

# ceph auth get-key client.cinder | ssh {your-compute-node} tee client.cinder.key

exclusive-lock 機能を使用する Ceph Block Device イメージがストレージクラスターに含まれている場合には、すべての Ceph Block Device ユーザーにクライアントをブラックリストに登録するパーミッションがあるようにしてください。

# ceph auth caps client.{ID} mon 'allow r, allow command "osd blacklist"' osd '{existing-OSD-user-capabilities}'

コンピュートノードに戻ります。

# ssh {your-compute-node}

シークレットの UUID を生成し、後で nova-compute を設定するためにシークレットの UUID を保存します。

# uuidgen > uuid-secret.txt
注記

すべてのコンピュートノードで UUID は必要ありません。ただし、プラットフォームの整合性からは、同じ UUID を維持する方が適切です。

次に、コンピュートノードで秘密鍵を libvirt に追加し、キーの一時コピーを削除します。

cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
  <uuid>`cat uuid-secret.txt`</uuid>
  <usage type='ceph'>
    <name>client.cinder secret</name>
  </usage>
</secret>
EOF
# virsh secret-define --file secret.xml
# virsh secret-set-value --secret $(cat uuid-secret.txt) --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml