OpenStack へのブロックデバイスのガイド
OpenStack のバックエンドとして Ceph を使用するように、Ceph、QEMU、libvirt、OpenStack を設定
概要
第1章 Ceph ブロックデバイスおよび OpenStack
The Red Hat Enterprise Linux OpenStack Platform Director は、Glance、Cinder、Cinder Backup、および Nova のバックエンドとして Ceph を使用するための 2 つの方法を提供します。
- OpenStack は Ceph Storage クラスターを作成する: OpenStack director は Ceph Storage クラスターを作成できます。これには、Ceph OSD のテンプレートを設定する必要があります。OpenStack は Ceph ノードのインストールと設定を処理します。このシナリオでは、OpenStack は OpenStack のコントローラーノードで Ceph モニターをインストールします。
- OpenStack は既存の Ceph ストレージクラスターに接続: Red Hat OpenStack Platform 9 以降を使用して、Ceph モニターに接続して OpenStack のバックエンドとして使用するように Ceph ストレージクラスターを設定することができます。
前述の方法は、インストールと設定の多くを自動的に処理してくれるため、OpenStack のバックエンドとして Ceph を設定するための好ましい方法です。
本書では、Ceph をバックエンドとして使用するように Ceph、QEMU、libvirt、および OpenStack を設定する手順を詳しく説明します。本書は、RHEL OSP Director を使用する予定のないユーザーを対象としています。

