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

此程序適用於使用 VDSNSX Data Center for vSphere 網路的部署。對於 NSX-T Data Center 部署,請參閱使用 NSX-T Data Center 將虛擬機器匯入 VMware Integrated OpenStack

匯入的虛擬機器會成為 OpenStack 執行個體,但仍相異。

  • 如果虛擬機器具有多個磁碟,這些磁碟會匯入做為 Cinder 磁碟區。

  • 現有網路將做為存取權僅限於指定承租人的 portgroup 類型的提供者網路匯入。

  • 匯入具有特定網路支援的虛擬機器後,無法將相同的網路匯入不同的專案。

  • 在 DHCP 停用的情況下自動建立 Neutron 子網路。

  • Neutron 連接埠會根據虛擬機器上的網路介面卡的 IP 和 MAC 位址自動建立。

備註:

如果 DHCP 伺服器在租用更新期間無法維持相同的 IP 位址,則 OpenStack 中的執行個體資訊會顯示不正確的 IP 位址。若要避免此問題,請使用現有 DHCP 伺服器上的靜態 DHCP 繫結,並且不要在匯入的網路上執行新 OpenStack 執行個體。

使用 Data Center Command-Line Interface (DCLI) 在 OpenStack 管理伺服器 上匯入虛擬機器。

先決條件

確認您要匯入的虛擬機器位於同一個 vCenter Server 執行個體。

程序

  1. vSphere 中,新增包含所需虛擬機器的叢集做為 VMware Integrated OpenStack 部署中的運算叢集。如需相關指示,請參閱將運算叢集新增至 OpenStack 部署
  2. viouser 身分登入 OpenStack 管理伺服器
  3. 如果您想要防止重新放置或重新命名已匯入的虛擬機器,請更新您的部署組態。
    1. 如果您的部署未使用 custom.yml 檔案,請將範本 custom.yml 檔案複製到 /opt/vmware/vio/custom 目錄。
      sudo mkdir -p /opt/vmware/vio/custom
      sudo cp /var/lib/vio/ansible/custom/custom.yml.sample /opt/vmware/vio/custom/custom.yml
    2. 在文字編輯器中開啟 /opt/vmware/vio/custom/custom.yml 檔案。
    3. 取消 nova_import_vm_relocate 參數的註解,並將其值設定為 false
    4. 部署已更新的組態。
      sudo viocli deployment configure

      部署組態會暫時中斷 OpenStack 服務。

  4. 連線到 VMware Integrated OpenStack vAPI 端點。
    dcli +server https://mgmt-server-ip:9449/api +i

    如果您無法連線至伺服器,請參閱DCLI 無法連線至伺服器

  5. 將未受管理的虛擬機器匯入 VMware Integrated OpenStack
    備註:

    當您執行命令時,DCLI 會提示您輸入 vCenter Server 執行個體的管理員認證。您可以儲存這些認證,以避免每次都輸入使用者名稱和密碼。

    • 執行下列命令以匯入所有未受管理的虛擬機器:

      com vmware vio vm unmanaged importall --cluster cluster-name [--tenant-mapping {FOLDER | RESOURCE_POOL} [--root-folder root-folder | --root-resource-pool root-resource-pool]]

      選項

      說明

      --cluster

      輸入包含要匯入的虛擬機器的運算叢集。

      --tenant-mapping {FOLDER | RESOURCE_POOL}

      根據已匯入的虛擬機器在資料夾或資源集區中的位置,指定是否將其對應至 OpenStack 專案。

      如果不包括此參數,匯入的所有虛擬機器預設會變為 import_service 專案中的執行個體。

      --root-folder ROOT_FOLDER

      如果您已為 --tenant-mapping 參數指定 FOLDER,可以提供包含要匯入之虛擬機器的根資料夾名稱。

      指定資料夾或其任何子資料夾中的所有虛擬機器都將做為執行個體匯入到 OpenStack 專案,該專案的名稱與它們所在的資料夾相同。

      備註:

      如果指定 --tenant-mapping FOLDER 但未指定 --root-folder,則依預設會使用叢集中最上層資料夾的名稱。

      --root-resource-pool ROOT_RESOURCE_POOL

      如果您已為 --tenant-mapping 參數指定 RESOURCE_POOL,可以提供包含要匯入之虛擬機器的根資源集區名稱。

      指定資源集區或其任何子資源集區中的所有虛擬機器都將做為執行個體匯入到 OpenStack 專案,該專案的名稱與它們所在的資源集區相同。

    • 執行下列命令以匯入指定的虛擬機器:

      com vmware vio vm unmanaged importvm --vm vm-id [--tenant project-name] [--nic-mac-address nic-mac --nic-ipv4-address nic-ip] [--root-disk root-disk-path] [--nics specifications]

      選項

      說明

      --vm

      輸入您要匯入的虛擬機器的識別碼。

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

      --tenant

      指定您要匯入虛擬機器的 OpenStack 專案。

      如果不包括此參數,預設會使用 import_service 專案。

      --nic-mac-address

      輸入虛擬機器上的網路介面卡的 MAC 位址。

      如果不包括此參數,匯入程序會嘗試自動探索 MAC 和 IP 位址。

      備註:

      如果包括此參數,則必須同時包括 nic_ipv4_address 參數。

      --nic-ipv4-address

      輸入虛擬機器上的網路介面卡的 IP 位址和首碼。以 CIDR 標記法輸入值 (例如,10.10.1.1/24)。

      此參數必須與 --nic-mac-address 參數搭配使用。

      --root-disk

      對於具有多個磁碟的虛擬機器,以下列格式指定根磁碟資料存放區路徑:--root-disk ‘[datastore1] foo/foo_1.vmdk’

      --nics

      對於具有多個 NIC 的虛擬機器,以 JSON 格式指定每個 NIC 的 MAC 和 IP 位址。

      使用下列索引鍵-值配對:

      • mac_address:採用標準格式的 NIC 的 MAC 位址

      • ipv4_address:以 CIDR 標記法表示的 IPv4 位址

      例如:

      --nics '[{"mac_address": "00:50:56:9a:f5:7b", "ipv4_address": "10.10.1.1/24"}, {"mac_address": "00:50:56:9a:ee:be", "ipv4_address": "10.10.2.1/24"}]'