Solaris 10 8/07 安装指南:Solaris Live Upgrade 和升级规划

第 9 章 在安装了非全局区域的系统中升级 Solaris OS

本章介绍如何使用 Solaris Live Upgrade 升级安装了非全局区域的系统。本章包含以下几节:

在安装了非全局区域的情况下使用 Solaris Live Upgrade 进行升级(概述)

从 Solaris 10 8/07 发行版开始,可以使用 Solaris Live Upgrade 升级或修补包含非全局区域的系统。如果您的系统包含非全局区域,建议使用 Solaris Live Upgrade 作为升级程序或使用 Solaris Live Upgrade 来添加修补程序。其他升级程序可能需要很长的升级时间,因为完成升级所需的时间会随安装的非全局区域数线性增长。如果使用 Solaris Live Upgrade 修补系统,则不必使系统进入单用户模式,并且可最大限度地延长系统的正常运行时间。下面的列表对为了适应已安装非全局区域的系统而所做的更改进行了汇总。

了解 Solaris Zones 和 Solaris Live Upgrade

Solaris Zones 分区技术用于虚拟化操作系统服务,并提供安全的隔离环境以运行应用程序。非全局区域是在 Solaris OS 的单个实例(全局区域)中创建的虚拟化操作系统环境。在创建非全局区域时,会构建一个应用程序执行环境,其中的进程与系统的其余部分隔离。

Solaris Live Upgrade 是一项机制,可将当前运行的系统复制到新的片上。在安装非全局区域时,它们可随全局区域的文件系统一起复制到非活动引导环境中。

图 9–1 中显示了随全局区域文件系统一起复制到非活动引导环境中的非全局区域。

图 9–1 创建引导环境-复制非全局区域

文中对此图例进行了说明。

图 9–2 显示已将一个非全局区域复制到非活动引导环境中。

图 9–2 创建引导环境-从非全局区域复制共享文件系统

文中对此图例进行了说明。

在安装了非全局区域的情况下创建并升级引导环境(任务)

以下各节提供了在安装了非全局区域的情况下创建引导环境的相关信息,以及在安装了非全局区域区域的情况下进行升级的过程。

在独立的文件系统中具有非全局区域的情况下创建引导环境

从当前运行的引导环境中创建新引导环境的操作与早期发行版大体相同,但有一个例外。您可以为非全局区域内的共享文件系统指定目标磁盘片。在以下情况下会发生此例外:

为避免在新的引导环境中共享该独立的文件系统,lucreate 命令允许为非全局区域的独立文件系统指定目标片。-m 选项的参数具有一个新的可选字段 zonename。该新字段将非全局区域的独立文件系统放在新引导环境的独立片中。有关使用独立文件系统设置非全局区域的更多信息,请参见 zonecfg(1M)


注 –

缺省情况下,除关键文件系统(根 (/)、/usr/opt 文件系统)外的任何文件系统都将在当前引导环境和新引导环境间共享。更新活动引导环境中的可共享文件也会更新非活动引导环境中的数据。例如,/export 文件系统即为一个共享文件系统。如果使用 -m 选项和 zonename 选项,则非全局区域的文件系统将被复制到独立的片上,并且数据不会被共享。该选项可防止在引导环境间共享使用 zonecfg add fs 命令创建的非全局区域文件系统。


Procedure在系统上安装了非全局区域的情况下使用 Solaris Live Upgrade 进行升级(任务)

