系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

第 24 章 Solaris 10 9/10:将物理 Solaris 系统迁移到一个区域(任务)

可以使用“物理转换为虚拟 (physical-to-virtual, P2V)”功能将现有 Solaris 系统直接迁移到目标系统上的本地区域。

访问要迁移的系统

根据原始系统所执行的服务,全局管理员可能需要在安装区域后手动自定义区域。例如,分配给区域的权限可能需要进行修改。此操作无法自动完成。此外,由于所有系统服务都不在区域内工作,因此并非每个物理系统都是迁移到区域的良好候选。

请注意,如果要通过 P2V 安装的系统映像比目标主机操作系统的版本新,安装将会失败。

Procedure如何收集系统信息

从源系统收集所需的信息。

  1. 获取 hostname


    # hostname
    
  2. 获取 hostid


    # hostid
    

    另请参见主机 ID 仿真

  3. 获取 root 用户口令。

  4. 查看系统中正在运行的软件:


    # ps -eaf
    
  5. 检查系统网络配置:


    # ifconfig -a
    
  6. 查看使用的存储,例如查看 /etc/vfstab 的内容。

  7. 查看已被占用的本地磁盘存储量,该值可确定归档文件的大小:


    # df -k
    
  8. 确定系统中的软件包和修补程序:有关更多信息,请参见 pkginfo(1)

  9. 检查 /etc/system 的内容。

创建用于将 Solaris 系统直接迁移到区域的映像

可以使用 Flash Archiving 工具创建能够迁移到区域中的已安装系统的映像。

创建映像之前,可对系统进行完全配置,以包含将在区域中运行的所有软件。然后,安装区域时,安装程序将使用此映像。


注意 – 注意 –

如果在使用 ZFS 根的 Solaris 10 系统中创建了 Solaris Flash 归档文件或 flar,则在缺省情况下,flar 将成为实际的 ZFS 发送流,它可用于重新创建根池。此映像无法用于安装区域。您必须在系统拥有 ZFS 根的情况下使用显式的 cpiopax 归档文件创建 flar

使用带有 -L archiver 选项的 flarcreate 命令,指定 cpiopax 作为归档文件的方法。请参见下一过程中的步骤 4。


Procedure如何使用 flarcreate 创建映像

使用 flarcreate(1M) 手册页中所述 flarcreate 命令可创建系统映像。此示例过程使用 NFS 将 Flash 归档文件放到目标 Solaris 系统上,不过您可以使用任何方法移动该文件。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

  2. 登录要进行归档的源系统。

  3. 转到 root 目录。


    # cd /
    
  4. 使用 flarcreate 在源系统上创建名为 s10-system 的 Flash 归档映像文件,并将该归档文件放到目标系统上:


    source-system # flarcreate -S -n s10-system -L cpio /net/target/export/s10-system.flar
    Determining which filesystems will be included in the archive...
    Creating the archive...
    cpio: File size of "etc/mnttab" has
    increased by 435
    2068650 blocks
    1 error(s)
    Archive creation complete.

    目标计算机必须具有对 /export 文件系统的 root 写入访问权限。根据主机系统中文件系统的大小,归档文件可能达到几千兆字节大小,因此目标系统应提供足够的可用空间。


    提示 –

    在某些情况下,flarcreate 可能显示 cpio 命令的错误。通常,这些错误是诸如 File size of etc/mnttab has increased by 435 之类的消息。当这些消息与日志文件或反映系统状态的文件有关时,可将其忽略。请务必要彻底查看所有的错误消息。


创建归档文件的其他方法

您可以使用其他方法创建归档文件。安装程序可以接受以下归档文件格式:

请注意,安装程序只能接受使用归档实用程序创建的文件的目录,该实用程序可以保存和恢复文件权限、所有者和链接。

有关更多信息,请参见 cpio(1)pax(1)、bzip2(1)、gzip(1) 和 ufsdump(1M) 手册页。


注 –

如果使用除 Flash 归档文件以外的方法创建 P2V 的归档文件,则必须卸载源系统上依赖于处理器的 libc.so.1 挂载 lofs 的 (hwcap) 硬件功能库,然后才能创建归档文件。否则,安装有归档文件的区域在目标系统中可能无法引导。创建归档文件后,您可以在 /lib/libc.so.1 之上通过使用 lofs 和挂载 -O 选项重新挂载适当的硬件功能库。


