2.2.9. 整合性グループの設定と使用
Block Storage サービスでは、整合性グループ を設定することができます。これにより、複数のボリュームを単一のエンティティーとしてグループ化することができます。その結果、複数のボリュームに対する操作を、個別に実施せずに 1 度に実施することができます。特に本リリースでは、整合性グループを使用して、複数ボリュームのスナップショットを同時に作成することができます。その延長で、これらのボリュームを同時に復元またはクローン作成することも可能です。
1 つのボリュームを複数の整合性グループのメンバーにすることができます。ただし、ボリュームを整合性グループに追加したら、そのボリュームを削除、種別変更、移行することはできません。
2.2.9.1. 整合性グループの設定
デフォルトでは、整合性グループの API は Block Storage のセキュリティーポリシーにより無効にされています。この機能を使用するには、ここで有効にする必要があります。Block Storage API サービス (openstack-cinder-api) をホストするノードの /etc/cinder/policy.json の関連整合性グループエントリーに、デフォルト設定の一覧が表示されます。
"consistencygroup:create" : "group:nobody", "consistencygroup:delete": "group:nobody", "consistencygroup:update": "group:nobody", "consistencygroup:get": "group:nobody", "consistencygroup:get_all": "group:nobody", "consistencygroup:create_cgsnapshot" : "group:nobody", "consistencygroup:delete_cgsnapshot": "group:nobody", "consistencygroup:get_cgsnapshot": "group:nobody", "consistencygroup:get_all_cgsnapshots": "group:nobody",
これらの設定を環境ファイルで変更し、openstack overcloud deploy
コマンドを使用してオーバークラウドにデプロイする必要があります。JSON ファイルを直接編集すると、次回オーバークラウドがデプロイされる際に変更が上書きされます。
整合性グループを有効にするには、環境ファイルを編集して、parameter_defaults セクションに新規エントリーを追加します。これにより、エントリーがコンテナーで更新され、openstack overcloud deploy
コマンドを使用して director で環境を再デプロイするたびにエントリーが維持されるようになります。
CinderApiPolicies を使用して環境ファイルに新規セクションを追加し、整合性グループの設定を定義します。JSON ファイルからのデフォルト設定を示す同等の parameter_defaults セクションは、以下のようになります。
parameter_defauts: CinderApiPolicies: { \ cinder-consistencygroup_create: { key: 'consistencygroup:create', value: 'group:nobody' }, \ cinder-consistencygroup_delete: { key: 'consistencygroup:delete', value: 'group:nobody' }, \ cinder-consistencygroup_update: { key: 'consistencygroup:update', value: 'group:nobody' }, \ cinder-consistencygroup_get: { key: 'consistencygroup:get', value: 'group:nobody' }, \ cinder-consistencygroup_get_all: { key: 'consistencygroup:get_all', value: 'group:nobody' }, \ cinder-consistencygroup_create_cgsnapshot: { key: 'consistencygroup:create_cgsnapshot', value: 'group:nobody' }, \ cinder-consistencygroup_delete_cgsnapshot: { key: 'consistencygroup:delete_cgsnapshot', value: 'group:nobody' }, \ cinder-consistencygroup_get_cgsnapshot: { key: 'consistencygroup:get_cgsnapshot', value: 'group:nobody' }, \ cinder-consistencygroup_get_all_cgsnapshots: { key: 'consistencygroup:get_all_cgsnapshots', value: 'group:nobody' }, \ }
'group:nobody'
の値により、どのグループもこの機能を使用できないことが定義され、結果的にその機能が無効化されます。この機能を有効にするには、グループを別の値に変更する必要があります。
セキュリティーを強化するためには、整合性グループの API とボリューム種別管理の API の両方に、同じアクセス権限を設定します。デフォルトでは、ボリューム種別管理の API は "rule:admin_or_owner" に設定されています (同じ /etc/cinder/policy.json ファイルで)。
"volume_extension:types_manage": "rule:admin_or_owner",
整合性グループの機能をすべてのユーザーが利用できるようにするには、API ポリシーのエントリーを設定して、ユーザーが専用の整合性グループを作成、使用、および管理できるようにします。そのためには、rule:admin_or_owner を使用します。
CinderApiPolicies: { \ cinder-consistencygroup_create: { key: 'consistencygroup:create', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_delete: { key: 'consistencygroup:delete', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_update: { key: 'consistencygroup:update', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_get: { key: 'consistencygroup:get', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_get_all: { key: 'consistencygroup:get_all', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_create_cgsnapshot: { key: 'consistencygroup:create_cgsnapshot', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_delete_cgsnapshot: { key: 'consistencygroup:delete_cgsnapshot', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_get_cgsnapshot: { key: 'consistencygroup:get_cgsnapshot', value: 'rule:admin_or_owner' }, \ cinder-consistencygroup_get_all_cgsnapshots: { key: 'consistencygroup:get_all_cgsnapshots', value: 'rule:admin_or_owner’ }, \ }
/home/stack/templates/
に環境ファイルを作成したら、stack ユーザーとしてログインします。続いて、以下のコマンドを実行して設定をデプロイします。
$ openstack overcloud deploy --templates \ -e /home/stack/templates/<ENV_FILE>.yaml
ここで、ENV_FILE.yaml は、前のステップで ExtraConfig 設定を追加したファイルの名前です。
オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e
オプションを使用して環境ファイルを再度渡します。
openstack overcloud deploy コマンドに関する補足情報は、『director のインストールと 使用方法 』の「CLI ツールを使用したオーバークラウドの作成 」セクションを参照してください。