Java Solaris 加入 SDN 参与讨论 我的社区 注册说明

BigAdmin 系统管理门户网站
专题文章:将 Solaris Live Upgrade 用于 x86(和 SPARC)平台

将 Solaris Live Upgrade 用于 x86(和 SPARC)平台

作者:Alan DuBoff

我希望本文档能促使更多的人使用 Sun 的 Solaris Live Upgrade 软件。虽然本文介绍的是 Solaris 操作系统 x86 平台版,但这些信息也适用于 SPARC 平台版。< /p>

目前,Solaris Express 程序作为可选产品提供给 Sun 客户,以使客户能够尽早试用下一个 Solaris 发行版。该程序每月更新一次。我们强烈建议大家下载并安装这些早期发行版,以 试用 Solaris 操作系统中增加的新功能。

试用早期发行版时,我们可能会遇到以下情况:我们可能需要在两个或三个不同的环境中进行测试或开发。通过使用 Live Upgrade,您可以在多个环境之间进行引导。它可以对环境进行升级,以 使其与从中复制的环境中所包含的功能尽可能接近。

Sun 在 http://docs.sun.com/ 中提供了产品文档,因此,您可以参考此站点以了解特定的技术图表和各种信息。


示例:在 Solaris 9 FCS 和当前 Solaris Express 发行版之间进行引导

让我们从最简单的情形入手。我希望所用的系统在 Solaris 9 FCS 发行版和当前的 Solaris Express 发行版(每月更新一次)之间进行引导。

我要在 x86 系统上对一个 40 GB 磁盘进行分区以实现此目的。Live Upgrade 可以处理多个磁盘,但我要说明的是最基本的情况,即只使用一个磁盘的用户如何通过 Live Upgrade 在 Solaris 9 操作系统和 Solaris Express 之间进行引导。

重要说明:无法执行降级操作。Sun 工具(包括 Live Upgrade)不支持降级。

 

以下是我们需要了解的无法降级的另一个原因。您对系统作出的所有更改(包括文件权限更改和文件系统更改)将移到新的系统中。这包括已更改的符号链接、安装的软件以及安装的软件包,等等。

正如您可能会想到的一样,这一过程可能需要很长的时间,因此,在某些情况下,最好复制只进行最低限度更改的引导环境,至少从时间方面考虑是这样。不过,为简便起见,让 Live Upgrade 复制这些更改,以便在较新的 Solaris 发行版上创建与过去所用环境相同的环境,即便花一些时间也是值得的。当然,这也正是 Live Upgrade 的作用所在。

对于将要创建的示例,请参见图 1 中一个硬盘的示例。

 

这与我们的方案是一致的,我们有三个根文件系统:一个是当前发行版,另外两个将升级到 Solaris Express 内部版本。在这种情况下,我希望安装 Solaris 9 update 6 作为当前发行版,并在添加很多更改之前,为当前 Solaris Express 发行版创建第二个引导环境。然后,我们创建并更新将来的 Solaris Express 内部版本。

Live Upgrade

图 1:创建引导环境 -- 从根文件系统 (/) 复制到根文件系统 (/)

图中使用两个硬盘的示例说明了如何将 Live Upgrade 运用到这种情形中。您可能有三个或更多硬盘,并且这些根文件系统可能位于 Solaris 分区的任何分片上。

我要指出的是, //var/usr/opt 均是 Live Upgrade 所需的。它们称为 Solaris 所需的文件系统。在创建新的引导环境时,必须复制这些文件系统。您 不能在多个引导环境之间共享它们。在创建新的引导环境时,不能将它们从复制中排除。为了便于说明,我计划将所有这些内容放在图 1 所示的根分区中(对于一个硬盘的情况)。

