跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 10 1/13 安装指南:Live Upgrade 和升级规划 Oracle Solaris 10 1/13 Information Library (简体中文) |
1. 在何处查找 Oracle Solaris 安装规划信息
8. 在安装了非全局区域的系统中升级 Oracle Solaris OS
第 2 部分使用 Live Upgrade 升级和迁移到 ZFS 根池
13. 针对安装了非全局区域的 ZFS 的 Live Upgrade
本节提供从 UFS 根 (/) 文件系统迁移到安装了非全局区域的系统上的 ZFS 根池的逐步说明。在 UFS 文件系统中,共享文件系统上没有非全局区域。
lucreate 命令可从 UFS 根 (/) 文件系统创建 ZFS 根池引导环境。执行 lucreate 操作之前,ZFS 根池必须存在且必须是使用分片(而不是整个磁盘)创建的,这样才能升级和引导。此过程显示如何将与 UFS 根 (/) 文件系统关联的现有非全局区域复制到 ZFS 根池中的新引导环境。
注 - 使用 Live Upgrade 创建新的 ZFS 引导环境至少需要安装 Solaris 10 10/08 发行版。以前的发行版中的 ZFS 和 Live Upgrade 软件不能执行这些任务。
三个 Live Upgrade 软件包(SUNWluu、SUNWlur 和 SUNWlucfg)组成了使用 Live Upgrade 进行升级所需的软件。这些软件包包含现有的软件、新增功能和错误修复。如果在使用 Live Upgrade 前未删除现有软件包并在系统上安装新的软件包,则升级到目标发行版时将失败。
# pkgrm SUNWlucfg SUNWluu SUNWlur
通过访问 My Oracle Support 确保您具有最近更新的修补程序列表。在 My Oracle Support 上搜索知识文档 1004881.1-Live Upgrade Software Patch Requirements(以前为 206844)。
成为超级用户或承担等效角色。
注 - 角色包含授权和具有特权的命令。有关角色的更多信息,请参见《System Administration Guide: Security Services》中的"Configuring RBAC (Task Map)"。
如果您要将修补程序存储在本地磁盘上,请创建一个目录(如 /var/tmp/lupatches)并将这些修补程序下载到该目录中。
从 My Oracle Support Web 站点获取修补程序列表。
转到修补程序目录。
# cd /var/tmp/lupatches
使用 patchadd 命令安装修补程序。
# patchadd patch_id
patch_id 是修补程序号。用空格分隔多个修补程序名称。
注 - 需要按 My Oracle Support 上的知识文档 1004881.1-Live Upgrade Software Patch Requirements(以前为 206844)中指定的顺序应用修补程序。
根据需要重新引导系统。某些修补程序需要重新引导后才能生效。
仅适用于 x86: 需要重新引导系统,否则 Live Upgrade 将会失败。
# init 6
ZFS 根池必须位于单个分片上才能引导和升级。
# zpool create rpool c3t0d0s0
在本示例中,要创建的新 ZFS 的名称为 rpool。池是在可引导分片 c3t0d0s0 上创建的。
有关创建新的根池的信息,请参见《Oracle Solaris ZFS 管理指南》。
# lucreate [-c ufsBE] -n new-zfsBE -p rpool
当前 UFS 引导环境的名称。该选项不是必需的,仅在创建首个引导环境时使用。如果是首次运行 lucreate 命令且省略了 -c 选项,本软件将为您创建一个缺省名称。
要创建的引导环境的名称。名称在系统中必须是唯一的。
将新创建的 ZFS 根 (/) 文件系统置于在 rpool 中定义的 ZFS 根池中。
所有非共享非全局区域连同关键文件系统都被复制到新的引导环境中。创建新的 ZFS 引导环境可能需要一段时间。UFS 文件系统数据将被复制到 ZFS 根池中。创建非活动引导环境后,可以使用 luupgrade 或 luactivate 命令开升级或激活新的 ZFS 引导环境。
lustatus 命令会报告引导环境的创建是否已完成以及引导环境是否可以引导。
# lustatus boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ ufsBE yes yes yes no - new-zfsBE yes no no yes -
list 命令显示系统上所有数据集的名称。在本示例中,rpool 是 ZFS 池的名称,new-zfsBE 是新创建的 ZFS 引导环境的名称。
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 11.4G 2.95G 31K /rpool rpool/ROOT 4.34G 2.95G 31K legacy rpool/ROOT/new-zfsBE 4.34G 2.95G 4.34G / rpool/dump 2.06G 5.02G 16K - rpool/swap 5.04G 7.99G 16K -
针对新引导环境列出的挂载点是临时的,直到执行 luactivate 命令为止。/dump 和 /swap 卷不与原始 UFS 引导环境共享,但在 ZFS 根池和根池内的引导环境中共享。
示例 13-1 从安装了非全局区域的 UFS 根 (/) 文件系统迁移到 ZFS 根池
在以下示例中,现有的非全局区域 myzone 在 UFS 根 (/) 文件系统中具有其非全局区域根目录。区域 zzone 在现有的 ZFS 存储池 pool 中的 ZFS 文件系统中具有其区域根目录。Live Upgrade 用于将 UFS 引导环境 c2t2d0s0 迁移到 ZFS 引导环境 zfs2BE。基于 UFS 的 myzone 区域迁移到在 Live Upgrade 运行之前创建的新 ZFS 存储池 mpool。基于 ZFS 的非全局区域 zzone 将被克隆,但会保留在 ZFS 池 pool 中并被迁移到新的 zfs2BE 引导环境中。
用于创建引导环境的命令如下:
# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / native shared - myzone installed /zones/myzone native shared - zzone installed /pool/zones native shared # zpool create mpool mirror c3t0d0s0 c4td0s0 # lucreate -c c1t2d0s0 -n zfs2BE -p mpool Checking GRUB menu... Analyzing system configuration. Updating boot environment description database on all BEs. Updating system configuration files. The device </dev/dsk/c1t1d0s0> is not a root device for any boot environment; cannot get BE ID. Creating configuration for boot environment <zfs2BE>. Source boot environment is <c1t2d0s0>. Creating file systems on boot environment <zfs2BE>. Creating <zfs> file system for </> in zone <global> on <mpool/ROOT/zfs2BE>. Populating file systems on boot environment <zfs2BE>. Analyzing zones. Mounting ABE <zfs2BE>. Generating file list. Copying data from PBE <c1t2d0s0> to ABE <zfs2BE>. 100% of filenames transferred Finalizing ABE. Fixing zonepaths in ABE. Unmounting ABE <zfs2BE>. Fixing properties on ZFS datasets in ABE. Reverting state of zones in PBE <c1t2d0s0>. Making boot environment <zfs2BE> bootable. Updating bootenv.rc on ABE <zfs2BE>. Saving existing file </boot/grub/menu.lst> in top level dataset for BE <zfs2BE> as <mount-point>//boot/grub/menu.lst.prev. File </boot/grub/menu.lst> propagation successful Copied GRUB menu from PBE to ABE No entry for BE <zfs2BE> in GRUB menu Population of boot environment <zfs2BE> successful. Creation of boot environment <zfs2BE> successful.
lucreate 操作完成后,请使用 lustatus 命令来查看引导环境状态,如本示例所示。
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- c1t2d0s0 yes yes yes no - zfsBE yes no no yes -
# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / native shared - myzone installed /zones/myzone native shared - zzone installed /pool/zones native shared
接下来,使用 luactivate 命令激活新的 ZFS 引导环境。例如:
# luactivate zfsBE A Live Upgrade Sync operation will be performed on startup of boot environment <zfsBE>. ********************************************************************** The target boot environment has been activated. It will be used when you reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You MUST USE either the init or the shutdown command when you reboot. If you do not use either init or shutdown, the system will not boot using the target BE. ********************************************************************** In case of a failure while booting to the target BE, the following process needs to be followed to fallback to the currently working boot environment: 1. Enter the PROM monitor (ok prompt). 2. Boot the machine to Single User mode using a different boot device (like the Solaris Install CD or Network). Examples: At the PROM monitor (ok prompt): For boot to Solaris CD: boot cdrom -s For boot to network: boot net -s 3. Mount the Current boot environment root slice to some directory (like /mnt). You can use the following command to mount: mount -Fufs /dev/dsk/c1t0d0s0 /mnt 4. Run <luactivate> utility with out any arguments from the current boot environment root slice, as shown below: /mnt/sbin/luactivate 5. luactivate, activates the previous working boot environment and indicates the result. 6. Exit Single User mode and reboot the machine. ********************************************************************** Modifying boot archive service Activation of boot environment <zfsBE> successful.
将系统重新引导至 ZFS BE。
# init 6 # svc.startd: The system is coming down. Please wait. svc.startd: 79 system services are now being stopped. . . .
确认新的引导环境和已迁移的区域的状态,如本示例所示。
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- c1t2d0s0 yes yes yes no - zfsBE yes no no yes -
如果回退到 UFS 引导环境,则需要再次导入在 ZFS 引导环境中创建的所有 ZFS 存储池,因为 UFS 引导环境不会自动提供它们。切换回 UFS 引导环境时,您会看到类似于以下示例的消息。
# luactivate c1t2d0s0 WARNING: The following files have changed on both the current boot environment <ZFSbe> zone <global> and the boot environment to be activated <c1t2d0s0>: /etc/zfs/zpool.cache INFORMATION: The files listed above are in conflict between the current boot environment <ZFSbe> zone <global> and the boot environment to be activated <c1t2d0s0>. These files will not be automatically synchronized from the current boot environment <ZFSbe> when boot environment <c1t2d0s0>