検索

2.9. Block Storage サービス (cinder) の整合性グループ

download PDF

Block Storage (cinder) サービスを使用して、整合性グループを設定して複数のボリュームを単一のエンティティーとしてグループ化することができます。つまり、複数のボリュームに対して個別に操作を実行するのではなく、同時に複数のボリュームに対して操作を実行することができます。整合性グループを使用して、複数ボリュームのスナップショットを同時に作成することができます。また、これらのボリュームを同時にリストアまたはクローン作成することも可能です。

1 つのボリュームを複数の整合性グループのメンバーにすることができます。ただし、ボリュームを整合性グループに追加した後に、そのボリュームを削除、種別変更、移行することはできません。

2.9.1. Block Storage サービスの整合性グループの設定

デフォルトでは、整合性グループの API は Block Storage のセキュリティーポリシーにより無効にされています。この機能を使用するには、ここで有効にする必要があります。Block StorageAPI サービスをホストするノードの /etc/cinder/policy.json ファイルの関連する整合性グループエントリー openstack-cinder-api にデフォルト設定がリストされています。

"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 ファイルを直接編集しないでください。次回オーバークラウドがデプロイされる際に変更が上書きされてしまうためです。

前提条件

手順

  1. 環境ファイルを編集し、parameter_defaults セクションに新しいエントリーを追加します。これにより、openstack overcloud deploy コマンドを使用して環境が再デプロイされるたびに、エントリーがコンテナーで更新され保持されるようになります。
  2. CinderApiPolicies を使用して環境ファイルに新規セクションを追加し、整合性グループの設定を定義します。JSON ファイルのデフォルト設定を持つ同等の parameter_defaults セクションは、次のように表示されます。

    parameter_defaults:
      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' }, \
     }
  3. 'group:nobody' は、この機能を使用できるグループがないことを決定するため、効果的に無効になります。これを有効にするには、グループを別の値に変更します。
  4. セキュリティーを強化するためには、整合性グループの API とボリューム種別管理の API の両方に、同じアクセス権限を設定します。デフォルトでは、ボリューム種別管理の API は (同じ /etc/cinder/policy.json_ file) で "rule:admin_or_owner" に設定されています。

    "volume_extension:types_manage": "rule:admin_or_owner",
  5. 整合性グループの機能をすべてのユーザーが利用できるようにするには、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’ }, \
     }
  6. /home/stack/templates/ に環境ファイルを作成したら、スタックユーザーとしてログインし、設定をデプロイします。

    $ openstack overcloud deploy --templates \
    -e /home/stack/templates/<ENV_FILE>.yaml

    <ENV_FILE.yaml> を、追加した ExtraConfig 設定のファイル名に置き換えます。

    重要

    オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで -e オプションを使用して環境ファイルを再度渡します。

openstack overcloud deploy コマンドについての詳しい情報は、Director Installation and UsageDeployment commandを参照してください。

2.9.2. Dashboard を使用した Block Storage 整合性グループの作成

整合性グループの API を有効にしたら、整合性グループの作成を開始することができます。

前提条件

手順

  1. Dashboard で管理者ユーザーとして プロジェクト > コンピュート > ボリューム > ボリュームの整合性グループ を選択します。
  2. 整合性グループの作成 をクリックします。
  3. ウィザードの 整合性グループの情報 タブで、整合性グループの名前と説明を入力します。次に アベイラビリティーゾーン を指定します。
  4. 整合性グループにボリューム種別を追加することもできます。整合性グループにボリュームを作成する際には、Block Storage サービスにより、これらのボリューム種別から互換性のある設定が適用されます。ボリューム種別を追加するには、利用可能な全ボリューム種別 リストから追加するボリューム種別の + ボタンをクリックします。
  5. 整合性グループの作成 をクリックします。次回、作成した整合性グループが ボリュームの整合性グループ テーブルに表示されます。

2.9.3. Dashboard を使用した Block Storage サービスの整合性グループの管理

Red Hat OpenStack Platform (RHOSP) Dashboard を使用して、Block Storage ボリュームの整合性グループを管理します。

前提条件

  • アンダークラウドの正常なインストール。詳しくは、Director Installation and UsageInstalling director on the undercloud を参照してください。
  • オーバークラウドの正常なデプロイメント。詳細は、Director Installation and UsageCreating a basic overcloud with CLI tools を参照してください。
  • Red Hat OpenStack Platform (RHOSP) Dashboard (horizon) へのアクセス。詳しい情報は、Director Installation and UsageOvercloud deployment output を参照してください。

手順

  1. (オプション) アクション コラムから 整合性グループの編集 を選択して、整合性グループの名前または説明を変更することができます。
  2. 整合性グループから直接にボリュームを追加または削除するには、Dashboard で管理者ユーザーとして プロジェクト > コンピュート > ボリューム > ボリュームの整合性グループ を選択します。
  3. 設定する整合性グループを特定します。その整合性グループの アクション コラムで、ボリュームの管理 を選択します。これにより、整合性グループボリュームの追加/削除 ウィザードが起動します。

    1. 整合性グループにボリュームを追加するには、利用可能な全ボリューム リストから追加するボリュームの + ボタンをクリックします。
    2. 整合性グループからボリュームを削除するには、選択済みのボリューム リストから削除するボリュームの - ボタンをクリックします。
  4. 整合性グループの編集 をクリックします。

2.9.4. Block Storage サービス用の整合性グループのスナップショットの作成および管理

整合性グループにボリュームを追加したら、そこからスナップショットを作成することができます。

前提条件

手順

  1. openstack-cinder-api をホストするノードのコマンドラインから admin ユーザーとしてログインし、次のように入力します。

    # export OS_VOLUME_API_VERSION=2

    これにより、openstack-cinder-api のバージョン 2 を使用するようにクライアントが設定されます。

  2. 利用可能な整合性グループおよびその ID をすべて表示します。

    # cinder consisgroup-list
  3. 整合性グループを使用してスナップショットを作成します。

    # cinder cgsnapshot-create --name <CGSNAPNAME> --description "<DESCRIPTION>" <CGNAMEID>

    以下を置き換えます。

    • <CGSNAPNAME> とスナップショットの名前 (オプション)。
    • スナップショットの説明を含む <DESCRIPTION> (オプション)。
    • <CGNAMEID> と整合性グループの名前または ID。
  4. 利用可能な整合性グループのスナップショットの全リストを表示します。

    # cinder cgsnapshot-list

2.9.5. Block Storage サービスの整合性グループのクローン作成

整合性グループを使用して、事前に設定されたボリューム群を一括で同時に作成することもできます。この操作は、既存の整合性グループをクローンするか、整合性グループのスナップショットをリストアすることによって実行できます。いずれのプロセスも同じコマンドを使用します。

前提条件

手順

  1. 既存の整合性グループのクローンを作成するには、以下のコマンドを実行します。

    # cinder consisgroup-create-from-src --source-cg <CGNAMEID> --name <CGNAME> --description "<DESCRIPTION>"

    以下を置き換えます。

    • <CGNAMEID> は、複製する整合性グループの名前または ID です。
    • <CGNAME> は、整合性グループの名前です (オプション)。
    • <DESCRIPTION> は、整合性グループの説明です (オプション)。
  2. 整合性グループのスナップショットから整合性グループを作成するには、以下のコマンドを実行します。

    # cinder consisgroup-create-from-src --cgsnapshot <CGSNAPNAME> --name <CGNAME> --description "<DESCRIPTION>

    <CGSNAPNAME> は、整合性グループの作成に使用するスナップショットの名前または ID に置き換えてください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.