以下过程提供了使用 Solaris Live Upgrade 对安装了非全局区域的系统进行升级的详细说明。

  1. 安装必需的修补程序。

    请访问 http://sunsolve.sun.com,以确保具有最近更新的修补程序列表。在 SunSolve Web 站点上搜索信息文档 72099。

    1. 从 SunSolveSM Web 站点获取修补程序列表。

    2. 成为超级用户或承担等效角色。

    3. 使用 patchadd 命令安装修补程序。


      # patchadd path_to_patches
      

      path_to_patches 为修补程序所在的路径。

    4. 根据需要重新引导系统。某些修补程序需要重新引导后才能生效。

      仅适用于 x86:需要重新引导系统,否则 Solaris Live Upgrade 将会失败。


      # init 6
      
  2. 删除现有的 Solaris Live Upgrade 软件包。

    三个 Solaris Live Upgrade 软件包(SUNWluuSUNWlur SUNWlucfg)组成了使用 Solaris Live Upgrade 进行升级所需的软件。这些软件包包括现有软件、新增功能和错误修复。如果在使用 Solaris Live Upgrade 前未删除现有软件包并在系统上安装新的软件包,则升级到目标发行版时将失败。


    # pkgrm SUNWlucfg SUNWluu SUNWlur
    
  3. 安装 Solaris Live Upgrade 软件包。

    1. 插入 Solaris DVD 或 CD。

      该介质中包含了要升级到的发行版的软件包。

    2. 按以下顺序从安装介质或网络安装映像来安装软件包。


      # pkagadd -d path_to_packages SUNWlucfg SUNWlur SUNWluu
      

      在以下示例中,从安装介质安装软件包。

      • 对于基于 SPARC 的系统


        # pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu
        
      • 对于基于 x86 的系统


        # pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu
        
  4. 验证已成功安装软件包。


    # pkgchk -v SUNWlucfg SUNWlur SUNWluu
    
  5. 创建新引导环境。


    # lucreate [-A 'BE_description'] [-c BE_name] \
     -m mountpoint:device[,metadevice]:fs_options[:zonename] [-m ...] -n BE_name
    
    -n BE_name

    要创建的引导环境的名称。BE_name 在系统中必须是唯一的。

    -A 'BE_description'

    (可选)允许创建与引导环境名称 (BE_name) 相关联的引导环境描述。描述的长度不受限制,并且可以包含任何字符。

    -c BE_name

    将名称 BE_name 指定到活动的引导环境。该选项不是必需的,仅在首次创建引导环境时使用。如果是首次运行 lucreate 命令且省略了 -c 选项,本软件将为您创建一个缺省名称。

    -m mountpoint:device[,metadevice]:fs_options [:zonename] [-m ...]

    指定 vfstab 中新引导环境的文件系统配置。作为变量指定给 -m 选项的文件系统可以位于同一磁盘上,也可以分布在多个磁盘上。您可以根据需要多次使用此选项,以创建所需个数的文件系统。

    • mountpoint 可以是任何有效的挂载点,也可以是表示交换分区的 –(连字符)。

    • device 字段可以是以下内容之一:

      • 磁盘设备的名称格式为 /dev/dsk/c wtxdys z

      • Solaris 卷管理器卷的名称,格式为 /dev/md/dsk/dnum

      • Veritas 卷管理器卷的名称,格式为 /dev/md/vxfs/dsk/dnum

      • 关键字 merged,表示指定挂载点处的文件系统将与其父文件系统合并。

    • fs_options 字段可以是以下内容之一:

      • ufs,表示 UFS 文件系统。

      • vxfs,表示 Veritas 文件系统。

      • swap,表示交换文件系统。交换挂载点必须为 –(连字符)。

      • 对于用作逻辑设备(镜像)的文件系统,可用多个关键字指定要对这些文件系统应用的操作。这些关键字可以创建逻辑设备,可以更改逻辑设备的配置,还可以删除逻辑设备。有关这些关键字的描述,请参见在 RAID-1 卷(镜像)上创建引导环境

    • zonename 指定将非全局区域的独立文件系统放置在独立的片上。如果区域的独立文件系统位于共享文件系统(如 /zone1/root/export)中,请使用该选项。该选项可将区域的独立文件系统复制到新的片上,并防止共享该文件系统。使用 zonecfg add fs 命令创建独立文件系统。

    在以下示例中,创建了一个名为 newbe 的新引导环境。根 (/) 文件系统会放置在 c0t1d0s4 中。当前引导环境中的所有非全局区域都会被复制到新的引导环境中。会在 c0t1d0s1 中为名为 zone1 的非全局区域提供一个独立的挂载点。


    注 –

    缺省情况下,除关键文件系统(根 (/)、/usr/opt 文件系统)外的任何文件系统都将在当前引导环境和新引导环境间共享。/export 文件系统为共享文件系统。如果使用 -m 选项,则非全局区域的文件系统将被放在独立的片上,并且不会共享数据。该选项可防止在引导环境间共享使用 zonecfg add fs 命令创建的区域文件系统。有关详细信息,请参见 zonecfg(1M)



    # lucreate -n newbe -m /:/dev/dsk/c0t1d0s4:ufs -m /export:/dev/dsk/c0t1d0s1:ufs:zone1
    
  6. 升级引导环境。

    从网络中获取用于升级的操作系统映像。


    # luupgrade -u -n BE_name -s os_image_path
    
    -u

    在引导环境中升级操作系统映像

    -n BE_name

    指定要升级的引导环境的名称

    -s os_image_path

    指定包含操作系统映像的目录的路径名

    在本示例中,新引导环境 newbe 会从网络安装映象进行升级。


    # luupgrade -n newbe -u -s /net/server/export/Solaris_10/combined.solaris_wos
    
  7. (可选)验证引导环境是否可以引导。

    lustatus 命令会报告引导环境的创建是否已完成以及引导环境是否可以引导。


    # lustatus
    boot environment   Is        Active  Active     Can	    Copy
    Name               Complete  Now	 OnReboot   Delete	 Status
    ------------------------------------------------------------------------
    c0t1d0s0            yes      yes      yes       no      -
    newbe               yes       no       no       yes     -
  8. 激活新引导环境。


    # luactivate BE_name
    

    BE_name 指定要激活的引导环境的名称。


    注 –

    对于基于 x86 的系统,在首次引导某个引导环境时,必须使用 luactivate 命令。后续激活可以通过从 GRUB 菜单中选择引导环境来实现。有关逐步说明,请参见x86: 使用 GRUB 菜单激活引导环境


    要成功激活引导环境,该引导环境必须符合多项条件。有关更多信息,请参见激活引导环境

  9. 重新引导。


    # init 6
    

    注意 – 注意 –

    仅使用 initshutdown 命令重新引导。如果使用 reboothaltuadmin 命令,则系统将不切换引导环境。将会再次引导最近处于活动状态的引导环境。


    引导环境已经切换,新的引导环境现在即为当前引导环境。

  10. (可选)回退到其他引导环境。

    如果新的引导环境不可用,或者您要切换至另一个引导环境,请参见第 6 章,故障恢复:回退到初始引导环境(任务)

