Kolla-Ansible をデプロイする際、Ceph クラスターを同時にデプロイすることも可能ですが、運用担当者が Ceph と OpenStack を分けて管理したい一方で、Ceph をストレージバックエンドとして利用したいというケースがあります。そんな時でも心配はいりません。Kolla-Ansible では、以前紹介した 設定オーバーライド (config override) の機能を使用して External Ceph Cluster を利用します。本記事では、Kolla-Ansible とその設定オーバーライド(config override)機能を使用して OpenStack をデプロイし、外部の Ceph を使用する方法を紹介します。
目次
事前準備
外部の Ceph クラスターを使用するためには、まず Ceph クラスターをデプロイする必要があります。Ceph のデプロイ方法には多くの選択肢がありますが、以前紹介した Ceph-Ansible を参考にしてデプロイを行うこともできます。
また、Kolla-Ansible を使用するための基礎知識も必要です。こちらの記事を参考にしてください:Kolla-Ansible とコンテナによる OpenStack のデプロイ
Cephの設定
RBDプール
OpenStack の Nova、Cinder(Cinder Backup)、Glance はすべて RBD をストレージバックエンドとして使用できるため、これら 3 つのサービス用に RBD プールを作成する必要があります。
sudo ceph osd pool create images 128
sudo ceph osd pool create vms 128
sudo ceph osd pool create volumes 128
Cephキーリングの設定
Ceph は Keyring を使用して認証を行うため、同様に 3 つのサービスに対応する Keyring を作成し、使用するプールへの権限を付与する必要があります。
sudo ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rdb_children, allow rwx pool=images' -o /etc/ceph/ceph.client.glance.keyring
sudo ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rx pool=images' -o /etc/ceph/ceph.client.cinder.keyring
sudo ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups -o /etc/ceph/ceph.client.cinder-backup.keyring
sudo ceph auth get-or-create client.nova mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rx pool=images' -o /etc/ceph/ceph.client.nova.keyring
Kolla-Ansibleの設定
globals.yml
globals.yml在 内では、Kolla-Ansible による Ceph デプロイのオプションを no に設定し、Nova、Cinder、Glance が Ceph をストレージバックエンドとして使用するオプションを yes に設定する必要があります。globals.yml
enable_ceph: "no"
glance_backend_ceph: "yes"
cinder_backend_ceph: "yes"
nova_backend_ceph: "yes"
Glanceの設定
Glance で外部 Ceph を使用するための設定は、基本的に次の 3 つの手順で構成されます:
- 在
rbd バックエンドの使用設定glance-api.conf - 在
Ceph 設定の追加/etc/ceph/ceph.conf - 追加
/etc/ceph/ceph.client.images.keyring
ステップ 1 は設定オーバーライド(config override)を通じて実現します。まず、 を作成し、以下の内容を追加します。/etc/kolla/config/glance/glance-api.conf
[glance_store]
stores = rbd
default_store = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
続いてステップ 2 でも、同じく Cephの設定の追加/etc/kolla/config/glance/ceph.conf
[global]
fsid = 88a8ea91-df1d-4f67-b78b-52bb2f04df4d
mon_initial_members = ceph01, ceph02, ceph03
mon_host = 192.168.113.10,192.168.113.11,192.168.113.10
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
最後に、作成済みのkeyringを /etc/kolla/config/glance/ceph.client.glance.keyring
sudo cp /etc/ceph/ceph.client.glance.keyring /etc/kolla/config/glance/ceph.client.glance.keyring
Kolla-Ansibleはディレクトリ内のすべての ファイルをコンテナ内の /etc/ceph 配下に配置します。ceph*
Cinderの設定
Cinderの設定手順はGlanceと同様です。まず を作成し、以下の内容を追加します。/etc/kolla/config/cinder/cinder-volume.conf
[DEFAULT]
enabled_backends=rbd-1
[rbd-1]
rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=cinder
backend_host=rbd:volumes
rbd_pool=volumes
volume_backend_name=rbd-1
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_secret_uuid = {{ cinder_rbd_secret_uuid }}
次にCinder-Backupを設定し、作成します。 そして、以下の内容を追加します。/etc/kolla/config/cinder/cinder-backup.conf
[DEFAULT]
backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user=cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool=backups
backup_driver = cinder.backup.drivers.ceph
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
restore_discard_excess_bytes = true
次に、同様に 下ceph.conf<code> 放到 </code> /etc/kolla/config/cinder/
最後に、すべてのkeyringをコピーする必要があります。
sudo cp /etc/ceph/ceph.client.cinder.keyring /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder.keyring
sudo cp /etc/ceph/ceph.client.cinder.keyring /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder.keyring
sudo cp /etc/ceph/ceph.client.cinder-backup.keyring /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder-backup.keyring
Novaの設定
Novaの設定も非常に似ており、基本的には同じ手順になります。
以下の内容に基づいて作成します。 /etc/kolla/config/nova/nova-compute.conf
[libvirt]
images_rbd_pool=vms
images_type=rbd
images_rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=nova
將 下ceph.conf<code> 放到 </code> /etc/kolla/config/nova/
最後にkeyringをコピーします。
sudo cp /etc/ceph/ceph.client.nova.keyring /etc/kolla/config/nova/ceph.client.nova.keyring
実際のデプロイ
実際のデプロイコマンドの詳細については、以下を参照してください。 Kolla-Ansible とコンテナによる OpenStack のデプロイ
cd kolla-ansible
tools/generate_passwords.py
tools/kolla-ansible -i ansible/inventory/multinode bootstrap-servers
tools/kolla-ansible -i ansible/inventory/multinode prechecks
tools/kolla-ansible -i ansible/inventory/multinode deploy
Playbookが正常に完了したら、各サービスを使用して正常に動作することを確認してください。
リファレンス
著作権表示:このブログのすべての記事は、以下のライセンスのもとで提供されています。 CC BY-NC-SA 4.0 (別途記載がある場合を除く)

