仮想マシンを vSphere から VMware Integrated OpenStack デプロイにインポートし、OpenStack インスタンスのように管理することができます。

この手順は、NSX-T Data Center ネットワークを含むデプロイに適用されます。VDS または NSX Data Center for vSphere のデプロイについては、NSX Data Center for vSphere を使用した VMware Integrated OpenStackを参照してください。

インポートする仮想マシンに対しては、以下の条件が適用されます。

  • 仮想マシンに複数のディスクがある場合、ディスクは Cinder ボリュームとしてインポートできます。
  • 特定のネットワーク バッキングを含む仮想マシンをインポートした後、同じネットワークを別のプロジェクトにインポートすることはできません。複数のプロジェクトでネットワークを使用するには、このネットワークを共有ネットワークとして設定します。
  • 仮想マシンのインポート アクションでは、Nova インスタンスとフレーバー間のリンクのみを設定できます。フレーバー構成に従ってインスタンスのサイズを変更することはできません。

Integrated OpenStack Manager ツールボックスの Data Center Command-Line Interface (DCLI) を使用して、仮想マシンをインポートします。

前提条件

仮想マシンをインポートするために、それらのマシンが同じ vCenter Server インスタンス内にあることを確認します。

手順

  1. 目的の仮想マシンが含まれているクラスタをコンピューティング クラスタとして VMware Integrated OpenStack デプロイに追加します。
    手順については、 デプロイへのコンピューティング クラスタの追加を参照してください。
  2. 仮想マシンを Neutron ネットワークに接続します。
    この手順では、プロバイダ ネットワークまたはテナント ネットワークを使用できます。
    1. vSphere Client[ホストおよびクラスタ] ビューを開きます。
    2. 仮想マシンをインポートするには、各仮想マシンを右クリックして、[設定の編集...] を選択します。
    3. ネットワーク アダプタの横にあるドロップダウン メニューから、Neutron ネットワークを選択します。
    4. ネットワーク アダプタの設定を展開して、MAC アドレスを記録します。
  3. 仮想マシンをインポートした後、複数の vNIC を異なる Neutron ネットワークに接続するには、VMware Integrated OpenStack から対応する Neutron ネットワークを作成する必要があります。
  4. インポートされていない仮想マシンの vNIC を、vCenter Server から対応する Neutron ネットワーク(NSXT セグメント)に接続します。
    注: 複数の vNIC を同じ Neutron ネットワークに接続することも、異なる Neutron ネットワークに接続することもできます。
  5. 仮想マシンの一時的な不透明ネットワークを作成します。
    • NSX-T 2.5 の場合、論理スイッチを作成します。『NSX-T Data Center 管理ガイド』の「論理スイッチの作成」を参照し、次の手順を実行して論理スイッチ ID を取得します。
      1. [論理スイッチ] 列で、作成したスイッチの名前をクリックします。
      2. [概要] 列に表示されているとおりにスイッチの ID を記録します。
    • NSX-T 3.0 の場合、セグメントを作成します。『NSX-T Data Center 管理ガイド』の「セグメントの追加」の手順に従って、追加したセグメントの名前を記録します。
    • NSX-T 3.2 の場合、セグメントを作成します。『NSX-T Data Center 管理ガイド』の「セグメントの追加」の手順に従って、追加したセグメントの ID を記録します。
      注: セグメント ID は、NSX-T 3.2 のメニューから [マネージャ] > [論理スイッチ] の順に選択したビューで確認できます。
  6. viocli update nova-compute で Nova コンピューティングの設定を編集し、import_net_id パラメータを追加して、その値を手順 5 で作成したセグメントの名前または ID に設定します。
    viocli update nova-compute
  7. 仮想マシンの vNIC の MAC アドレスを使用する複数の Neutron ポートを作成します。
    neutron port-create network --name port --tenant-id project-id --mac-address vm-mac [--fixed-ip ip_address=vm-ip]
    注: 複数のポートを作成するには、Neutron ポートの作成コマンドを繰り返し実行する必要があります。同じ Neutron ネットワーク上に作成することも、異なる Neutron ネットワーク上に作成することもできます。このシナリオは、仮想マシンの vNIC 接続要件によって異なります。
    オプション 説明

    network

    仮想マシンを接続した Neutron ネットワークの名前を入力します。

    --name

    ポートの名前を入力します。

    --tenant-id

    ポートを作成する際に、プロジェクトの UUID を指定します。

    --mac-address

    手順 2d で記録した仮想マシンのネットワーク アダプタの MAC アドレスを入力します。

    --fixed-ip

    仮想マシンの IP アドレスを入力します。

    既存の IP アドレスを保持しない場合、または仮想マシンに IP アドレスが設定されていない場合は、このパラメータを省略できます。

  8. VMware Integrated OpenStack vAPI エンドポイントに接続します。

    エンドポイントは、デプロイのプライベート OpenStack エンドポイントにあります。

    dcli +server https://internal-vip:9449/api +i
  9. VMware Integrated OpenStack に仮想マシンをインポートします。
    1. 単一の vNIC を使用して仮想マシンを VIO にインポートするには、次のコマンドを使用します。
      com vmware vio vm unmanaged importvm --vm vm-moid --nic-net-id network-uuid --nic-port-id port-uuid [--tenant project-name] [--root-disk root-disk-path]
    2. 複数の vNIC を使用して仮想マシンを VIO にインポートするには、次のコマンドを使用します。
      com vmware vio vm unmanaged importvm --vm vm-moid --nics '[{"port_id": "port1_uuid"}, {"port_id": "port2_uuid"}]' " 
      例:
      com vmware vio vm unmanaged importvm --vm vm-88 --tenant admin --nics '[{"port_id": "41fa621e-89d6-493f-876c-ed052905042d"}, {"port_id": "e97c74e9-e930-4837-a6d2-33bd065d8e32"}]'
      注: インポート中に、ポートは対応する MAC アドレスを使用して vNIC に自動バインドできます。
    3. 複数の vCenter Server が構成された VIO に仮想マシンをインポートするには、次のコマンドを使用します。
      com vmware vio vm unmanaged importvm --vm vm-moid --nics '[{"port_id": "port1_uuid"}, {"port_id": "port2_uuid"}]' --vcenter vcenter_obj
      例:
      com vmware vio vm unmanaged importvm --vm vm-88 --tenant admin --nics '[{"port_id": "41fa621e-89d6-493f-876c-ed052905042d"}, {"port_id": "e97c74e9-e930-4837-a6d2-33bd065d8e32"}]' --vcenter vcenter2
      注:
      • kubectl -n openstack get vioshim vioadmin1 -o json | jq .status.processedSpec.conf.vioshim.DEFAULT.enabled_backends コマンドを実行すると、VIO 環境の vcenter_obj リストを取得できます。
      • --vcenter オプションを追加しなかった場合は、デフォルトの vCenter Server が管理 vCenter Server になります。
    オプション 説明

    --vm

    仮想マシンの管理対象オブジェクト ID (MOID) を入力します。

    com vmware vio vm unmanaged list コマンドを実行すると、非管理対象のすべての仮想マシンの MOID を確認できます。

    --nics

    仮想マシンの vNIC を表すキーと値のペアの配列を JSON 形式で入力します。

    --nic-net-id

    仮想マシンを接続した Neutron ネットワークの UUID を入力します。

    --nic-port-id

    仮想マシン用に作成したポートの UUID を入力します。

    --tenant

    仮想マシンをインポートする OpenStack プロジェクトを指定します。

    このパラメータを含めない場合、import_service プロジェクトがデフォルトで使用されます。

    --root-disk

    複数のディスクを持つ仮想マシンの場合は、ルート ディスクのデータストア パスを次の形式で指定します。--root-disk '[datastore1] dir/disk_1.vmdk'

    --vcenter

    VIO 環境内の vcenter obj name を入力します。

    --cinder-az

    ディスクをインポートする Cinder アベイラビリティ ゾーン

    --default-volume-type

    インポートされたボリュームのデフォルトのボリューム タイプ ID

    --flavor

    NOVA インスタンス メタデータに保存されているフレーバー ID

    --volume-type

    ディスク パスとボリューム タイプのマッピング情報

    注: コマンドを実行すると、DCLI により、 vCenter Server インスタンスの管理者認証情報の入力を求められます。ユーザー名とパスワードを毎回入力せずにすむように、これらの認証情報を保存することができます。
  10. ボリューム タイプについて、VMware Integrated OpenStack から必要な複数のボリューム タイプを作成し、ボリューム タイプの ID を記録します。
    openstack volume type create vol-type-ssd
  11. ボリューム タイプに応じて仮想マシンを VIO にインポートします。
    1. デフォルトのボリューム タイプを使用して仮想マシンをインポートします。

      たとえば、次のコマンドを使用できます。

      "com vmware vio vm unmanaged importvm --vm vm-183 --root-disk '[vdnetSharedStorage] 2nic-001/2nic-001.vmdk' --nics '[{"port_id":"5b8f18e7-f77b-457f-9618-4dcb5fccb833"}, {"port_id": "96a26fe8-1458-4a25-ba85-9a7dcaac88fe"}]' --default-volume-type '059c97ce-f5ef-47fa-8552-1c7eeeac058b' --flavor 0a3cf2a0-754c-4a64-9ce5-a9eb2ef34e0c --tenant admin"
    2. 各ディスクのボリューム タイプを指定して仮想マシンをインポートするには、次のコマンドを使用します。
      com vmware vio vm unmanaged importvm --vm vm-moid --nic -net-id network-uuid --nic -port-id port-uuid  --tenant project-name --volume-type 
      '[{"disk_path":"[datastore1] dir/disk_1.vmdk", "type_id": "volume-type1-uuid"}, {"disk_path":"[datastore1] dir/disk_2.vmdk", "type_id": "volume-type2-uuid"}]'  "
      例:
      com vmware vio vm unmanaged importvm --vm vm-109 --nic -net-id e10b0037-6705-46d8-a8c5-20fbfdc1598d --nic -port-id be9bb062-d7b3-47f7-8566-f7b1f1c6ce2d  --volume-type 
      [{"disk_path":"[datastore1] dir/disk_1.vmdk", "type_id": "096ef8ea-85ca-40f4-ba7f-9637f5fe95d2"}, {"disk_path":"[datastore1] dir/disk_2.vmdk", "type_id": "9969dd48-23dc-4010-a852-716f173fd59b"}]' --tenant admin
  12. フレーバー部分について、既存のフレーバー タイプの ID を記録します。
  13. フレーバー タイプに応じて仮想マシンを VIO にインポートします。
    com vmware vio vm unmanaged importvm --vm vm-moid --nic -net-id network-uuid --nic -port-id port-uuid --flavor flavor-uuid --tenant project-name
    例:
    com vmware vio vm unmanaged importvm --vm vm-109 --nic -net-id e10b0037-6705-46d8-a8c5-20fbfdc1598d --nic -port-id be9bb062-d7b3-47f7-8566-f7b1f1c6ce2d --flavor 256ac8d6-6fb1-4434-a007-bb6db6837e5a --tenant admin

結果

インポート後は、指定した仮想マシンが OpenStack デプロイに含まれ、OpenStack インスタンスとして管理できるようになります。