执行导出前更新的平移

通过更改原始源系统上的 VM,为专用云设备准备 VM 是明智的,有时是必要的。对源系统的克隆(而非原始 VM)执行以下导出前更新步骤。

注意:

在源系统上的生产映像克隆上运行。这将保护生产环境,并在需要重复该过程时提供已知回退。使用源系统提供的方法克隆 VM。

例如,在 Oracle VM 和 Private Cloud Appliance 2.4 中,在 Servers and VMs 选项卡中选择 VM,右键单击并选择 Clone 。在所有情况下,停止源 VM 以确保克隆具有一致的磁盘内容。

对操作系统当前级别的补丁程序

将克隆 VM 更新到同一 OS 的当前补丁程序级别。

这些说明取决于来宾操作系统。例如,yum update 到 Oracle Linux 7 或 8 的最新修补程序级别,或者 Solaris 11.4 上的 pkg update 或 Microsoft Windows 上的 Windows Update。打补丁后重新引导,以确保在打补丁后正常操作。

这可确保最新的设备驱动程序可用,并防止最近关闭的错误和安全风险暴露。

注:

如果您当前位于 Oracle Linux 6 或更低版本,Oracle 建议采取以下措施:

  • 移至当前 Oracle Linux 版本以确保安装了适用于 PCA X9-2 的适当设备驱动程序,并包含 bug 修复和增强功能。
  • 执行全新的 OS 安装,而不是升降装置和班次。

将虚拟网络设备更改为 DHCP

来宾 VM 的虚拟网络在私有云一体机上安装后可能需要多次更改才能工作。

私有云一体机使用 DHCP 为新实例提供网络地址。由于可以从同一映像克隆多个实例,因此在创建每个实例时分配新的 MAC 和 IP 地址很有意义。

注:

  1. 创建实例时 DHCP 获取的 IP 地址是稳定的。
  2. 实例可见的 IP 地址是虚拟云网络 (VCN) 上的专用 IP 地址。使用网络地址转换 (Network Address Translation,NAT) 层从私有云一体机外部访问实例。要查看专用和公共 IP 地址,请参见 Compute Enclave 的实例说明中的 "Network"(网络)选项卡。

在 Linux 上,编辑文件 /etc/sysconfig/network-scripts/ifcfg-NICNAME 并删除 HWADDRMACADDR 行并设置 BOOTPROTO="dhcp"。或者,您可以使用随分发一起提供的图形工具。此外,删除文件 /etc/udev/rules.d/70-persistent-ipoib.rules/etc/udev/rules.d/70-persistentnet.rules(如果存在)。这些文件包含与新实例不匹配的 MAC 地址。如果需要,会自动重新创建它们。

删除特定于 Exalogic 的工具和驱动程序

按照以下说明删除 Exalogic OS 组件。

  1. 删除与 Exalogic infinibus-N.N.x86_64 一起使用的 InfiniBand RPM。
  2. 删除或移走 Infiniband 设备的网络定义文件:
    # cd /mnt/sysimage/etc/sysconfig/network-scripts
    # rm ifcfg-ib0.0004; rm ifcfg-ib1.0004
  3. 删除 OFED 组件:
    # /usr/sbin/ofed_uninstall.sh --force
  4. 关闭并重新引导。
  5. 建立虚拟机并根据数据中心标准配置虚拟网络,创建 /etc/sysconfig/network-scripts/ifcfg-eth* 文件以启动 VM 的公共和专用网络。它们应该不同于 Exalogic VM,以允许并行测试。

如果使用的是 WebLogic,请连接到 Oracle WebLogic Server 控制台,并通过反转用于为 Exalogic 启用它们的步骤(特别是禁用套接字直接协议 (Socket Direct Protocol,SDP)),关闭 Exalogic 增强功能。这是 Exalogic 的最佳实践,不支持 Private Cloud Appliance 。请参阅了解更多部分中链接的 Oracle Fusion Middleware Enterprise Deployment for Exalogic 指南。

