4.6. 複数のインスタンスに接続できるボリューム
複数のインスタンスに接続できるマルチ接続 Block Storage ボリュームを作成できます。これらのインスタンスは、同時に読み取りと書き込みを行うことができます。マルチ接続ボリュームには、マルチ接続ボリューム種別が必要です。
複数インスタンスからの書き込み操作を管理するには、マルチ接続またはクラスター対応のファイルシステムを使用する必要があります。それ以外の設定では、データの破損が生じます。
マルチ接続ボリュームの制限
- Block Storage (cinder) のバックエンドは、マルチ接続ボリュームをサポートしている必要があります。サポートされるバックエンドの情報は、Red Hat のサポートにお問い合わせください。
Block Storage (cinder) のドライバーは、マルチ接続ボリュームをサポートしている必要があります。Ceph RBD ドライバーがサポートされます。ベンダープラグインでマルチ接続がサポートされることを確認するには、Red Hat のサポートにお問い合わせください。ベンダープラグインの認定の詳細は、以下のアーティクルおよび Web サイトを参照してください。
- 読み取り専用のマルチ接続ボリュームはサポートされていません。
- マルチ接続されたボリュームを持つインスタンスのライブマイグレーションを行うことはできますが、マルチ接続ボリュームのライブマイグレーションを行うことはできません。
- マルチ接続ボリュームの暗号化はサポートされていません。
- マルチ接続ボリュームは、ベアメタルプロビジョニングサービス (ironic) virt ドライバーではサポートされていません。マルチ接続ボリュームは、libvirt virt ドライバーによってのみサポートされます。
- アタッチされたボリュームをマルチ接続タイプから非マルチ接続タイプに再入力したり、非マルチ接続タイプをマルチ接続タイプに再入力したりすることはできません。
- アタッチされたボリュームの移行中に、複数の読み取り/書き込みアタッチメントを持つマルチ接続ボリュームをソースボリュームまたは宛先ボリュームとして使用することはできません。
- 見送られていたオフロードされたインスタンスにマルチ接続ボリュームをアタッチすることはできません。
- 同じマルチ接続ボリュームに接続されているインスタンスへの、作成またはサイズ変更などの同時 API 呼び出しは失敗する可能性があります。詳細は、https://access.redhat.com/solutions/7077470 を参照してください。
4.6.1. マルチ接続ボリューム種別の作成 リンクのコピーリンクがクリップボードにコピーされました!
複数のインスタンスにボリュームを接続するには、ボリュームの追加スペックで multiattach フラグを <is> True に設定します。マルチ接続のボリューム種別を作成すると、ボリュームはフラグを継承し、マルチ接続のボリュームになります。
前提条件
- ボリュームタイプを作成するには、プロジェクト管理者である必要があります。
手順
source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<credentials_file>を認証情報ファイルの名前 (overcloudrcなど) に置き換えます。
-
マルチ接続ボリューム用の新しいボリューム種別を作成します。
cinder type-create multiattach
$ cinder type-create multiattachCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマルチ接続ボリューム種別の
multiattachプロパティーを有効にします。cinder type-key multiattach set multiattach="<is> True"
$ cinder type-key multiattach set multiattach="<is> True"Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックエンドを指定するには、以下のコマンドを実行します。
cinder type-key multiattach set volume_backend_name=<backend_name>
$ cinder type-key multiattach set volume_backend_name=<backend_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6.2. マルチ接続ボリューム種別の変更 リンクのコピーリンクがクリップボードにコピーされました!
ボリュームをマルチ接続可能な種別に変更することや、マルチ接続可能なボリュームを複数インスタンスに接続できない種別に変更することが可能です。ただし、ボリューム種別を変更することができるのは、ボリュームが使用中ではなくそのステータスが available の場合に限られます。
マルチ接続のボリュームを接続する場合、一部のハイパーバイザーでは、キャッシュを無効にする場合など、特別な考慮が必要になります。現在、接続済みのボリュームを接続したまま安全に更新する方法はありません。複数のインスタンスに接続されているボリュームの種別変更を試みると、変更に失敗します。
4.6.3. マルチ接続ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
複数のインスタンスに接続できる Block Storage ボリュームを作成できます。これらのインスタンスは、同時に読み取りと書き込みを行うことができます。
この手順では、multiattach をサポートする任意のバックエンドにボリュームを作成します。したがって、multiattach をサポートするバックエンドが 2 つある場合は、スケジューラーがどちらのバックエンドを使用するかを決定します。詳細は、複数のバックエンドのボリューム割り当て を参照してください。
前提条件
- プロジェクトでマルチ接続ボリューム種別を使用できる。
手順
- Source コマンドで認証情報ファイルを読み込みます。
以下のコマンドを実行し、マルチ接続のボリュームを作成します。
cinder create <volume_size> --name <volume_name> --volume-type multiattach
$ cinder create <volume_size> --name <volume_name> --volume-type multiattachCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、ボリュームがマルチ接続に対応していることを確認します。ボリュームがマルチ接続に対応している場合、
multiattachフィールドはTrueと表示されます。cinder show <vol_id> | grep multiattach
$ cinder show <vol_id> | grep multiattach | multiattach | True |Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