匯出

將所有工作負載資料 (儲存體、影像、檔案) 匯出至外部主機、設定公用程式主機,然後轉換開機磁碟。

匯出開機磁碟

將開機磁碟從來源環境複製到公用程式伺服器,該伺服器將用來準備要上傳到 PCA 的映像檔。

您使用的方法取決於來源虛擬機器管理程式與管理平台。例如,在 Oracle VM 或 PCA 2.4 上,從 VM 的 vm.cfg 檔案顯示的儲存體儲存區域複製開機磁碟的 .img 檔案。在運算節點或 Oracle VM Server (OVS) 上執行命令。例如:

cd /OVS/Repositories/0004fb00000300007b2cd14ca0d48e8b/VirtualDisks
scp 0004fb0000120000fcd80512881d4979.img
utilityhost:/data/0004fb0000120000fcd80512881d4979.raw

在此範例中,輸出檔以副檔名 .raw 重新命名,這是選擇性的變更,表示 Oracle VM .img 檔案使用「原始磁碟」影像格式。

匯出 Private Cloud Appliance 2.x 儲存儲存區域

您可以選擇從 Private Cloud Appliance 2.x 部署匯出儲存儲存區域。

Private Cloud Appliance 2.4 上,儲存體儲存區域預設會掛載至運算節點,此節點在 PCA 的專用網路上,不會預先設定資料中心的網路連線。此例中為:

  • 您可以將 scp .img 檔案設為兩個管理節點之一。
  • 或者,建立唯讀的 Oracle VM 儲存區域匯出至管理節點,然後將 scp 匯出至外部主機。

下列步驟摘錄自 Oracle Private Cloud Appliance Backup Guide 。此處理作業可用來大量匯出 Oracle VM 儲存體儲存區域中的所有 VM:

  1. 在 Oracle VM Manager 中,選取伺服器和 VM 頁籤。在伺服器集區下,展開伺服器集區名稱以顯示伺服器名稱,然後選取其中一個伺服器。在管理面板的觀點下拉式清單中,選取儲存庫匯出
  2. 按一下 + 圖示。在建立儲存區域匯出對話方塊中,選取要匯出的儲存區域。輸入將掛載 NFS 共用之主機的 IP 位址或主機名稱 (管理節點的任一位址)。在選項欄位中,輸入 ro,no_root_squash 選項以確保唯讀的掛載能夠讓所有儲存區域檔案都顯現。
  3. 按一下確定,然後在「儲存區域匯出」清單中尋找匯出。
  4. 複製儲存區域路徑資料欄中的值,並使用選取的運算節點作為 NFS 伺服器發出掛載命令。管理節點將具有儲存儲存區域的唯讀檢視,您可以直接從儲存區域的 VirtualDisks 目錄複製磁碟映像檔,而不需要先從運算節點複製 scp。例如:
    # mount 192.168.4.5:/OVS/Repositories/0004fb0000030000cc1d0d9dfba208d0/ /mnt
    # ls -la /mnt
    total 2077 
    drwxr-xr-x   8 root root  3896 Aug 10  2019 .
    dr-xr-xr-x. 22 root root  4096 Jan  5 20:10 ..
    drwx------   9 root root  3896 Jan 24 14:10 Assemblies
    drwx------   2 root root  3896 Dec  9 14:23 ISOs
    drwxr-xr-x   2 root root  3896 Aug  8  2019 lost+found
    -rw-------   1 root root 15014 Mar  9 11:48 .ovsmeta
    -rw-------   1 root root   151 Sep 10  2020 .ovsrepo
    drwx------  11 root root  3896 Nov 25 16:12 Templates
    drwx------   2 root root  8192 Mar  9 11:48 VirtualDisks
    drwx------  53 root root  3896 Mar  9 11:48 VirtualMachines

    您可以最佳化掛載選項。例如:

    mount -o ro,bg,hard,rsize=524288,wsize=524288,nfsvers=3,tcp 192.168.4.5:/OVS/Repositories/0004fb0000030000cc1d0d9dfba208d0 /mnt

尋找及匯出 VM VirtualBox 磁碟映像檔

