导出

将所有工作负荷数据(存储、映像、文件)导出到外部主机,设置实用程序主机并转换引导磁盘。

导出引导磁盘

将引导磁盘从源环境复制到将用于准备映像以上载到 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 文件使用“原始磁盘”映像格式。

导出私有云设备 2.x 存储资料档案库

您可以选择从 Private Cloud Appliance 2.x 部署导出存储资料档案库。

专用云设备 2.4 上,存储系统信息库挂载到计算节点,默认情况下,计算节点位于 PCA 的专用网络上,没有与数据中心的预配置网络连接。在这种情况下,请执行以下操作:

  • You can scp the .img file to either of the two management nodes.
  • 或者,创建只读 Oracle VM 系统信息库导出到管理节点,然后将 scp 导出到外部主机。

Oracle Private Cloud Appliance 备份指南中摘录了以下步骤。此过程可用于批量导出 Oracle VM 存储系统信息库中的所有 VM:

  1. 在 Oracle VM Manager 中,选择服务器和 VM 选项卡。在服务器池下,展开服务器池名称以显示服务器名称,然后选择其中一个服务器。在管理面板中,从透视图下拉列表中选择资料档案库导出
  2. 单击 + 图标。在创建资料档案库导出对话框中,选择要导出的资料档案库。输入将挂载 NFS 共享的主机的 IP 地址或主机名,这是任一管理节点的地址。在 Options(选项)字段中,输入选项 ro,no_root_squash ,以确保进行只读挂载,从而使所有系统信息库文件可见。
  3. 单击确定并在资料档案库导出列表中查找导出。
  4. 复制 Repository Path 列中的值,并使用选定的计算节点作为 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. 找到要导出到专用云设备的 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 用户指南的第 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 虚拟机管理程序使用的开放标准 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
    • 对于来自 Oracle VM 和 PCA 2.x 的虚拟磁盘,使用 -f raw
    • 对 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,其中包含两个组件:

  • JSON 格式描述映像的 image_metadata.json 文件,以及您创建的名为 output.QCOW2 的实际磁盘映像。
  • image_metadata.json 文件介绍了映像的设置(BIOS 与 UEFI、虚拟设备的实现方式)以及它运行什么操作系统。

根据源选择 BIOS 或 UEFI 版本并更改操作系统说明。

Oracle Exalogic 映像将处于 BIOS 模式。

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

示例 image_metadata.json 文件

使用此 .oci 包中包含的 image_metadata.json 文件示例进行上载。

查看以下 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"
}