OpenStack インスタンスに接続されている Cinder ボリュームは、対応する仮想マシンを別のデータストアに移行することによって移行できます。

注:
  • 接続された状態のマルチ接続ボリュームは移行できません。マルチ接続ボリュームを別のデータストアに移行する際は、事前に接続解除します。
  • 接続されているボリュームを移行すると、対応するシャドウ仮想マシンは元のデータストアに残りますが、ディスクは保持されません。ボリュームを接続解除すると、ディスクはシャドウ仮想マシンに再接続されます。

前提条件

移行するボリュームからすべてのスナップショットを接続解除します。

手順

  1. Integrated OpenStack Managerroot ユーザーとしてログインします。
    ssh root@mgmt-server-ip
  2. ボリュームを含むデータストアを移行に向けて準備します。
    この手順では、指定のデータストア上のすべてのボリュームを移行する準備を行います。
    viocli prepare datastore dc-name ds-name
    オプション 説明

    dc-name

    目的のボリュームを含むデータセンターを入力します。

    ds-name

    目的のボリュームを含むデータストアを入力します。

  3. ツールボックスを開きます。
    toolbox
  4. ボリュームが接続されているインスタンスを移行します。
    openstack server migrate compute-name instance-uuid --live
    • コンピューティング ノードの名前を特定するには、openstack host list コマンドを実行して、[ホスト名] 列を確認します。
    • インスタンスの UUID を特定するには、openstack server list コマンドを実行して、[ID] 列を確認します。

    詳細については、インスタンスの移行を参照してください。

  5. vSphere Client で、ボリュームの接続先の OpenStack インスタンスに対応する仮想マシンを移行します。

    詳細については、vSphere Web Client での新しいストレージへの仮想マシンの移行を参照してください。

  6. シャドウ仮想マシンを別のアベイラビリティ ゾーンのクラスタに移行する場合、ボリュームの Cinder ホストを更新します。
    1. LCM ノード上の cinder-api ポッドのリストを取得します。
      osctl get pods | grep cinder-api
    2. リストにある cinder-api ポッドのいずれかの名前を使用して、ポッドで bash セッションを開始します。
      osctl exec -it <cinder-api-pod-name> bash
    3. 新しいセッションで、Cinder ホストのリストを取得します。
      cinder-manage host list
      このリストには、Cinder ボリュームのホストとゾーンが含まれています。
    4. 移動するボリュームの属性を変更します。ホストとゾーンの値を、シャドウ仮想マシンを移動する AZ 内の Cinder ボリューム ホストに設定します。
      cinder-manage volume update volume_host --volume_id <volume-uuid> --newhost <new-volume-host> --zone <availability-zone>
      ここで、
      • volume-uuid は、移動するシャドウ仮想マシンの Cinder ボリューム UUID です
      • new-volumne-host は、移行先 AZ での Cinder ホスト名です。
      • availability-zone は、移行先 AZ です。

結果

Cinder ボリュームと、対応するシャドウ仮想マシンのディスクが新しいデータストアに移行されます。