您可以將虛擬機器從 vSphere 匯入 VMware Integrated OpenStack 部署,並像管理 OpenStack 執行個體一樣管理它們。

此程序適用於使用 NSX-T Data Center 網路的部署。對於 VDSNSX 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 管理指南》中的〈建立邏輯交換器〉,然後執行下列步驟以取得邏輯交換器識別碼。
      1. 邏輯交換器資料行中,按一下已建立的交換器的名稱。
      2. 記錄概觀資料行中顯示的交換器的識別碼。
    • 對於 NSX-T 3.0,您可以建立區段。依照《NSX-T Data Center 管理指南》之〈新增區段〉中的指示進行操作,並記錄已新增的區段名稱。
    • 對於 NSX-T 3.2,您可以建立區段。依照《NSX-T Data Center 管理指南》之〈新增區段〉中的指示進行操作,並記錄已新增的區段識別碼。
      備註: 您可以從 NSX-T 3.2 功能表的 管理程式 > 邏輯交換器視圖中識別區段識別碼。
  6. 透過 viocli update nova-compute 編輯 Nova 運算組態,新增 import_net_id 參數,並將其值設定為在步驟 5 中建立的區段的名稱或識別碼。
    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 port create 命令。可以在同一個 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 的 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 為管理 vCenter。
    選項 說明

    --vm

    輸入虛擬機器的受管理物件識別碼 (MOID)。

    您可以透過執行 com vmware vio vm unmanaged list 命令,檢視所有未受管理的虛擬機器的 MOID。

    --nics

    以 JSON 格式輸入虛擬機器 vNIC 的索引鍵-值配對陣列。

    --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 建立所需的多個磁碟區類型,並記錄磁碟區類型的識別碼。
    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. 對於類型模板部分,記錄現有類型模板類型的識別碼。
  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 執行個體進行管理。