匯出

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

匯出開機磁碟

將開機磁碟從來源環境複製到將用來準備上傳至 PCA 之影像的公用程式伺服器。

您所使用的方法取決於來源 Hypervisor 和管理平台。例如,在 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 的公用程式主機。這可以是虛擬機器或裸機執行處理。

安裝 OCI CLI 以準備公用程式主機。請參閱 Oracle Private Cloud Appliance User Guide 的 1.2 小節,瞭解相關指示。

請使用下列指令來安裝 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 的虛擬磁碟
    • 使用 -f vdi 作為 Oracle VM VirtualBox 的 .vdi 檔案
    • -f vmdk 用於來自 VMware 的 .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 檔案類型,其中包含兩個元件:

  • 描述 JSON 格式影像的 image_metadata.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 檔案

使用此範例 image_metadata.json 檔案包含在 .oci 組合中以供上傳。

請檢閱下列 BIOS 和 UEFI 中繼資料檔案版本,並視需要加以使用。根據匯入的影像設定 operatingSystemoperatingSystemVersion 的來源環境值所決定的 BIOS 或 UEFI 版本。

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