我还要指出的是,将在所有这些引导环境之间共享 /export。您可能有很多分区位于任意数量的磁盘中,并且您会发现 Live Upgrade 在这方面非常灵活。通常,如果挂载了一个文件系统,并 且在创建新引导环境时该文件系统在 /etc/vfstab 中包含条目,则会在当前引导环境和新引导环境之间共享该文件系统。Solaris 所需的文件系统( //var/usr/opt)是例外情况,可能从来都不会共享它们。

从图 1 中可以看出,我们现在使用的是一个很大的 Solaris 分区,其中包含三个根分片、一个共享交换分片以及一个共享导出分片。假设我们已按这种方式对一个 40 GB 驱动器进行了分区。我 们为每个根分片分配了 9 GB,为交换分区分配了 500 MB,而将其余的 10-12 GB 分配给共享导出分区。

执行完此处所述的安装操作后,如果在 /etc/vfstab 中加载了额外的根分区,则应将它们删除,因为如果它们与挂载相关联,Live Upgrade 实用程序将无法使用它们。< /p>

安装 Live Upgrade 工具

在使用 Live Upgrade 之前,必须先从要安装的更新发行版中安装最新的 Live Upgrade 工具。您不能向后降级发行版,而只能向前升级,因此,必须从要升级到的介质中安装最新的 Live Upgrade 工具。

可通过转到第 2 张 CD(共 2 张)并执行安装程序来安装最新的 Live Upgrade 工具,如下所示:

 

  • (对于 Solaris 9)
    Solaris_9/Tools/Installers/liveupgrade20
  • (对于 Solaris 10)
    Solaris_10/Tools/Installers/liveupgrade20

这将安装最新的实用程序以供您使用。

执行升级之前,必须安装最新的 Live Upgrade 实用程序。如果实用程序级别相同,WebStart 将通知您已安装了相同级别的实用程序。

或者,也可以直接使用软件包命令执行此操作。首先,删除现有的 Live Upgrade 软件包:

pkgrm SUNWluu SUNWlur

然后,从 Solaris 安装介质中添加新的 Live Upgrade 软件包:

pkgadd -d /cdrom/cdrom0/s2/Solaris_9/Product SUNWlur SUNWluu


创建另一个引导环境

您需要先创建另一个引导环境。

Live Upgrade 的首选使用方法是通过命令行界面:

luactivate

lucancel
lucompare
lucreate
lucurr
ludelete
ludesc
lufslist
lumake
lumount
lurename
lustatus
luumount
luupgrade

1M 部分中的手册页适用于每个 Live Upgrade 命令以及 live_upgrade(5)


将 lu(1m) 界面与 Solaris Live Upgrade 结合使用

以超级用户身份执行 lu 实用程序,然后选择 Create(创建)。对于新的引导环境,请选择分区:可通过选择 F2 键来执行此操作,这将为您提供一个可选项。

注:对于最初安装 Solaris 操作系统时创建的引导环境,您应该已从 /etc/vfstab 中删除所有挂载了。不应在 /etc/vfstab 中挂载或列出它们。您可以重命名初始安装,以使引导环境的名称能够反映分发情况,而不是使用缺省的磁盘名称。

您可以使用已有的交换设备;如果愿意,也可以使用其他交换设备。在大多数情况下,人们希望使用相同的交换设备。缺省情况下,除非指定一个新的交换设备,否则将使用相同的交换设备;在这种情况下,将 仅使用给定的新交换设备。

以下说明针对的是使用 lu(1M) 命令访问 Live Upgrade 的情形。此命令已过时,将来不再提供支持。 lu(1M) 仅提供对一部分 Live Upgrade 功能的访问,并且还存在其他问题。另外, lu(1M) 无法进行国际化,而仅显示美国英语文本。

 

选择 "/" 分区(在缺省情况下包含 /var/opt/usr)后,请选择 F3 键进行保存。在 lucreate 将信息复制到新引导环境的过程中,请耐心等待。如果希望 /var/opt/usr 使用不同的分区,应在保存引导环境之前执行此操作。


执行升级

创建第二个引导环境后,即可执行实际的升级。以超级用户身份进入 lu 实用程序,然后选择 Upgrade(升级)选项。现在,系统将提示您输入引导环境名称以及软件包介质。输入在上述步骤中创建的引导环境的名称,并 指定 Solaris 软件包介质的路径。软件包介质可以是网络安装,也可以是 CD 介质,两种方法的效果都很好。切记,如果使用的是 CD 介质,您需要在此处执行两个步骤,一个步骤针对第 1 张 CD( 共 2 张),另一个步骤针对第 2 张 CD。也可以额外使用任意数量的 CD,如果仅包含给定的软件包,可以从 CD 中选择这些软件包。

如果使用的是 Solaris 网络安装映像(可以从 CD 中创建),您需要将软件包介质指向安装了网络安装的目录。您可能已将其安装到某个位置(例如,可能已安装到 /export/install/S10_51 中)。输入已将其安装到的路径。

如果使用的是 CD 介质,您需要先放入第 1 张 CD(共 2 张),然后输入 /cdrom/cdrom0/s2。如果要添加第 2 张 CD,请输入 /cdrom/cdrom0 作为软件包介质路径。


使用 Live Upgrade 命令行界面

还可以使用命令行实用程序来执行这些功能,并可使用以下命令创建引导环境:

# lucreate -n S10_51

如果未输入要使用的磁盘(如上面的示例所示),对话框中将提供有效选项以供您选择。

要在 /dev/dsk/c1t0d0s0 上新建具有 "/" 文件系统的引导环境,请使用以下命令:

# lucreate -n S10_51 -m /:c1t0d0s0:ufs

要在 SVM 镜像 d10(包含两个子镜像 c1t0d0s0c2t0d0s0)上新建具有 "/" 文件系统的引导环境,请使用以下命令:

# lucreate -n S10_51 -m /:d10:mirror,ufs -m /:c1t0d0s0:attach -m /:

c2t0d0s0:attach
然后,对于第 1 张 CD,可以使用以下命令进行升级:

 

# luupgrade -u -n s10_51 -s /cdrom/cdrom0/s2

随后,对于第 2 张 CD,可以使用以下命令:

# luupgrade -i -n s10_51 -s /cdrom/cdrom0 -O "-nodisplay -noconsole"

如果需要安装语言 CD,请对所需的每张语言 CD 重复上述命令。

如果网络上的 /net/server/export/s10_51/sparc 中提供了合并的安装映像,请使用以下命令:

# luupgrade -u -n s10_51 -s /net/server/export/s10_51/sparc

当然,如果愿意,您还可以在命令行中传递很多参数;请参见手册页或联机文档以了解所有正确的参数。


激活引导环境

现在,已将引导环境升级到 S10_51,接下来就只剩下一小步了。将其激活!

事实上,我将第一个引导环境重命名为 S9_U6,而将第二个引导环境命名为 S10_51。在这种情况下,S10_51 是从 S9_U6 中实时升级的,并且 S9_U6 仍处于活动状态。可 通过执行以下命令来获取状态:

# lustatus

此命令将显示如下输出:

Boot Environment       Is       Active Active    Can    Copy     

Name Complete Now On Reboot Delete Status
---------------------- -------- ------ --------- ------ ----------
S9_U6 yes yes yes no -
S10_51 yes no no yes -

您可以执行以下命令:

# luactivate S10_51

# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
---------------------- -------- ------ --------- ------ ----------
S9_U6 yes yes no no -
S10_51 yes no yes no -

在执行 luactivate 命令后,请使用以下命令执行正常关机并重新引导系统,这一点至关重要:

# init 6

如果不使用 init 6 并执行重新引导,将不会激活新的引导环境。切勿使用 uadminhaltreboot 命令!一定要谨慎行事,以便正确关机并重新引导。

您现在有两个引导环境,还可以使用以下方法添加第三个引导环境:激活要从中更新的引导环境、按照上述方法创建另一个引导环境,按照上述方法执行升级,然后使用 init 6 将其激活。

完成上述操作后,您就可以激活这三个引导环境中的任何一个了。

在此示例中,可能会输出以下内容:

Boot Environment       Is       Active Active    Can    Copy     

Name Complete Now On Reboot Delete Status
---------------------- -------- ------ --------- ------ ----------
S9_U6 yes yes yes no -
S10_51 yes no no yes -
S10_54 yes no no yes -

我希望将它作为示例,因为它为用户提供了激活 S9_U6(当前发行版)或其他两个 Solaris Express 版本的选项。这样,用户就可以拥有最新的 S9 维护更新 (Maintenance Update, MU),并继续在 Solaris Express 内部版本之间进行切换。在此示例中,当 Solaris Express build 56 发布后,您可以重命名或删除 S10_51 引导环境,并从 S10_54 中创建 S10_56,然后执行 Live Upgrade 以升级到新的内部版本。切记,您是从活动引导环境中进行升级的,因此在执行这些命令之前,应激活要从中执行 Live Upgrade 的引导环境。

此外,为了安全起见,应始终从第 2 张 CD 中安装最新的 Live Upgrade 实用程序。这可确保 Live Upgrade 按计划的方式工作。

您可以拥有无限多个引导环境。对于 "/" 文件系统,至少要为每个引导环境分配一个磁盘分区。事实上,这意味着每个磁盘最多有七个引导环境(八个分片去掉一个可能从不使用的分片 "2")。