您可以將虛擬機器從 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 執行個體中。
程序
- 新增包含所需虛擬機器的叢集做為 VMware Integrated OpenStack 部署中的運算叢集。
如需相關指示,請參閱 將運算叢集新增至部署。
- 將虛擬機器連線到 Neutron 網路。
在此程序中,您可以使用提供者網路或承租人網路。
- 在 vSphere Client 中,開啟主機和叢集視圖。
- 若要匯入虛擬機器,請在每個虛擬機器按一下滑鼠右鍵,然後選取編輯設定...。
- 從網路介面卡旁邊的下拉式功能表中選取 Neutron 網路。
- 展開網路介面卡設定,並記錄其 MAC 位址。
- 匯入虛擬機器後,若要將虛擬機器的多個 vNIC 連線到不同的 Neutron 網路,必須從 VMware Integrated OpenStack 建立相應的 Neutron 網路。
- 將未匯入的虛擬機器 vNIC 從 vCenter Server 連線到相應的 Neutron 網路 (NSXT 區段)。
備註: 可以將多個 vNIC 連線到同一個 Neutron 網路,也可以連線到不同的 Neutron 網路。
- 為虛擬機器建立一個暫存的不透明網路。
- 對於 NSX-T 2.5,您可以建立邏輯交換器。請參閱《NSX-T Data Center 管理指南》中的〈建立邏輯交換器〉,然後執行下列步驟以取得邏輯交換器識別碼。
- 在邏輯交換器資料行中,按一下已建立的交換器的名稱。
- 記錄概觀資料行中顯示的交換器的識別碼。
- 對於 NSX-T 3.0,您可以建立區段。依照《NSX-T Data Center 管理指南》之〈新增區段〉中的指示進行操作,並記錄已新增的區段名稱。
- 對於 NSX-T 3.2,您可以建立區段。依照《NSX-T Data Center 管理指南》之〈新增區段〉中的指示進行操作,並記錄已新增的區段識別碼。
備註: 您可以從 NSX-T 3.2 功能表的 管理程式 > 邏輯交換器視圖中識別區段識別碼。
- 對於 NSX-T 2.5,您可以建立邏輯交換器。請參閱《NSX-T Data Center 管理指南》中的〈建立邏輯交換器〉,然後執行下列步驟以取得邏輯交換器識別碼。
- 透過
viocli update nova-compute
編輯 Nova 運算組態,新增 import_net_id 參數,並將其值設定為在步驟 5 中建立的區段的名稱或識別碼。viocli update nova-compute
- 建立多個使用虛擬機器 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 位址,則可以省略此參數。
- 連線到 VMware Integrated OpenStack vAPI 端點。
端點位於部署的私人 OpenStack 端點處。
dcli +server https://internal-vip:9449/api +i
- 將虛擬機器匯入 VMware Integrated OpenStack。
- 若要使用單一 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]
- 若要使用多個 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。 - 若要將虛擬機器匯入設定了多個 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。
- 可透過執行命令 kubectl -n openstack get vioshim vioadmin1 -o json | jq .status.processedSpec.conf.vioshim.DEFAULT.enabled_backends 取得 VIO 環境中的
選項 說明 --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 執行個體的管理員認證。為避免每次都輸入使用者名稱和密碼,可以儲存這些認證。 - 若要使用單一 vNIC 將虛擬機器匯入 VIO,請使用以下命令:
- 對於磁碟區類型,從 VMware Integrated OpenStack 建立所需的多個磁碟區類型,並記錄磁碟區類型的識別碼。
openstack volume type create vol-type-ssd
- 根據磁碟區類型將虛擬機器匯入 VIO。
- 使用預設磁碟區類型匯入虛擬機器。
例如,可以使用以下命令:
"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"
- 若要透過為每個磁碟指定磁碟區類型匯入虛擬機器,請使用以下命令:
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
- 使用預設磁碟區類型匯入虛擬機器。
- 對於類型模板部分,記錄現有類型模板類型的識別碼。
- 根據類型模板類型將虛擬機器匯入 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