Menu Close

2.4. ボリュームの高度な設定

以下の手順で、ボリュームの高度な管理方法について説明します。

重要

Block Storage サービス (cinder) およびファイバーチャネル (FC) バックエンドを使用するすべてのデプロイメントにおいて、すべてのコントローラーノードおよびコンピュートノードにホストバスアダプター (HBA) をインストールする必要があります。

2.4.1. ボリュームの移行

Block Storage サービス (cinder) を使用して、同一または異なるアベイラビリティーゾーン (AZ) にあるバックエンド間で、ボリュームを移行することができます。これは、あるバックエンドから別のバックエンドにボリュームを移行する方法としては、まったく一般的ではありません。デフォルトのポリシーでは、管理者のみがボリュームを移行することができます。デフォルトのポリシーは変更しないでください。

高度にカスタマイズされたデプロイメントの場合や、ストレージシステムを廃止する必要のある状況では、管理者はボリュームを移行できます。どちらのユースケースでも、複数のストレージシステムが同じ volume_backend_nameを共有しているか、未定義です。

制限

  • ボリュームは複製できません。
  • 移行先バックエンドは、ボリュームの現在のバックエンドとは異なる必要があります。
  • 既存のボリューム種別は、新規バックエンドに対して有効である必要があります。つまり、以下の状況でなければなりません。

    • ボリュームタイプの追加仕様で backend_volume_name を定義することはできません。または、両方のブロックストレージバックエンドを同じ backend_volume_name で設定する必要があります。
    • どちらのバックエンドも、シンプロビジョニングのサポート、シックプロビジョニングのサポート、またはその他の機能設定など、ボリューム種別で設定した同じ機能をサポートする。
注記

ボリュームをあるバックエンドから別のバックエンドに移動するには、非常に多くの時間とリソースが必要になる場合があります。詳細は、「バックエンド間でのボリュームの移動」を参照してください。

2.4.1.1. バックエンド間の移行

Dashboard UI を使用して、バックエンド間でボリュームを移行します。

手順

  1. Dashboard で 管理 > ボリューム を選択します。
  2. 移行するボリュームの アクション のコラムで、ボリュームのマイグレーション を選択します。
  3. ボリュームのマイグレーション ダイアログで、移行先ホスト ドロップダウンリストからボリュームを移行する先のホストを選択します。

    注記

    ホストの移行でドライバーの最適化をスキップするには、強制ホストコピー のチェックボックスを選択します。

  4. マイグレーション をクリックして移行を開始します。

2.4.1.2. コマンドラインを使用したバックエンド間の移行

手順

  1. 以下のコマンドを入力して、宛先のバックエンドの名前を取得します。

    $ cinder get-pools --detail
    
    Property                      | Value
    
    ...
    
    | name                        | localdomain@lvmdriver-1#lvmdriver-1
    | pool_name                   | lvmdriver-1
    
    ...
    
    | volume_backend_name         | lvmdriver-1
    
    ...
    
    Property                      | Value
    
    ...
                                                          |
    | name                        | localdomain@lvmdriver-2#lvmdriver-1
    | pool_name                   | lvmdriver-1
    
    ...
    
    | volume_backend_name         | lvmdriver-1
    
    ...

    バックエンド名は、host @ volume_backend_name#pool の形式を取ります。

    出力例では、BlockStorageサービスで公開されている2つのLVMバックエンドがあります。localdomain@lvmdriver-1#lvmdriver-1localdomain@lvmdriver-2#lvmdriver-1 です。両方のバックエンドが同じ volume_backend_namelvmdriver-1 を共有していることに注意してください。

    注記

    LVM の使用は、例としてのみ挙げられています。LVM は、実稼働環境ではサポートされません。

  2. 以下のコマンドを入力して、ボリュームをあるバックエンドから別のバックエンドに移行します。

    $ cinder migrate <volume id or name> <new host>

2.4.1.3. ボリュームの移行の確認

ボリュームを作成すると、migration_status の値は None になります。移行を開始すると、ステータスが migrating に変わります。移行が完了すると、ステータスは success また error に変わります。

ブロックストレージサービスが移行要求を受け入れた後、cinder クライアントは、Request to migrate volume <volume id> has been accepted. のようなメッセージで応答します。ただし、移行が完了するまでには時間がかかります。管理者は、移行のステータスを確認できます。

手順

  1. 次のコマンドを入力し、migration_status フィールドを確認します。

    $ cinder show <volume id>
    注記

    通常のボリューム移行を開始すると、ボリューム名が重複します。そのボリューム名でcinder show コマンドを実行すると、シンダークライアントは次のようなエラーを返します。ERROR: Multiple volume matches found for '<volume name>'このエラーを回避するには、ボリューム名の代わりにボリューム ID を使用します。

移行が成功すると、host フィールドは cinder migrate コマンドで設定された<new host>値と一致します。