升级安装了非全局区域的系统(示例)

以下过程提供了使用 Solaris Live Upgrade 进行升级的示例,并附带简要说明。

有关详细的步骤说明,请参见在系统上安装了非全局区域的情况下使用 Solaris Live Upgrade 进行升级(任务)

在系统中安装了非全局区域的情况下使用 Solaris Live Upgrade 进行升级

以下示例简要介绍了升级已安装非全局区域的系统的步骤。在该示例中,使用 lucreate 命令在运行 Solaris 10 发行版的系统中创建一个新的引导环境。该系统已安装了非全局区域,并且其某个非全局区域在共享文件系统 (zone1/root/export) 上具有一个独立的文件系统。 通过使用 luupgrade 命令将此新引导环境升级到 Solaris 10 8/07 发行版。通过使用 luactivate 命令激活已升级的引导环境。


注 –

该过程假设系统正在运行卷管理器。有关使用卷管理器管理可移除介质的详细信息,请参阅《系统管理指南:设备和文件系统》


  1. 安装必需的修补程序。

    请访问 http://sunsolve.sun.com,以确保具有最近更新的修补程序列表。在 SunSolve Web 站点上搜索信息文档 72099。在该示例中,/net/server/export/patches 为修补程序的路径。


    # patchadd /net/server/export/patches
    # init 6
    
  2. 从当前引导环境中删除 Solaris Live Upgrade 软件包。


    # pkgrm SUNWlucfg SUNWluu SUNWlur
    
  3. 插入 Solaris DVD 或 CD。然后,从目标发行版中安装供替换的 Solaris Live upgrade 软件包。

    • 对于基于 SPARC 的系统


      # pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu
      
    • 对于基于 x86 的系统


      # pkgadd -d /cdrom/cdrom0/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu
      
  4. 创建引导环境。

    在以下示例中,创建了一个名为 newbe 的新引导环境。根 (/) 文件系统会放置在 c0t1d0s4 中。当前引导环境中的所有非全局区域都会被复制到新的引导环境中。会使用 zonecfg add fs 命令为 zone1 创建一个独立的文件系统。该独立的文件系统 /zone/root/export 会被放置在独立的文件系统 c0t1d0s1 上。该选项可防止在当前引导环境和新引导环境间共享独立的文件系统。


    # lucreate -n newbe -m /:/dev/dsk/c0t1d0s4:ufs -m /export:/dev/dsk/c0t1d0s1:ufs:zone1
    
  5. 升级新的引导环境。

    在该示例中,/net/server/export/Solaris_10/combined.solaris_wos 为网络安装映象的路径。


    # luupgrade -n newbe -u -s  /net/server/export/Solaris_10/combined.solaris_wos
    
  6. (可选)验证引导环境是否可以引导。

    lustatus 命令报告引导环境创建是否完成。


    # lustatus
    boot environment   Is        Active  Active     Can	    Copy
    Name               Complete  Now	 OnReboot   Delete	 Status
    ------------------------------------------------------------------------
    c0t1d0s0            yes      yes      yes       no           -
    newbe               yes       no       no       yes          -
  7. 激活新的引导环境。


    # luactivate newbe
    # init 6
    

    引导环境 newbe 现在处于活动状态。

  8. (可选)回退到其他引导环境。如果新的引导环境不可用,或者您要切换至另一个引导环境,请参见第 6 章,故障恢复:回退到初始引导环境(任务)

