导出

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

导出引导磁盘

将引导磁盘从源环境复制到将用于准备要上载到 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 的专用网络上,并且与数据中心没有预配置的网络连接。在这种情况下,请执行以下操作:

  • 可以将 scp 文件 .img 传递给两个管理节点之一。
  • 或者,创建对管理节点的只读 Oracle VM 系统信息库导出,然后将 scp 导出到外部主机。

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

  1. 在 Oracle VM Manager 中,选择服务器和 VM 选项卡。在服务器池下,展开服务器池名称以显示服务器名称,然后选择其中一个服务器。在管理面板中,从 Perspective(视角)下拉列表中选择 Repository Exports(存储库导出)
  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. 找到要导出到专用云设备的 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 的虚拟磁盘使用 -f raw 2.x
    • -f vdi 用于 Oracle VM VirtualBox 中的 .vdi 文件
    • 对来自 VMware 的 .vmdk 映像使用 -f vmdk

    注:

    1. 必须将输出文件命名为 output.QCOW2
    2. qemu-img 命令可能需要很长时间才能运行,具体取决于映像文件大小和系统速度。可以使用标志 "-p" 以 (nn.nn/100% 格式显示百分比形式的进度。

    建议但不需要转换 .vmdk 映像,因为私有云一体机可以使用该文件类型。请参阅此解决方案后面的“迁移”部分。

  4. 您可以使用 virt-sparsify 工具减小磁盘映像的大小。此工具适用于许多文件系统:ext2/3/4。xfs、btrfs、NTFS、LVM。通过消除不归文件所有的磁盘块来减少稀疏磁盘映像大小。缩减量因导出之前磁盘映像的内容而异。根据您的实用程序环境,您可能还必须在运行以下命令之前发出 export LIBGUESTFS_BACKEND=direct
    $ virt-sparsify --in-place output.QCOW2 

准备要导入的 OCI 文件类型

私有云一体机 X9-2 映像和 OCI 映像使用文件类型 .oci,该文件包含两个组件:

  • image_metadata.json 文件,以 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"
}