OpenStack のバックエンドとして Ceph ブロックデバイスを使用するには、稼働中の Ceph ストレージクラスターと少なくとも 1 つの OpenStack ノードが必要です。
OpenStack の 3 つの部分は、Ceph のブロックデバイスと統合されます。
- イメージ: OpenStack Glance は仮想マシンのイメージを管理します。イメージを変更することはできません。OpenStack はイメージをバイナリーブロブとして扱い、それに応じてイメージをダウンロードします。
- ボリューム: ボリュームはブロックデバイスです。OpenStack では、仮想マシンを起動したり、実行中の仮想マシンにボリュームを接続したりするためにボリュームを使用します。OpenStack は Cinder サービスを使用してボリュームを管理します。Ceph は、OpenStack Cinder および Cinder Backup のブラックリストとしての役割を果たすことができます。
-
ゲストディスク: ゲストディスクは、ゲストオペレーティングシステムのディスクです。デフォルトでは、仮想マシンのブート時に、ディスクはハイパーバイザーのファイルシステムにファイルとして表示されます (デフォルトでは
/var/lib/nova/instances/<uuid> /
ディレクトリー下に)。OpenStack Glance は、Ceph ブロックデバイスにイメージを保存することができ、イメージの Copy-on-Write クローンを使用して Cinder を使用して仮想マシンをブートすることができます。
Ceph は、仮想マシンのディスクをホストする QCOW2 をサポートしません。仮想マシンを起動するには、エフェメラルバックエンドまたはボリュームから起動するには、Glance イメージのフォーマットを RAW にする必要があります。
OpenStack では、イメージ、ボリューム、またはゲストディスクの仮想マシンに Ceph を使用することができます。3 つとも使う必要はありません。
関連情報
- 詳細は、Red Hat OpenStack Platform のドキュメントを参照してください。
第2章 OpenStack 用 Ceph のインストールおよび設定
ストレージ管理者は、Red Hat OpenStack Platform が Ceph ブロックデバイスを使用する前に、Ceph をインストールおよび設定する必要があります。
2.1. 前提条件
- 新しい Red Hat Ceph Storage クラスターまたは既存の Red Hat Ceph Storage クラスター。
2.2. Openstack 用の Ceph プールの作成
OpenStack で使用する Ceph プールの作成デフォルトでは、Ceph ブロックデバイスは rbd
プールを使用しますが、利用可能なプールをすべて使用することができます。
前提条件
- 実行中の Red Hat Ceph Storage クラスター
手順
Red Hat Ceph Storage クラスターが実行中で、
HEALTH_OK
状態にあることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph -s
[root@mon ~]# ceph -s
Ceph プールを作成します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph osd pool create volumes 128 ceph osd pool create backups 128 ceph osd pool create images 128 ceph osd pool create vms 128
[root@mon ~]# ceph osd pool create volumes 128 [root@mon ~]# ceph osd pool create backups 128 [root@mon ~]# ceph osd pool create images 128 [root@mon ~]# ceph osd pool create vms 128
上記の例では、
128
は配置グループの数になります。重要Red Hat は、Ceph Placement Group’s per Pool Calculator を使用して、プールに適した配置グループ数を計算することを推奨します。
関連情報
- プールの作成に関する詳細は、 『ストラテジー戦略』ガイドの「プール」の章を参照してください。
2.3. Openstack への Ceph クライアントのインストール
Ceph Storage クラスターにアクセスするために、Red Hat OpenStack Platform に Ceph クライアントパッケージをインストールします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
- Ceph ソフトウェアリポジトリーへのアクセス
- OpenStack の Nova、Cinder、Cinder Backup、および Glance ノードへのルートレベルのアクセス。
手順
OpenStack Nova、Cinder、Cinder Backup ノードは以下のパッケージをインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum install python-rbd yum install ceph-common
[root@nova ~]# yum install python-rbd [root@nova ~]# yum install ceph-common
OpenStack Glance ノードで
python-rbd
パッケージをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum install python-rbd
[root@glance ~]# yum install python-rbd
2.4. Ceph 設定ファイルの Openstack へのコピー
Ceph 設定ファイルを nova-compute
ノード、cinder-backup
ノード、cinder-volume
ノード、および glance-api
ノードにコピーします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
- Ceph ソフトウェアリポジトリーへのアクセス
- OpenStack Nova、Cinder、および Glance ノードへのルートレベルのアクセス。
手順
Ceph 設定ファイルを Ceph Monitor ノードから OpenStack Nova ノード、Cinder ノード、Cinder Backup ノード、および Glance ノードにコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow scp /etc/ceph/ceph.conf OPENSTACK_NODES:/etc/ceph
[root@mon ~]# scp /etc/ceph/ceph.conf OPENSTACK_NODES:/etc/ceph
2.5. Ceph クライアント認証の設定
Ceph クライアントが Red Hat OpenStack Platform にアクセスするように認証を設定します。
前提条件
- Ceph Monitor ノードへのルートレベルのアクセス。
- 稼働中の Red Hat Ceph Storage クラスター
手順
Ceph Monitor ノードから、Cinder、Cinder Backup、および Glance の新しいユーザーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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'
[root@mon ~]# 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' [root@mon ~]# ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups' [root@mon ~]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
client.cinder
、client.cinder-backup
、およびclient.glance
のキーリングを適切なノードに追加し、それらの所有権を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph auth get-or-create client.cinder | ssh CINDER_VOLUME_NODE sudo tee /etc/ceph/ceph.client.cinder.keyring ssh CINDER_VOLUME_NODE chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring ceph auth get-or-create client.cinder-backup | ssh CINDER_BACKUP_NODE tee /etc/ceph/ceph.client.cinder-backup.keyring ssh CINDER_BACKUP_NODE chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring ceph auth get-or-create client.glance | ssh GLANCE_API_NODE sudo tee /etc/ceph/ceph.client.glance.keyring ssh GLANCE_API_NODE chown glance:glance /etc/ceph/ceph.client.glance.keyring
[root@mon ~]# ceph auth get-or-create client.cinder | ssh CINDER_VOLUME_NODE sudo tee /etc/ceph/ceph.client.cinder.keyring [root@mon ~]# ssh CINDER_VOLUME_NODE chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring [root@mon ~]# ceph auth get-or-create client.cinder-backup | ssh CINDER_BACKUP_NODE tee /etc/ceph/ceph.client.cinder-backup.keyring [root@mon ~]# ssh CINDER_BACKUP_NODE chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring [root@mon ~]# ceph auth get-or-create client.glance | ssh GLANCE_API_NODE sudo tee /etc/ceph/ceph.client.glance.keyring [root@mon ~]# ssh GLANCE_API_NODE chown glance:glance /etc/ceph/ceph.client.glance.keyring
OpenStack Nova ノードには、
nova-compute
プロセスのキーリングファイルが必要です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph auth get-or-create client.cinder | ssh NOVA_NODE tee /etc/ceph/ceph.client.cinder.keyring
[root@mon ~]# ceph auth get-or-create client.cinder | ssh NOVA_NODE tee /etc/ceph/ceph.client.cinder.keyring
OpenStack Nova ノードは、
libvirt
にclient.cinder
ユーザーの秘密鍵を保存する必要もあります。libvirt
プロセスでは、Cinder からブロックデバイスを接続する際にクラスターにアクセスするために秘密鍵が必要です。OpenStack Nova ノードに秘密鍵の一時的なコピーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph auth get-key client.cinder | ssh NOVA_NODE tee client.cinder.key
[root@mon ~]# ceph auth get-key client.cinder | ssh NOVA_NODE tee client.cinder.key
exclusive-lock
機能を使用する Ceph ブロックデバイスイメージがストレージクラスターに含まれている場合には、全 Ceph ブロックデバイスユーザーにクライアントをブラックリストに登録するパーミッションがあるようにしてください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph auth caps client.ID mon 'allow r, allow command "osd blacklist"' osd 'EXISTING_OSD_USER_CAPS'
[root@mon ~]# ceph auth caps client.ID mon 'allow r, allow command "osd blacklist"' osd 'EXISTING_OSD_USER_CAPS'
OpenStack Nova ノードに戻ります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssh NOVA_NODE
[root@mon ~]# ssh NOVA_NODE
シークレットの UUID を生成し、後で
nova-compute
を設定するためにシークレットの UUID を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow uuidgen > uuid-secret.txt
[root@nova ~]# uuidgen > uuid-secret.txt
注記すべての Nova コンピュートノードに UUID は必要ありません。ただし、プラットフォームの一貫性から、同じ UUID を維持する方が適切です。
OpenStack Nova ノードで、
libvirt
にシークレットキーを追加して、キーの一時コピーを削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
libvirt
のシークレットを設定して定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
[root@nova ~]# virsh secret-define --file secret.xml [root@nova ~]# virsh secret-set-value --secret $(cat uuid-secret.txt) --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml
関連情報
- 詳細は、『Red Hat Ceph Storage 管理ガイド』の「Ceph ユーザーの管理」セクションを参照してください。
第3章 Ceph ブロックデバイスを使用するように OpenStack 設定
ストレージ管理者は、Red Hat OpenStack Platform が Ceph ブロックデバイスを使用するように設定する必要があります。Red Hat OpenStack Platform では、Cinder、Cinder Backup、Glance、および Nova に Ceph ブロックデバイスを使用することができます。
3.1. 前提条件
- 新しい Red Hat Ceph Storage クラスターまたは既存の Red Hat Ceph Storage クラスター。
- 実行中の Red Hat OpenStack Platform 環境
3.2. Ceph ブロックデバイスを使用するように Cinder を設定
Red Hat OpenStack Platform は Ceph ブロックデバイスを使用して Cinder ボリュームのバックエンドストレージを提供することができます。
前提条件
- Cinder ノードへのルートレベルのアクセス。
-
Ceph
volume
プール。 - Ceph ブロックデバイスと対話するシークレットのユーザーおよび UUID。
手順
Cinder 設定ファイルを編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/cinder/cinder.conf
[root@cinder ~]# vim /etc/cinder/cinder.conf
[DEFAULT]
セクションで、Cinder のバックエンドとして Ceph を有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow enabled_backends = ceph
enabled_backends = ceph
Glance API のバージョンが 2 に設定されていることを確認します。複数の cinder バックエンドを
enabled_backends
に設定する場合には、glance_api_version = 2
設定は[DEFAULT]
セクションではなく、[ceph]
セクションになければなりません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance_api_version = 2
glance_api_version = 2
-
cinder.conf
ファイルに[ceph]
セクションを作成します。以下のステップで[ceph]
セクションに Ceph 設定を追加します。 volume_driver
の設定を指定し、Ceph ブロックデバイスドライバーを使用するように設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_driver = cinder.volume.drivers.rbd.RBDDriver
クラスター名と Ceph の設定ファイルの場所を指定します。典型的なデプロイメントでは、
ceph
クラスターのクラスター名および Ceph 設定ファイルは/etc/ceph/ceph.conf
にあります。Ceph クラスター名がceph
ではない場合は、クラスター名と設定ファイルパスを適切に指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rbd_cluster_name = us-west rbd_ceph_conf = /etc/ceph/us-west.conf
rbd_cluster_name = us-west rbd_ceph_conf = /etc/ceph/us-west.conf
デフォルトでは、Red Hat OpenStack Platform は Ceph ボリュームを
rbd
プールに保管します。以前に作成したvolumes
プールを使用するには、rbd_pool
設定を指定し、volumes
プールを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rbd_pool = volumes
rbd_pool = volumes
Red Hat OpenStack Platform には、ボリュームのシークレットのデフォルトユーザー名または UUID がありません。
rbd_user
を指定して、cinder
ユーザーに設定します。次に、rbd_secret_uuid
設定を指定し、これをuuid-secret.txt
ファイルに保存されている生成された UUID に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rbd_user = cinder rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964
rbd_user = cinder rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964
以下の設定を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rbd_flatten_volume_from_snapshot = false rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1
rbd_flatten_volume_from_snapshot = false rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1
Cinder が Ceph ブロックデバイスを使用するように設定すると、設定ファイルは以下のようになります。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [DEFAULT] enabled_backends = ceph glance_api_version = 2 … [ceph] volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_cluster_name = ceph rbd_pool = volumes rbd_user = cinder rbd_ceph_conf = /etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot = false rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964 rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1
[DEFAULT] enabled_backends = ceph glance_api_version = 2 … [ceph] volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_cluster_name = ceph rbd_pool = volumes rbd_user = cinder rbd_ceph_conf = /etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot = false rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964 rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1
注記デフォルトの
[lvm]
セクションと、その設定を削除することを検討してください。
3.3. Ceph ブロックデバイスを使用する Cinder バックアップの設定
Red Hat OpenStack Platform では、Cinder バックアップが Ceph ブロックデバイスを使用するように設定できます。
前提条件
- Cinder ノードへのルートレベルのアクセス。
手順
Cinder 設定ファイルを編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/cinder/cinder.conf
[root@cinder ~]# vim /etc/cinder/cinder.conf
-
設定ファイルの
[ceph]
セクションに移動します。 backup_driver
の設定を指定し、それを Ceph ドライバーに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow backup_driver = cinder.backup.drivers.ceph
backup_driver = cinder.backup.drivers.ceph
backup_ceph_conf
の設定を指定し、Ceph 設定ファイルへのパスを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow backup_ceph_conf = /etc/ceph/ceph.conf
backup_ceph_conf = /etc/ceph/ceph.conf
注記Cinder バックアップ Ceph 設定ファイルは、Cinder に使用する Ceph 設定ファイルとは異なる場合があります。たとえば、別の Ceph Storage クラスターを指定することができます。
バックアップ用の Ceph プールを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow backup_ceph_pool = backups
backup_ceph_pool = backups
注記Cinder バックアップに使用される Ceph 設定ファイルは、Cinder に使用される Ceph 設定ファイルとは異なる場合があります。
backup_ceph_user
設定を指定し、ユーザーをcinder-backup
として指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow backup_ceph_user = cinder-backup
backup_ceph_user = cinder-backup
以下の設定を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow backup_ceph_chunk_size = 134217728 backup_ceph_stripe_unit = 0 backup_ceph_stripe_count = 0 restore_discard_excess_bytes = true
backup_ceph_chunk_size = 134217728 backup_ceph_stripe_unit = 0 backup_ceph_stripe_count = 0 restore_discard_excess_bytes = true
Cinder オプションを指定すると、
cinder.conf
ファイルの[ceph]
セクションは以下のようになります。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [ceph] volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_cluster_name = ceph rbd_pool = volumes rbd_user = cinder rbd_ceph_conf = /etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot = false rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964 rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1 backup_driver = cinder.backup.drivers.ceph backup_ceph_user = cinder-backup backup_ceph_conf = /etc/ceph/ceph.conf backup_ceph_chunk_size = 134217728 backup_ceph_pool = backups backup_ceph_stripe_unit = 0 backup_ceph_stripe_count = 0 restore_discard_excess_bytes = true
[ceph] volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_cluster_name = ceph rbd_pool = volumes rbd_user = cinder rbd_ceph_conf = /etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot = false rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964 rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1 backup_driver = cinder.backup.drivers.ceph backup_ceph_user = cinder-backup backup_ceph_conf = /etc/ceph/ceph.conf backup_ceph_chunk_size = 134217728 backup_ceph_pool = backups backup_ceph_stripe_unit = 0 backup_ceph_stripe_count = 0 restore_discard_excess_bytes = true
Cinder バックアップが有効になっているかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /etc/openstack-dashboard/local_settings | grep enable_backup
[root@cinder ~]# cat /etc/openstack-dashboard/local_settings | grep enable_backup
enable_backup
をFalse
に設定すると、local_settings
ファイルを編集し、これをTrue
に設定します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OPENSTACK_CINDER_FEATURES = { 'enable_backup': True, }
OPENSTACK_CINDER_FEATURES = { 'enable_backup': True, }
3.4. Ceph ブロックデバイスを使用するように Glance の設定
Red Hat OpenStack Platform は、Ceph ブロックデバイスを使用する Glance を設定できます。
前提条件
- Glance ノードへのルートレベルのアクセス。
手順
デフォルトで Ceph ブロックデバイスを使用するには、
/etc/glance/glance-api.conf
ファイルを編集します。別のプールを使用した場合は、ユーザーまたは Ceph の設定ファイルの適切な値が適用されます。必要に応じて以下の設定のコメント設定を解除し、値を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/glance/glance-api.conf
[root@glance ~]# vim /etc/glance/glance-api.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow stores = rbd default_store = rbd rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = glance rbd_store_ceph_conf = /etc/ceph/ceph.conf
stores = rbd default_store = rbd rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = glance rbd_store_ceph_conf = /etc/ceph/ceph.conf
CoW (copy-on-write) クローン作成を有効にするには、
show_image_direct_url
をTrue
に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow show_image_direct_url = True
show_image_direct_url = True
重要CoW を有効にすると、Glance の API 経由でバックエンドの場所を公開するため、エンドポイントは一般にアクセスできないはずです。
必要に応じてキャッシュ管理を無効にします。
flavor
は、keystone+cachemanagement
ではなく、keystone
にのみ設定する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow flavor = keystone
flavor = keystone
Red Hat では、イメージに以下のプロパティーを推奨します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow hw_scsi_model=virtio-scsi hw_disk_bus=scsi hw_qemu_guest_agent=yes os_require_quiesce=yes
hw_scsi_model=virtio-scsi hw_disk_bus=scsi hw_qemu_guest_agent=yes os_require_quiesce=yes
virtio-scsi
コントローラーのパフォーマンスが向上し、破棄操作に対応します。SCSI/SAS ドライブを使用するシステムの場合は、そのコントローラーにすべての Cinder ブロックデバイスを接続します。また、QEMU ゲストエージェントを有効にし、QEMU ゲストエージェントを介してfs-freeze/thaw
呼び出しを送信します。
3.5. Ceph ブロックデバイスを使用する Nova の設定
Red Hat OpenStack Platform は、Ceph ブロックデバイスを使用する Nova を設定できます。
一時バックエンドストレージデバイスを使用するように各 Nova ノードを設定する必要があります。これにより、すべての仮想マシンが Ceph ブロックデバイスを使用できるようになります。
前提条件
- Nova ノードへのルートレベルのアクセス。
手順
Ceph 設定ファイルを編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/ceph/ceph.conf
[root@nova ~]# vim /etc/ceph/ceph.conf
以下のセクションを Ceph 設定ファイルの
[client]
セクションに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [client] rbd cache = true rbd cache writethrough until flush = true rbd concurrent management ops = 20 admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok log file = /var/log/ceph/qemu-guest-$pid.log
[client] rbd cache = true rbd cache writethrough until flush = true rbd concurrent management ops = 20 admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok log file = /var/log/ceph/qemu-guest-$pid.log
管理ソケットとログファイル用に新規ディレクトリーを作成し、
qemu
ユーザーおよびlibvirtd
グループを使用するディレクトリーのパーミッションを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir -p /var/run/ceph/guests/ /var/log/ceph/ chown qemu:libvirt /var/run/ceph/guests /var/log/ceph/
[root@nova ~]# mkdir -p /var/run/ceph/guests/ /var/log/ceph/ [root@nova ~]# chown qemu:libvirt /var/run/ceph/guests /var/log/ceph/
注記ディレクトリーは SELinux または AppArmor が許可している必要があります。
それぞれの Nova ノードで、
/etc/nova/nova.conf
ファイルを編集します。[libvirt]
セクションで、以下の設定を構成します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [libvirt] images_type = rbd images_rbd_pool = vms images_rbd_ceph_conf = /etc/ceph/ceph.conf rbd_user = cinder rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964 disk_cachemodes="network=writeback" inject_password = false inject_key = false inject_partition = -2 live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED" hw_disk_discard = unmap
[libvirt] images_type = rbd images_rbd_pool = vms images_rbd_ceph_conf = /etc/ceph/ceph.conf rbd_user = cinder rbd_secret_uuid = 4b5fd580-360c-4f8c-abb5-c83bb9a3f964 disk_cachemodes="network=writeback" inject_password = false inject_key = false inject_partition = -2 live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED" hw_disk_discard = unmap
rbd_user_secret
の UUID は、uuid-secret.txt
ファイルの UUID に置き換えます。
3.6. OpenStack サービスの再起動
Red Hat OpenStack Platform サービスを再起動すると、Ceph ブロックデバイスドライバーをアクティベートできます。
前提条件
- Red Hat OpenStack Platform ノードへのルートレベルのアクセス。
手順
- ブロックデバイスプール名と Ceph ユーザー名を設定ファイルに読み込みます。
該当する設定ファイルを変更したら、適切な OpenStack サービスを再起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart openstack-cinder-volume systemctl restart openstack-cinder-backup systemctl restart openstack-glance-api systemctl restart openstack-nova-compute
[root@osp ~]# systemctl restart openstack-cinder-volume [root@osp ~]# systemctl restart openstack-cinder-backup [root@osp ~]# systemctl restart openstack-glance-api [root@osp ~]# systemctl restart openstack-nova-compute