Oracle VM VirtualBox 通常會將磁碟影像儲存在子目錄 VirtualBox VMs 中,且名稱與 VM 相同。

  1. 來自使用者介面的 VM 資訊提供完整路徑:
    $ vboxmanage showvminfo "Solaris 11.4"|more
    Name: Solaris 11.4
    Groups: /
    Guest OS: Oracle Solaris 11 (64-bit)
    UUID: 3a4ce795-d6b1-44f8-a16b-8b7fb0fbb4a8
    Config file: /Users/jeff/VirtualBox VMs/Solaris 11.4/Solaris 11.4.vbox
    Snapshot folder: /Users/jeff/VirtualBox VMs/Solaris 11.4/Snapshots
    Log folder: /Users/jeff/VirtualBox VMs/Solaris 11.4/Logs
  2. 請將 VM 啟動磁碟的 .vdi.vmdk 磁碟影像,以及公用事業主機的 scp 放在該資料夾內。

尋找及匯出 KVM 磁碟映像檔

藉由發出下列指令,即可找到虛擬機器磁碟映像檔:

  1. 清單磁碟影像:
    $ virsh vol-list default
    Name Path
    ------------------------------------------------------------------------------
    guest-ol8-minimal-serial.qcow2 /home/admin/.local/share/libvirt/images/guest-ol8-minimalserial.qcow2
    guest-ol8-minimal.qcow2 /home/admin/.local/share/libvirt/images/guest-ol8-minimal.qcow2
    guest-ol8.qcow2 /home/admin/.local/share/libvirt/images/guest-ol8.qcow2
    guest-ovsx54-ol7.qcow2 /home/admin/.local/share/libvirt/images/guest-ovsx54-ol7.qcow2 
    juniper-kvm-ol7.qcow2 /home/admin/.local/share/libvirt/images/juniper-kvm-ol7.qcow2
  2. 尋找要匯出至 Private Cloud Appliance 的 VM 磁碟映像檔,以及指向公用程式主機的 scp

尋找並匯出 VMware 磁碟影像

VMware 映像檔可匯出至「虛擬設備」,虛擬設備實際上是一個包含磁碟映像檔的 tar 檔案。

使用類似的程序來取得虛擬設備,然後使用 tar 指令從 .ova 檔案擷取 .vmdk 檔案,並複製到公用程式主機。

壓縮磁碟映像檔以加速匯出

磁碟映像檔太大,將其複製到其他主機會需要很長的時間。如果使用壓縮,可能會更快執行,尤其是稀疏磁碟影像。

您可以選擇使用 gziplzop 等指令壓縮磁碟影像檔案,以減少複製到公用程式主機的時間。例如,使用 lzop 並將輸出傳送至 scp

lzop -1 < 0004fb0000120000fcd80512881d4979.img | ssh utilityhost 'lzop -d > /data/0004fb0000120000fcd80512881d4979.raw' 

在這種情況下,我們使用 lzop 進行壓縮,因為可能有快速網路,所以壓縮速度比壓縮率還要重要。如果您使用的網路速度較慢,可以選擇使用 gzipbzip2 等其他方法:

gzip 0004fb00001200008190ce0329fdacdf.img
scp 0004fb00001200008190ce0329fdacdf.img.gz utilityhost:/data/

這些方法全部都無效,或完全不使用壓縮,取決於您的偏好設定。

設定公用程式主機

建立執行 Oracle Linux 的公用程式主機。這可以是虛擬機器或裸機執行處理。

Prepare the utility host by installing the OCI CLI. See the section 1.2 of the Oracle Private Cloud Appliance User Guide for instructions.

請使用下列指令來安裝 qemu-imgvirt-sparsify。此範例假設 Oracle Linux 7 主機:

$ sudo yum upgrade 
$ sudo yum-config-manager --enable ol7_kvm_utils 
$ sudo yum install qemu-img libguestfs-tools

轉換啟動磁碟

您可能需要將開機磁碟轉換成 PCA Hypervisor 所使用的開放標準 qcow2 格式。

注意:

