使用 VDDK 直接萃取功能,將資料從 遷移至 IBM Cloud 虛擬伺服器 vCenter
使用 VDDK 直接提取功能搭配 virt-v2v,將 VMware 虛擬機器從 vCenter 遷移至 IBM Cloud VPC 虛擬伺服器,並進行自動磁碟轉換。
架構元件
下表描述 VDDK Direct Extraction 移轉的架構元件。
| 架構元件 | 說明 |
|---|---|
| VMware 虛擬磁碟開發套件 (VDDK) | VMware 的 API 函式庫來存取虛擬磁碟。 您可以從 VMware 的開發者入口下載。 |
| 支援 VDDK 的 libguestfs | 使用 nbdkit VDDK 外掛程式建立的 virt-v2v 工具。 這需要 Red Hat Enterprise Linux (RHEL)( Ubuntu 的版本不包含 VDDK 支援)。 |
| 工作虛擬伺服器實例 | 基於 RHEL 的實例,已安裝 libguestfs-tools 和 VDDK。 |
| vCenter 存取 | 從 Worker 虛擬伺服器實例到 vCenter 和 vSphere 主機的網路連線,具有允許虛擬機器磁碟存取的憑證。 |
VDDK 直接提取遷移過程概述
以下步驟列出使用 VDDK Direct Extraction 進行遷移的流程。
-
部署 RHEL( Red Hat Enterprise Linux )工作節點虛擬伺服器實例
- RHEL 8 或 9 實例
- 安裝 libguestfs-tools:
dnf install libguestfs-tools - 網路連線至 vCenter
-
安裝 VMware VDDK
- 從 VMware 開發者入口網站下載 (需要 VMware 帳戶)
- 解壓縮至工作節點虛擬伺服器實例上的某個目錄(例如:
/opt/vmware-vix-disklib-distrib)
-
收集 vCenter 資訊
- vCenter 主機名稱/IP
- vCenter 憑證(domain\user 格式)
- 目標虛擬機器名稱
- 執行虛擬機器的 ESXi 主機 (透過 vCenter 發現 )
- vCenter 證書縮圖:
openssl s_client -connect vcenter.example.com:443 </dev/null 2>/dev/null | \ openssl x509 -fingerprint -noout -in /dev/stdin | \ cut -d= -f2 -
建立目標磁碟區
- 使用暫存虛擬伺服器實例方法(方法 2 步驟 2-4)
- 附加至工作節點虛擬伺服器執行個體
-
設定 /etc/hosts (經常需要)
- 如果 DNS 無法正確解析,請新增 vCenter 和 ESXi 主機
- VDDK 對於主機名稱解析可能很挑剔
-
使用 VDDK 執行 virt-v2v
- 建立密碼檔案
echo 'YourPasswordHere' > /tmp/vcenter-passwd chmod 600 /tmp/vcenter-passwd- 運行 virt-v2v
virt-v2v \ -ic 'vpx://vsphere.local\%5cAdministrator\@vcenter.example.com/Datacenter/Cluster/esxi-host.example.com?no_verify=1' \ 'VM-Name' \ -ip /tmp/vcenter-passwd \ -o disk \ -os /tmp \ -it vddk \ -io vddk-libdir=/opt/vmware-vix-disklib-distrib \ -io vddk-thumbprint=A2:41:6A:FA:81:CA:4B:06:AE:EB:C4:1B:0F:FE:23:22:D0:E8:89:02 \ --block-driver virtio-scsi參數: -
-ic:輸入連線字串 (vpx:// for vCenter ) -\%5c是 URL 在 domain\user 中為反斜杠編碼 -?no_verify=1跳過 SSL 證書驗證 -'VM-Name':虛擬機器在 vCenter --ip:密碼檔案路徑 --o disk -os /tmp:輸出到目錄 /tmp --it vddk:輸入傳輸 VDDK --io vddk-libdir:VDDK 安裝路徑 --io vddk-thumbprint: vCenter 憑證縮圖 ---block-driver virtio-scsi:適用於 Windows 虛擬機器 (第一個磁碟需要 SCSI 驅動程式) -
使用 Symlink Trick 直接連接到裝置
通常 virt-v2v 會寫入目錄中的檔案。 直接寫入區塊裝置:
# virt-v2v will create file named VM-Name-sda ln -fs /dev/vdb /tmp/VM-Name-sda # Run virt-v2v, it writes to symlink which points to device virt-v2v ... (same command as above) -
從磁碟區建立虛擬伺服器實例
- 與方法 2/3 相同:從 Worker 脫離,從現有磁碟區建立虛擬伺服器實體
設計優勢
下表列出了 VDDK Direct Extraction 移轉的設計優勢。
| 設計優勢 | 說明 |
|---|---|
| 單一指令遷移 | 一個 virt-v2v 調用就能完成所有工作 - 從 vCenter, 擷取、轉換格式、注入驅動程式、寫入目的地。 |
| 無匯出步驟 | 類似於即時網路傳輸遷移,消除匯出開銷。 |
| 適合自動化 | 工作後可輕鬆編寫腳本進行大規模遷移。 |
| 整合式轉型 | 驅動程式注入和作業系統準備會自動進行。 |
設計限制與局限性
下表列出了 VDDK Direct Extraction 遷移的約束和限制。
| 限制或約束 | 說明 |
|---|---|
| vCenter 僅 | 無法使用 VCFaaS (無法存取 vCenter API)。 |
| RHEL/ Ubuntu 工具的缺口 |
關鍵挑戰
您必須選擇其中一個:
或
|
| 複雜的先決條件 | 需要安裝 VDDK、vCenter API 存取、證書縮圖、精確連線字串。 比其他方法的設定更多。 |
| 網路需求 | 工作站虛擬伺服器實例必須直接連接到 vCenter 和 ESXi 主機。 可能需要新增防火牆規則。 |
VDDK Direct Extraction 遷移功能強大,適用於大規模的 vCenter 遷移,在許多虛擬機器上,前期的設定和工具建置投資都能獲得回報。 不建議用於小型遷移或 VCFaaS 環境。 如果您選擇這種方法,請預留時間進行工具設定和測試。