4.6. 複数インスタンスへのボリュームの接続

ボリュームのマルチ接続により、複数のインスタンスが Block Storage ボリュームに同時に読み取り/書き込みアクセスを行うことができます。Ceph RBD ドライバーがサポートされます。

警告

複数インスタンスからの書き込み操作を管理するには、マルチ接続またはクラスター対応のファイルシステムを使用する必要があります。それ以外の設定では、データの破損が生じます。

マルチ接続ボリュームの制限

  • Block Storage (cinder) のバックエンドは、マルチ接続ボリュームをサポートしている必要があります。サポートされるバックエンドについての情報は、Red Hat のサポートにお問い合わせください。
  • Block Storage (cinder) のドライバーは、マルチ接続ボリュームをサポートしている必要があります。ベンダープラグインでマルチ接続がサポートされることを確認するには、Red Hat のサポートにお問い合わせください。ベンダープラグインの認定についての詳しい情報は、以下のアーティクルおよび Web サイトを参照してください。

  • 読み取り専用のマルチ接続ボリュームはサポートされていません。
  • マルチ接続ボリュームのライブマイグレーションは利用できません。
  • マルチ接続ボリュームの暗号化はサポートされていません。
  • マルチ接続ボリュームは、ベアメタルプロビジョニングサービス (ironic) virt ドライバーではサポートされていません。マルチ接続ボリュームは、libvirt virt ドライバーによってのみサポートされます。
  • アタッチされたボリュームをマルチ接続タイプから非マルチ接続タイプに再入力したり、非マルチ接続タイプをマルチ接続タイプに再入力したりすることはできません。
  • アタッチされたボリュームの移行中に、複数の読み取り/書き込みアタッチメントを持つマルチ接続ボリュームをソースボリュームまたは宛先ボリュームとして使用することはできません。
  • 見送られていたオフロードされたインスタンスにマルチ接続ボリュームをアタッチすることはできません。

4.6.1. マルチ接続ボリューム種別の作成

複数のインスタンスにボリュームを接続するには、ボリュームの追加スペックで multiattach フラグを <is> True に設定します。マルチ接続のボリューム種別を作成すると、ボリュームはフラグを継承し、マルチ接続のボリュームになります。

注記

デフォルトでは、新規ボリューム種別の作成は管理者だけができる操作です。

前提条件

手順

  1. 以下のコマンドを実行し、マルチ接続のボリューム種別を作成します。

    $ cinder type-create multiattach
    $ cinder type-key multiattach set multiattach="<is> True"
    注記

    この手順では、マルチ接続をサポートする任意のバックエンドにボリュームを作成します。したがって、マルチ接続をサポートするバックエンドが 2 つある場合、スケジューラーは、ボリューム作成時に利用可能な領域に基づいて使用するバックエンドを決定します。

  2. バックエンドを指定するには、以下のコマンドを実行します。

    $ cinder type-key multiattach set volume_backend_name=<backend_name>

4.6.2. マルチ接続ボリューム種別の変更

ボリュームをマルチ接続可能な種別に変更することや、マルチ接続可能なボリュームを複数インスタンスに接続できない種別に変更することが可能です。ただし、ボリューム種別を変更することができるのは、ボリュームが使用中ではなくそのステータスが available の場合に限られます。

マルチ接続のボリュームを接続する場合、一部のハイパーバイザーでは、キャッシュを無効にする場合など、特別な考慮が必要になります。現在、接続済みのボリュームを接続したまま安全に更新する方法はありません。複数のインスタンスに接続されているボリュームの種別変更を試みると、変更に失敗します。

4.6.3. マルチ接続ボリュームの作成

マルチ接続のボリューム種別を作成したら、マルチ接続のボリュームを作成します。

前提条件

手順

  1. 以下のコマンドを実行し、マルチ接続のボリュームを作成します。

    $ cinder create <volume_size> --name <volume_name> --volume-type multiattach
  2. 以下のコマンドを実行して、ボリュームがマルチ接続に対応していることを確認します。ボリュームがマルチ接続に対応している場合、multiattach フィールドは True と表示されます。

    $ cinder show <vol_id> | grep multiattach
    
    | multiattach | True |