管理包含非全局区域的引导环境

以下各节提供了有关管理包含非全局区域的引导环境的信息。

Procedure查看引导环境的非全局区域文件系统的配置

通过以下过程可显示全局区域和非全局区域的文件系统列表。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 显示文件系统列表。


    # lufslist -n BE_name
    
    BE_name

    指定引导环境的名称以查看文件系统说明


示例 9–1 列出安装了非全局区域的文件系统

以下示例显示了包含非全局区域的文件系统的列表。


# lufslist -n s3
boot environment name: s3
This boot environent is currently active.
This boot environment will be active on next system boot.

Filesystem              fstype    device size Mounted on Mount Options
------------------------------------------------------------------
/dev/dsk/c0t0d0s1         swap     2151776256   -        -
/dev/dsk/c0t0d0s3         ufs     10738040832   /        -
/dev/dsk/c0t0d0s7         ufs     10487955456   /export  -
                zone <zone1> within boot environment <s3>
/dev/dsk/c0t0d0s5         ufs      5116329984   /export  -

Procedure比较安装了非全局区域的系统的引导环境

lucompare 命令现在可生成包含任何非全局区域内容的引导环境比较。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 比较当前引导环境和新引导环境。


    # /usr/sbin/lucompare -i  infile (or) -t -o  outfile BE_name
    
    -i  infile

    比较 infile 中列出的文件。要比较的文件应为绝对文件名。如果文件中的项是目录,则比较将递归到该目录。使用该选项或 -t,但不要同时使用两者。

    -t

    只比较非二进制文件。此比较对每个文件使用 file(1) 命令以确定该文件是否为文本文件。使用该选项或 -i,但不要同时使用两者。

    -o  outfile

    将差别输出重定向到 outfile

    BE_name

    指定与活动的引导环境进行比较的引导环境的名称。


示例 9–2 比较引导环境

在该示例中,将当前引导环境(源)同 second_disk 引导环境进行比较,并将结果发送到一个文件。


# /usr/sbin/lucompare -i  /etc/lu/compare/ -o /var/tmp/compare.out second_disk

在包含非全局区域的系统上使用 lumount 命令

lumount 命令可为非全局区域提供访问权限,以便访问其位于非活动引导环境中的相应文件系统。当全局区域管理员使用 lumount 命令挂载非活动引导环境时,也会针对非全局区域挂载该引导环境。

在以下示例中,将会为位于全局区域的 /mnt 上的引导环境 newbe 挂载适当的文件系统。对于正在运行、已挂载,或准备就绪的非全局区域,其位于 newbe 中的相应文件系统也将会在每个区域的 /mnt 中可用。


# lumount -n newbe /mnt

有关挂载的更多信息,请参见 lumount(1M) 手册页。