建議 (但並非嚴格) 轉換已經使用 vmdkqcow2 格式的磁碟影像,並將它們封裝在 .oci 檔案中。.oci 檔案包含 qcow2 格式的磁碟影像和影像描述資料。這樣可確保提供磁碟內容給影像的正確描述資料。
  1. 您可以轉換可存取 OCI CLI、qemu-img 指令和其他可選公用程式之公用程式主機上的開機磁碟。
  2. 處理準備用於 PCA 的開機磁碟上的開機磁碟。這是 Exalogic 或 PCA 2.x 上 Oracle VM 之磁碟映像檔的必要步驟。

    注意:

    對於 .vmdk 格式 (VMware 或 Oracle VirtualBox) 的磁碟映像檔,此步驟是選擇性的。不需要轉換 KVM 中 qcow2 格式的檔案。
  3. 在公用程式節點上,輸入如下所示的指令,在磁碟影像檔的實際檔案名稱中替代:
    $ qemu-img convert -f raw -O qcow2 0004fb0000120000fcd80512881d4979.raw output.QCOW2
    $ qemu-img convert -f vdi -O qcow2 ol8.vdi output.QCOW
    $ qemu-img convert -f vmdk -O qcow2 myVMwareVM.vmdk output.QCOW2
    • 使用 -f raw 作為 Oracle VM 和 PCA 2.x 的虛擬磁碟
    • 在 Oracle VM VirtualBox 的 .vdi 檔案中使用 -f vdi
    • 對來自 VMware 的 .vmdk 影像使用 -f vmdk

    注意:

    1. 您必須將輸出檔案命名為 output.QCOW2
    2. 視映像檔大小和系統速度而定,qemu-img 指令可能需要花費很長的時間才能執行。您可以使用 "-p" 旗標來以百分比顯示 (nn.nn/100% 格式的進度。

    建議但不要轉換 .vmdk 映像檔,因為 Private Cloud Appliance 可以使用該檔案類型。請參閱本解決方案後面的「移轉」區段。

  4. 您可以使用 virt-sparsify 工具來減少磁碟影像的大小。此工具適用於許多檔案系統:ext2/3/4。xfs、btrfs、NTFS、LVM,可排除檔案並非所有的磁碟區塊,以減少稀疏磁碟影像大小。減少量會根據匯出前磁碟影像的內容而有所不同。根據您的公用程式環境,您可能必須在執行命令之前發出 export LIBGUESTFS_BACKEND=direct
    $ virt-sparsify --in-place output.QCOW2 

準備要匯入的 OCI 檔案類型

Private Cloud Appliance X9-2 映像檔和 OCI 映像檔使用含有兩個元件的檔案類型 .oci

  • 一個 image_metadata.json 檔案,以 JSON 格式描述影像,以及您建立的實際名為 output.QCOW2 的磁碟影像。
  • image_metadata.json 檔案說明影像的設定值 (BIOS vs。UEFI、虛擬裝置導入方式) 及其執行的作業系統。

根據來源選取 BIOS 或 UEFI 版本,然後變更作業系統說明。

Oracle Exalogic 映像檔將會處於 BIOS 模式。

$ tar zcf MyImage.oci image_metadata.json output.QCOW2

範例 image_metadata.json 檔案

請使用此範例 .oci 組合中包含的 image_metadata.json 檔案來進行上傳。

請審閱下列 BIOS 和 UEFI 描述資料檔案版本,並盡可能使用相關內容。根據匯入的影像,將 BIOS 或 UEFI 版本設為由 operatingSystemoperatingSystemVersion 的來源環境值所決定。

BIOS 影像


{
   "version": 2,
   "externalLaunchOptions": {
       "firmware": "BIOS",
       "networkType": "PARAVIRTUALIZED",
       "bootVolumeType": "PARAVIRTUALIZED",
       "remoteDataVolumeType": "PARAVIRTUALIZED",
       "localDataVolumeType": "PARAVIRTUALIZED",
       "launchOptionsSource": "CUSTOM",
       "pvAttachmentVersion": 1,
       "pvEncryptionInTransitEnabled": false,
       "consistentVolumeNamingEnabled": false
    },
    "imageCapabilityData": null,
    "imageCapsFormatVersion": null,
    "operatingSystem": "Oracle Linux",
    "operatingSystemVersion": "8.5"
}

UEFI 影像


{
    "version": 2,
    "externalLaunchOptions": {
        "firmware": "UEFI_64",
        "networkType": "PARAVIRTUALIZED",
        "bootVolumeType": "PARAVIRTUALIZED",
        "remoteDataVolumeType": "PARAVIRTUALIZED",
        "localDataVolumeType": "PARAVIRTUALIZED",
        "launchOptionsSource": "CUSTOM",
        "pvAttachmentVersion": 1,
        "pvEncryptionInTransitEnabled": false,
        "consistentVolumeNamingEnabled": false
     },
     "imageCapabilityData": null,
     "imageCapsFormatVersion": null,
     "operatingSystem": "Oracle Linux",
     "operatingSystemVersion": "7.9"
}