source-system# unmount /lib/libc.so.1
source-system# mount -O -F lofs /lib/libc.so.1 

主机 ID 仿真

如果将应用程序从物理 Solaris 系统迁移到新系统上的区域,hostid 将更改为新计算机的 hostid

在某些情况下,应用程序会依赖原始的 hostid,从而不能更新应用程序配置。这种情况下,可以将区域配置为使用原始系统的 hostid。通过设置 zonecfg 属性来指定 hostid 即可实现这一目的,如如何配置区域中所述。使用的值应该是在原始系统上运行 hostid 命令时的输出。要查看已安装区域中的 hostid,也可以使用 hostid 命令。

有关主机 ID 的更多信息,请参见 hostid(1)

配置区域

通过使用如何配置区域过程,在目标系统上创建新的区域配置。


提示 –

如果您将要使用 CD 或 DVD 在新区域中安装应用程序,请在最初配置标记区域时,使用 add fs 在全局区域内添加对 CD 或 DVD 介质的只读访问权限。然后可以使用 CD 或 DVD 在标记区域中安装产品。有关更多信息,请参见如何在非全局区域中添加对 CD 或 DVD 介质的访问权限


安装区域

第 2 部分, Zoneszoneadm(1M) 手册页中所述 zoneadm 命令是用于安装和管理非全局区域的主要工具。使用 zoneadm 命令的操作必须从目标系统上的全局区域中运行。

除了从归档文件解压缩文件外,安装过程还会执行检查、必需的后处理以及其他功能,以确保将区域优化为在主机上运行。

可以使用 Solaris 系统的映像,因为该映像已进行过完全配置,具有要在区域中运行的所有软件。请参见创建用于将 Solaris 系统直接迁移到区域的映像

如果利用现有系统创建了 Solaris 系统归档文件,并在安装区域时使用 -p(保留 sysidcfg)选项,该区域将与用于创建映像的系统具有相同的标识。

如果在目标上安装区域时使用 -u (sys-unconfig) 选项,则生成的区域将不会配置主机名或名称服务。


注意 – 注意 –

必须指定 -p 选项或 -u 选项,否则会产生错误。


安装程序选项

选项 

说明 

-a

从中复制系统映像的归档文件位置。支持完整 Flash 归档文件以及 cpiogzip 压缩的 cpiobzip 压缩的 cpio 和级别 0 的 ufsdump。请参阅 SUNWsfman 软件包中提供的 gzip 手册页。

-d path

从中复制系统映像的目录位置。 

-d

-d 选项与破折号参数一起使用可指示要在 zonepath 中使用的现有目录布局。因此,如果管理员在安装前手动设置 zonepath 目录,则 -d 选项可用于指示该目录已经存在。

-p

保留系统标识。 

-s

无提示安装。 

-u

对区域执行 sys-unconfig

-v

详细输出。 

-a-d 选项相互排斥。-p-s-u-v 选项仅当提供 -a-d 时允许使用。

Procedure如何安装区域

  1. 成为超级用户或承担主管理员角色。

  2. 通过将 zoneadm 命令与 install -a 选项和归档文件路径结合使用,来安装已配置区域 s-zone


    global# zoneadm -z s-zone install -u -a /net/machine_name/s-system.flar
    

    安装完成时,将显示多条消息。这可能需要一些时间。

    当安装完成时,使用带有 -i-v 选项的 list 子命令来列出已安装的区域并检验状态。

故障排除

如果安装失败,请查看日志文件。如果成功,则日志文件位于区域内的 /var/log 中。如果失败,则日志文件位于全局区域内的 /var/tmp 中。

如果区域安装中断或失败,则此区域会处于未完成状态。请使用 uninstall -F 将此区域重置为已配置状态。

引导区域

Procedure如何引导区域

要执行此过程,您必须是全局区域中的全局管理员。

如果使用 -u 选项,则还必须使用 zlogin 命令访问区域控制台并按照执行初始内部区域配置中所述执行系统配置。

  1. 成为超级用户或承担主管理员角色。

  2. 使用带有 -z 选项、区域名称 s-zone 以及 boot 子命令的 zoneadm 命令引导区域。


    global# zoneadm -z s-zone boot
    
  3. 当引导完成时,使用带有 -v 选项的 list 子命令检验状态。


    global# zoneadm list -v