您可以將虛擬機器從 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) 匯入虛擬機器。

程序

  1. 新增包含所需虛擬機器的叢集做為 VMware Integrated OpenStack 部署中的運算叢集。
    如需相關指示,請參閱 將運算叢集新增至部署
  2. 記錄每個網路介面卡的 MAC 位址
    1. vSphere Client 中,開啟主機和叢集視圖。
    2. 若要匯入虛擬機器,請在每個虛擬機器按一下滑鼠右鍵,然後選取編輯設定...
    3. 展開網路介面卡設定,並記錄其 MAC 位址。
  3. 為虛擬機器建立一個暫存的不透明網路。
    • 對於 NSX-T 3.0,您可以建立區段。請參閱〈新增區段〉並記錄已新增的區段名稱。
    • 對於 NSX-T 3.2,您可以建立區段。請參閱〈新增區段〉並記錄已新增的區段識別碼。
      備註: 您可以從 NSX-T 3.2 的 管理程式 > 邏輯交換器視圖中識別區段識別碼。
  4. 透過 viocli update nova-compute 編輯 Nova 運算組態,新增 import_net_id 參數,並將其值設定為在步驟 5 中建立的區段的名稱或識別碼。
    viocli update nova-compute
    conf:
      nova_compute:
        vmware:
          import_net_id: name or id
    
    Note:
    For NSX-T 3.0, set its value to the name
    For NSX-T 3.2 or later, set its value to the id
  5. 建立多個使用虛擬機器 vNIC 之 MAC 位址的 Neutron 連接埠。
    可以建立新的 Neutron 網路,也可以使用現有的 Neutron 網路。
    neutron net-create NAME --tenant-id project-id 
    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 (optional)

    輸入虛擬機器的 IP 位址。

  6. 開啟工具箱並連線至 VMware Integrated OpenStack vAPI 端點。

    端點位於部署的私人 OpenStack 端點處。

    dcli +server https://internal-vip:9449/api +i
    備註: 當您執行命令時,DCLI 會提示您輸入 vCenter Server 執行個體的管理員認證。為避免每次都輸入使用者名稱和密碼,可以儲存這些認證。
  7. 將虛擬機器匯入 VMware Integrated OpenStack
    選項 說明

    --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

    在多 vCenter 的 VIO 環境中輸入 vcenter obj name

    --cinder-az

    用於匯入磁碟的 Cinder 可用性區域

    --default-volume-type

    已匯入磁碟區的預設磁碟區類型 ID

    --flavor

    儲存在 NOVA 執行個體中繼資料中的類型模板 ID

    --volume-type

    磁碟路徑和磁碟區類型對應資訊

    • 單一 vCenter 部署
    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. 若要將虛擬機器匯入設定了多個磁碟的 VIO,請使用以下命令:
      com vmware vio vm unmanaged importvm --vm vm-moid --root-disk 'root-disk-path' --nics '[{"port_id":"port1_uuid"}]'  --default-volume-type 'volumetye_uuid'
      備註: 磁碟區類型可以透過 openstack volume type create <name> 建立,每個磁碟可以指定不同或相同的磁碟區類型。
      例如:
      com vmware vio vm unmanaged importvm --vm vm-33574 --root-disk '[vsanDatastore (1)] ab61b663-a6ac-249f-6c81-bc97e1d51910/imp-002_2.vmdk' --nics '[{"port_id":"dae27a0d-b9b7-4801-ae1c-12333fe21241"}]'  --default-volume-type 'e35d1605-4808-48e2-a940-f5f66eb55b8c' --flavor 9a0248cd-3b51-4626-8f9a-0090fa4a146e --tenant admin --image bc16f0f8-518d-4fc8-a7fe-1314f55dd3cc
    • 多 vCenter 部署
    1. 若要將虛擬機器匯入具有多個 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。
    2. 若要將虛擬機器匯入設定了多個磁碟的 VIO 中,必須在不同的 vCenter 中使用不同的可用性區域名稱設定 Cinder 叢集,並指定 --cinder-az 選項。
      com vmware vio vm unmanaged importvm --vm vm-60 --tenant admin --nics '[{"port_id": "cc1bba10-1e9b-4818-baa9-6b416738bfb1"}]' --vcent
      er vcenter2 --flavor da10460e-7174-457b-86dd-f8b2b10a578a --root-disk '[vdnetSharedStorage] test-import7/test-import7_2.vmdk' --volume-type
       '[{"disk_path": "[vdnetSharedStorage] test-import7/test-import7.vmdk", "type_id": "3eaeee82-aae5-4803-a3a9-de6cd84e30db"}]' --cinder-aznova1
      
  8. 對於類型模板部分,記錄現有類型模板類型的識別碼。
  9. 根據類型模板類型將虛擬機器匯入 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 執行個體進行管理。