Exalogic VM 与 hostnameIP address 相同时,您可以停止 VM 并为应用程序集群的其他成员克隆 VM。依次引导每个 VM 以更改其 hostnameaddress,使其别具特色。

安装适用于 Private Cloud Appliance 的 Linux 内核和驱动程序功能

操作系统可能需要在引导时显式包含 VirtIO 设备驱动程序。

注:

如果源虚拟机管理程序是 KVM,那么您就已经拥有合适的 私有云一体机驱动程序。
  1. 您可以选择在运行 dracut 之前备份内核。例如:mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
  2. 使用 dracut 命令将设备驱动程序添加到 initramfs。例如:dracut --force -Ndracut -N --regenerateall
    • -N 选项禁用仅主机模式,该模式仅为当前主机创建 initramfs。此选项会生成一般映像。
    • 如果您运行在没有 -N 选项的非常旧版本的 Linux 上,请专门列出 Private Cloud Appliance X9-2 所需的内核模块。例如:dracut --add-drivers 'sg sd_mod virtio virtio_pci virtio_ring virtio_scsi'
    • --regenerate-all 选项为 /boot 中的所有内核版本重新生成 initramfs,而不仅仅是当前引导的版本。这对于 Oracle Linux 有助于确保 UEK 和 RHCK 内核都能获得所需的驱动程序,无论当前引导的是哪个驱动程序。
    • 选项 --force 与当前已存在 initramfs 文件重叠。

您可以在 /boot 中查看更新的 initramfs 文件。由于添加了设备驱动程序,它们将比以前的版本大。

如果省略 dracut 步骤,则首次在 Private Cloud Appliance X9-2 上启动实例时可以执行该步骤。

  1. 登录到计算云
  2. 选择实例并连接到控制台。
  3. Grub 菜单中选择挽救线。
  4. 如果在选择挽救引导之前引导失败,请从计算云对实例运行重置操作。
  5. 实例引导后,登录并运行 dracut 命令。

(可选)安装初始化工具包

建议您安装 cloud-init (Linux) 工具包。

这些工具包是用于跨平台实例初始化的行业标准、与供应商无关的方法。它们有助于确定云实例在引导期间运行,从云中读取提供的任何 metadata,并相应地初始化系统。它们能够从基于口令的 ssh 转换到使用密钥对交换。有关详细信息,请参阅 Oracle Private Cloud Appliance 用户指南中的第 6.4 部分。

在 Oracle Linux 上,安装适合 Linux 分发的 cloud-initoci-utils 软件包。对于 Oracle Linux 8,请使用以下命令:

# dnf install yum-utils
# yum-config-manager --enable ol8_addons
# dnf install cloud-init oci-utils

然后,使用引用的引用中所述的密钥对交换,将 ssh 与不带口令的 userid opc 一起进入启动的实例。

准备启动和文件系统

该映像仅包含引导磁盘,因此请禁用所有需要其他磁盘的引导时服务和应用程序。

在以后重新创建非引导文件系统的引用之前,必须将其删除。如果引导映像引用了其他交换磁盘、/tmp/var/logs,则必须将其临时移动到引导卷。

在 Linux 上执行以下步骤:

  1. 编辑 /etc/fstab
  2. 删除未在引导磁盘上的文件系统挂载的条目。
  3. 确保设备名称(例如 /dev/xvda)未直接引用任何引导磁盘分区。
  4. 请改用 LABEL=UUID=
  5. 如果您参考引导磁盘,则无需修改对 LVM 设备的引用。
  6. 运行 pvs 命令以确保唯一的 LVM 物理卷 (Physical Volume,PV) 是引导卷。
  7. 如果卷组 (VG) 位于其他物理卷上,则应从 /etc/fstab 中对其进行注释。

如果逻辑卷同时包含引导磁盘和其他磁盘,则迁移更加复杂,超出此解决方案的范围。

禁用引导时启动并需要完全配置的任何服务或应用程序,因为在 Private Cloud Appliance X9-2 上初始启动将没有完整的操作环境。