如何从 Oracle Solaris 10 实时安装到 Oracle Solaris 11 11/11

作者:Harold Shaw

如何以最短的停机时间将运行 Oracle Solaris 10 的系统迁移到 Oracle Solaris 11 11/11。


2012 年 4 月发布

通过执行该实时安装过程描述的各个步骤,您可以用最短的停机时间从 Oracle Solaris 10 迁移到 Oracle Solaris 11 11/11。

如果想要下载软件、加入论坛、阅读类似本文的内容之外的其他技术方法精品文章,请成为 OTN 成员。无垃圾邮件!

首先,在一个与您的 Oracle Solaris 10 系统属于同一型号的 Oracle Solaris 11 11/11 系统上创建一组 ZFS 发送存档 — 黄金映像。然后在运行 Oracle Solaris 10 的系统的一个未使用磁盘上安装该黄金映像,以使该系统能够重新引导到 Oracle Solaris 11 11/11。来自 Oracle Solaris 10 映像的基本系统配置参数存储并应用于 Oracle Solaris 11 11/11 映像。

:不支持将安装的软件迁移到不同型号的系统。例如,在 Oracle SPARC M 系列系统上创建的映像不能部署于 Oracle SPARC T 系列系统上。而且当前,此过程仅适用于迁移到 Oracle Solaris 11 11/11,不适用于 Oracle Solaris 11 的其他版本。

过程和要求概述

该实时安装过程分为以下四个阶段:

本文涉及两个系统:

  • 存档系统,我们将在该系统上创建 Oracle Solaris 11 11/11 存档。
  • 迁移系统,该系统当前运行 Oracle Solaris 10,随后将迁移到 Oracle Solaris 11 11/11。

整个过程可以直观地表示为以下顺序步骤:

概述

为新安装的 Oracle Solaris 11 11/11 系统(存档系统)中的根池及其关联数据集创建 ZFS 存档。创建存档时,可以将其保存在本地可移动介质中,如 USB 驱动器,也可以通过网络将其发送到一个文件服务器以便稍后从中检索。需要使用存档时,执行以下高级步骤:

  1. 在将要迁移到 Oracle Solaris 11 11/11 的 Oracle Solaris 10 系统(迁移系统)上启动一个具有超级用户权限的 shell。
  2. 选择并配置一个引导磁盘设备,创建新的 ZFS 根池。
  3. 在新池中恢复存档的 ZFS 数据集。
  4. 执行最终配置,然后重新启动迁移系统。

迁移系统必须是运行 Oracle Solaris 10 的主机,并且其 ZFS 版本与存档系统兼容。对于将要迁移到新磁盘或系统的 ZFS 存档,确保满足以下要求:

  • 存档系统和迁移系统为同一型号(如 SPARC T 系列)并且满足 Oracle Solaris 11 11/11 的最低要求。
  • 迁移系统运行 Oracle Solaris 10 8/11 或更高版本,这是必须的,这样才能具有与 Oracle Solaris 11 11/11 兼容的 ZFS 版本。
  • 如果迁移系统运行的是 Oracle Solaris 10 8/11,请在尝试恢复存档之前应用以下 ZFS 补丁。没有这个补丁,任何恢复存档的尝试都将失败。对于 Oracle Solaris 10 以后的任何版本,无需此补丁。
    • 补丁 147440-11 或更高版本,用于基于 SPARC 的系统
    • 补丁 147441-11 或更高版本,用于基于 x86 的系统

    :应用补丁之后,必须重新启动迁移系统。

  • 确保将要存放新 ZFS 池的磁盘的总容量至少与存档池中分配的空间一样大。准备一节将更详细地讨论这一方面。

您必须同时拥有存档系统和迁移系统上的根权限。存档将包含所存档 ZFS 数据集中包含的所有软件和配置信息。注意,不支持通过系统存档迁移区域。迁移完成之后,您可以使用另外的过程(不在本文讨论范围之内)将 Oracle Solaris 10 区域迁移到 solaris10 标记区域。还要注意,在 Oracle Solaris 11 系统上无法运行 Oracle Solaris 8 或 Oracle Solaris 9 区域。有关如何将 Oracle Solaris 10 区域迁移到 solaris10 标记区域的详细信息,请参见 Oracle Solaris 管理:Oracle Solaris 区域、Oracle Solaris 10 区域和资源管理

所创建的存档不会具有期望的系统配置,因为我们将在一台主机上创建存档,最终将在另一台主机上运行该存档,这是两台不同的主机。第 4 阶段介绍(迁移之后)存档的配置。有必要在迁移完成后、引导 Oracle Solaris 11 11/11 之前,重新配置存档中的每个引导环境。为此,存档应只包含一个引导环境 (BE)。有关系统配置的详细信息,请参见安装 Oracle Solaris 11 系统 第 6 章“取消配置或重新配置 Oracle Solaris 实例”。

存档映像中不包含任何硬件特定的配置数据。不随备份一起转移的硬件特定的系统特性包括但不限于以下内容:

  • 磁盘容量和配置(包括 ZFS 池配置)
  • 硬件以太网地址
  • 已安装的硬件外围设备

第 1 阶段:创建 Oracle Solaris 11 11/11 存档

图 1 说明创建 Oracle Solaris 11 11/11 存档时所发生的情况。

图 1

图 1. 创建 Oracle Solaris 11 11/11 存档

准备

为准备迁移,记下迁移系统上根池的磁盘拓扑结构和 ZFS 池配置。和存档系统上的磁盘一样地对迁移系统上的目标磁盘进行配置,并相应调整新 ZFS 池的大小。分配的池的大小(以下所示的 zpool list 输出中的 ALLOC 列)至少需要确保有充足的空间来在迁移系统上恢复数据集。

# zpool list
NAME    SIZE  ALLOC    FREE CAP DEDUP HEALTH ALTROOT
rpool    68G  51.6G   16.4G 75% 1.00x ONLINE  -

如果任何存档池的容量(如 CAP 列所示)超过 80%,最佳实践要求应扩大迁移池以规划容量。根据其他配置元素和负载的不同,增加池中的空间余量还可能有益于性能。有关如何管理 ZFS 文件系统及相关性能的更多信息,请参阅 Oracle Solaris 管理:ZFS 文件系统 指南。

为准备稍后的迁移,将各种命令的输出保存到一个文件,与存档一起保存以供迁移期间参考。清单 1 中所示命令只是最低建议,根据系统配置的不同,其他配置信息也可能有用。清单 1 中显示的命令与示例输出仅针对 rpool

# zpool list
NAME    SIZE ALLOC  FREE CAP DEDUP HEALTH ALTROOT
rpool    68G 51.6G 16.4G 75% 1.00  ONLINE -

# zpool get all rpool
NAME   PROPERTY       VALUE                        SOURCE
rpool     size          68G                        -
rpool     capacity      75%                        -
rpool     altroot        -                         default
rpool     health       ONLINE                      -
rpool     guid         18397928369184079239        -
rpool     version       33                         default
rpool     bootfs        rpool/ROOT/snv_175a        local
rpool     delegation    on                         default
rpool     autoreplace   off                        default
rpool     cachefile      -                         default
rpool     failmode      wait                       default
rpool     listsnapshots off                        default
rpool     autoexpand    off                        default
rpool     dedupditto     0                         default
rpool     dedupratio    1.00x                      -
rpool     free          16.4G                      -
rpool     allocated     51.6G                      -
rpool     readonly      off                        -

# zpool status
 pool: rpool
 state: ONLINE
 scan: none requested
config:

         NAME          STATE     READ WRITE CKSUM
         rpool         ONLINE       0     0     0
         c5t0d0s0      ONLINE       0     0     0

errors: No known data errors

# format c5t0d0s0
selecting c5t0d0s0
[disk formatted]
/dev/dsk/c5t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M).


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show disk ID
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> p
PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition> p 
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)
Part     Tag          Flag     Cylinders         Size          Blocks
 0       root         wm       1 - 14086        68.35GB    (14086/0/0) 143339136
 1       unassigned   wm       0                 0         (0/0/0)             0
 2       backup       wu       0 - 14086        68.35GB    (14087/0/0) 143349312
 3       unassigned   wm       0                 0         (0/0/0)             0
 4       unassigned   wm       0                 0         (0/0/0)             0
 5       unassigned   wm       0                 0         (0/0/0)             0
 6       unassigned   wm       0                 0         (0/0/0)             0
 7       unassigned   wm       0                 0         (0/0/0)             0

partition> ^D
#

清单 1. 各种命令的输出

将清单 1 所示的来自存档系统的信息以及迁移期间可能有用的任何其他信息置于一个文件中,并将该文件与存档文件保存在同一位置以便稍后在迁移过程中使用。

也可以使用 Oracle Explorer Data Collector 收集所有系统配置信息以供稍后参考。有关 Oracle Explorer Data Collector 及其相关文档的信息可在 Oracle Services Tools Bundle for Sun Systems 网站中找到。

有关 ZFS 管理和容量规划的其他信息,请参阅 Oracle Solaris 管理:ZFS 文件系统 指南。

创建存档

要存档根池并包括所有快照,需要创建 ZFS 复制流。为此,首先从池的顶级创建递归快照,如下所述。同样,可以对需要存档并传给迁移主机的其他池进行存档。

注意,rpool 是默认的根池名称,但在任何给定系统上根池可能有不同的名称。可以使用 beadm list -d 确定 BE 驻留在哪个池。在本文的其余部分,将使用默认名称 rpool 引用根池。

使用以下命令创建根池的递归快照。快照名称(本例中为 archive)可以基于日期或您需要的任何其他描述性标签。

# zfs snapshot -r rpool@archive

接下来,删除交换和转储设备快照,因为它们可能不包含任何相关数据,删除它们通常会显著降低存档的大小。

:关于转储设备,尽管可能性不大,但转储设备也有可能有数据尚未被提取到 /var 数据集(以核心存档的形式)。如果是这种情况,且应保存转储设备的内容,则在删除转储设备快照之前将内容转储输出到文件系统。详情参见 dumpadm(1M)。

以下命令将删除默认命名的交换和转储设备快照,虽然主机上可能部署了其他快照。要确定是否存在默认命名设备之外的其他设备,可使用 swap(1M) 和 dumpadm(1M) 分别列出交换和转储设备的名称。

# zfs destroy rpool/swap@archive
# zfs destroy rpool/dump@archive

既然快照已经准备好,下一步是将其发送到文件进行存档。如果要存档多个 ZFS 池,每个池将有一个快照,每个快照需要发送到自己的存档文件。以下步骤主要是创建根池的存档。不过,可用同样的方式对系统上的任何其他池进行存档。

要将快照发送到文件,请通过管道将 zfs send 命令的结果输出到 gzip 命令(如下所示),结果产生一个压缩文件,其中包含池快照的存档。创建此存档文件时,一个好的主意是,使用反映主机名、日期或其他有助于稍后确定存档内容的描述性词语的唯一命名方法。

您可以将存档文件保存在本地以便稍后进行重定位,也可以在可移动介质上创建存档文件。存储存档文件的位置应是定期备份的文件系统。同时,尽管使用了压缩,文件系统上仍应有足够的可用存储空间。一个好的经验是有足够的空间容纳 zpool list 报告的 ALLOC 量的总和。

使用以下命令在本地创建存档文件。存档文件名可以是任何有助于识别此存档以便稍后使用的字符串。通常的选择可能是使用主机名加日期,如以下示例所示。

# zfs send -Rv rpool@archive | gzip > /path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz

现在,将存档文件移到文件服务器以便稍后检索,如图 2 所示。

图 2

图 2. 确保可访问 Oracle Solaris 11 11/11 存档

还可以选择将存档文件直接写入挂载 NFS 的路径,如下所示:

# zfs send -Rv rpool@archive | gzip > /net/FILESERVER/path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz

类似地,可以通过 ssh 以流方式将存档文件发送到文件服务器:

# zfs send -Rv rpool@archive | gzip | ssh USER@FILESEVER "cat> /path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz"

注意,如果通过网络以流方式传送存档,ssh 传输不支持任何一种断点续传功能。因此,如果网络连接中断,将需要重新启动整个命令。

迁移存档文件已创建,现在可以使用以下命令删除本地快照:

# zfs destroy -r rpool@archive

第 2 阶段:准备配置 Oracle Solaris 11 11/11 系统

在引导迁移的 Oracle Solaris 11 11/11 实例之前,可通过从运行 Oracle Solaris 10 的迁移系统收集所有相关系统配置参数来准备迁移。需要收集的系统配置项包括但不限于以下内容:

  • 主机名
  • 时区
  • 区域设置
  • 根口令
  • 管理员用户信息
  • 主网络接口(如果不是自动配置)
  • 名称服务信息

有关所需数据的信息,请参见安装 Oracle Solaris 11 系统 第 6 章“取消配置或重新配置 Oracle Solaris 实例”。

在恢复存档时须重新生成系统配置信息。可以这样来完成这一任务:在运行中的 Oracle Solaris 11 11/11 系统上生成 SC (System Configuration) 配置文件,然后将该配置文件复制到恢复的 Oracle Solaris 11 11/11 存档以便在第一次引导时自动应用。

sysconfigcreate-profile 子命令调用 SCI Tool 接口,向您询问系统配置信息,然后生成一个 SC 配置文件,您稍后可以用它来配置系统。

使用以下命令在本地创建 SC 配置文件。配置文件名可以是任何有助于识别该配置文件以便稍后使用的字符串。以下示例使用附有日期信息的 config

# sysconfig create-profile -o /path/to/config_$(date +%Y%m%d).xml

然后将 SC 配置文件移到文件服务器以便稍后检索。

还可以选择创建 SC 配置文件并将其直接写入挂载 NFS 的路径,如下所示。

# sysconfig create-profile -o /net/FILESERVER/path/to/config_$(date +%Y%m%d).xml
 

第 3 阶段:迁移 Oracle Solaris 11 11/11 存档

图 3 说明迁移 Oracle Solaris 11 11/11 存档时所发生的情况。

图 3

图 3. 迁移 Oracle Solaris 11 11/11 存档

引导设备和根池准备

第一步是配置新的引导磁盘设备。有关如何管理磁盘设备、确定引导设备和更改默认引导设备(如果需要)的信息,请参见以下指南:

如前所述,可以复制原来的磁盘布局,也可以使用不同的布局,只要采取以下步骤并将磁盘开始部分的空间预留给引导数据。根池大小不必与原始大小相同。不过,新池的大小必须足以容纳各自存档文件中的所有数据(例如,与 zpool list 输出中的 ALLOC 部分大小相等,如前所述)。

根据存档系统上的初始磁盘配置决定如何配置引导设备。在此重申,要求最终创建的 ZFS 池的大小应足以存储存档数据集,如 zpool list 的输出中所显示的 ALLOC 数值。

使用 format(1M) 命令根据需要配置磁盘分区和/或分片。对于引导设备,应使用 VTOC 标签,默认配置为起始于柱 1 的全设备分片 0。作为创建存档的一部分保存的文件可以提供关于如何最好地配置引导设备的指导。

清单 2 中的示例说明如何从 format 实用程序的菜单选择所需的引导设备。

# format
Searching for disks...done
             c3t3d0: configured with capacity of 68.35GB

AVAILABLE DISK SELECTIONS:

0. c3t2d0 <SEAGATE-ST973401LSUN72G-0556 cyl 8921 alt 2 hd 255 sec 63>
    /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@2,0
1. c3t3d0 <FUJITSU-MAY2073RCSUN72G-0401 cyl 14087 alt 2 hd 24 sec 424>
   /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@3,0

Specify disk (enter its number): 1

selecting c3t3d0
[disk formatted]

清单 2. 选择引导磁盘

在 x86 系统上,如果看到 No Solaris fdisk partition found 消息,则需要创建 fdisk 分区:

format> fdisk
No fdisk table exists. The default partition for the disk is:

 a 100% "SOLARIS System" partition

Type "y" to accept the default partition, otherwise type "n" to edit the partition table.
y
format>

现在根据需要配置分片。清单 3 是设置全容量分片 0 的示例,这是默认配置。该分片从柱 1 开始,以便在磁盘开头部分为引导软件留出空间。注意,根据系统架构、磁盘几何及其他变量的不同,分区表可能看起来不同。

partition> print
format> partition
Current partition table (default):

Total disk cylinders available: 8921 + 2 (reserved cylinders)

Part     Tag           Flag     Cylinders     Size            Blocks
 0       unassigned    wm       0             0          (0/0/0)       0
 1       unassigned    wm       0             0          (0/0/0)       0
 2       backup        wu       0 - 8920      68.34GB    (8921/0/0) 143315865
 3       unassigned    wm       0             0          (0/0/0)       0
 4       unassigned    wm       0             0          (0/0/0)       0
 5       unassigned    wm       0             0          (0/0/0)       0
 6       unassigned    wm       0             0          (0/0/0)       0 
 7       unassigned    wm       0             0          (0/0/0)       0
 8       boot          wu       0 -  0        7.84MB     (1/0/0)       16065
 9       unassigned    wm       0             0          (0/0/0)       0

partition> 0
Part     Tag           Flag     Cylinders     Size            Blocks
 0       unassigned    wm       0             0           (0/0/0)       0

Enter partition id tag[unassigned]: root
Enter partition permission flags[wm]: 
Enter new starting cyl[1]: 1
Enter partition size[0b, 0c, 1e, 0.00mb, 0.00gb]: $
partition>

清单 3. 设置全容量分片 0

根据需要配置分片之后,对磁盘进行标记,如清单 4 所示。确认整体布局之后再继续下一步。

partition> label
Ready to label disk, continue?
y
partition> print
Current partition table (unnamed):
Total disk cylinders available: 8921 + 2 (reserved cylinders)

Part       Tag           Flag    Cylinders    Size            Blocks
 0         root          wm      1 - 8920     68.34GB    (0/0/0)       0
 1         unassigned    wm      0            0          (0/0/0)       0
 2         backup        wu      0 - 8920     68.34GB    (8921/0/0) 143315865
 3         unassigned    wm      0            0          (0/0/0)       0
 4         unassigned    wm      0            0          (0/0/0)       0
 5         unassigned    wm      0            0          (0/0/0)       0
 6         unassigned    wm      0            0          (0/0/0)       0 
 7         unassigned    wm      0            0          (0/0/0)       0
 8         boot          wu      0 -  0       7.84MB     (1/0/0)       16065
 9         unassigned    wm      0            0          (0/0/0)       0

partition> ^D

清单 4. 标记磁盘

有关如何管理磁盘设备的更多信息,请参阅 Oracle Solaris 管理:设备和文件系统 指南。

ZFS 池创建和存档恢复

磁盘配置已完成,现在使用以下命令在分片 0 上创建新的根池:

# zpool create rpool cXtXdXs0

注意,如果存档系统的根池未使用默认名称 rpool,请用其名称取代 rpool。当使用不同命名的池时,迁移过程能够成功完成,但所生成的 ZFS 文件系统将具有不同的挂载点。

下一步是从存档文件恢复 ZFS 数据集。如果存档存储在可移动介质上,现在应连接和配置该介质以便可以访问其中的文件。有关如何配置可移动介质的更多信息,请参阅 Oracle Solaris 管理:设备和文件系统 指南。

一旦可以在本地访问该文件,使用以下命令恢复数据集:

# gzcat /path/to/archive_myhost_20111011.zfs.gz | zfs receive -vF rpool

或者,如果文件存储在网络文件服务器上,可以使用以下命令以流方式获取存档文件并恢复数据集。

# ssh USER@FILESERVER "cat /path/to/archive_myhost_20111011.zfs.gz" |  gzip -d | zfs receive -vF rpool

receive 命令可能产生以下形式的错误消息:cannot receive $share2 property on rpool:invalid property value。这是意料之中的,并不影响恢复数据集的操作。

如果还存档有其他的池,需要在此主机上还原,此时可以使用上述相同的 ZFS 操作恢复这些池。有关如何迁移 ZFS 数据集的其他信息,请参阅 Oracle Solaris 管理:ZFS 文件系统 指南。

本过程的数据迁移部分现已完成。现在必须执行最后几步来确保迁移系统将按照预期方式进行引导。

硬件配置和测试

下面需要创建迁移系统使用的交换和转储设备。注意,本文中使用默认命名的设备。因此无需其他管理任务(如使用 swap(1M) 添加交换设备),因为这些设备已经在使用中并且已配置为在引导时随系统一起运行。如果迁移系统的内存配置与存档系统不同,迁移系统可能需要不同的交换和转储设备大小,但名称仍与先前配置中的相同,这样,这些设备在迁移系统的首次引导时会被正确配置。

应按照 Oracle Solaris 管理:设备和文件系统Oracle Solaris 管理:ZFS 文件系统 指南中的建议调整交换和转储设备的大小,大致如表 1 所示。

表 1. 交换和转储设备大小
物理内存 交换大小 转储大小
最多具有 4 GB 物理内存的系统 1 GB 2 GB
具有 4 GB 至 8 GB 物理内存的中等规模服务器 2 GB 4 GB
具有 16 GB 至 32 GB 物理内存的高端服务器 4 GB 8 GB+
具有超过 32 GB 物理内存的系统 总内存大小的 1/4 总内存大小的 1/2

可以通过以下命令确定物理内存量:

$ prtconf |grep Memory
Memory size: 130560 Megabytes

注意,系统引导之后,如果需要,还可以添加其他交换设备。有关如何管理这些设备的更多信息,请参阅上面引用的文档。

使用以下命令重新创建具有适当容量的交换和转储设备。注意,在本示例中,迁移系统安装了 8 GB 的内存。

# zfs create -b 128k -V 2GB rpool/swap
# zfs set primarycache=metadata rpool/swap 
# zfs create -b 128k -V 4GB rpool/dump

现在需要挂载要激活的 BE,以便可以在下面的步骤中进行访问和修改。要识别准备挂载的 BE,请使用 zfs list 命令:

# zfs list -r rpool/ROOT
NAME                        USED    AVAIL  REFER  MOUNTPOINT
rpool/ROOT                  3.32G   443G    31K   legacy
rpool/ROOT/solaris_11       3.32G   443G  3.02G   /
rpool/ROOT/solaris_11/var   226M    443G   220M   /var

BE 位于根池中,在 rpool/ROOT 数据集中。每个 BE 至少有两项:根数据集和 /var 数据集。上例中的 BE 是 solaris_11

需要通过在根池上设置相应属性来指定系统重新引导时将处于活动状态的 BE。为此,使用 zpool 命令:

# zpool set bootfs=rpool/ROOT/solaris_11 rpool

要挂载活动 BE 数据集,首先需要更改挂载点。更改挂载点,然后使用以下命令挂载活动 BE 数据集:

# zfs set mountpoint=/tmp/mnt rpool/ROOT/solaris_11 
# zfs mount rpool/ROOT/solaris_11

现在可以通过 /tmp/mnt 挂载点来访问 BE 的根文件系统了。第一步是安装引导软件以便主机能够引导新根池。根据架构的不同,步骤略有不同,如下所示。这两个示例均使用 /tmp/mnt BE 挂载点。

  • 要在基于 x86 的主机上安装引导软件,请使用以下命令:

    # installgrub /tmp/mnt/boot/grub/stage1 /tmp/mnt/boot/grub/stage2 /dev/rdsk/cXtXdXs0
    
  • 要在基于 SPARC 的主机上安装引导软件,请使用以下命令:
    # installboot -F zfs /tmp/mnt/usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/cXtXdXs0
    

在新系统上,有可能未使用相同的设备,或者使用了相同的设备但配置方式不同。因此,可使用以下命令清理设备文件系统:

# devfsadm -Cn -r /tmp/mnt

下一步需要指示系统在首次引导时执行重新配置引导,这将配置任何新的设备硬件(迁移系统与存档系统相对而言)。为强制执行重新配置引导,将一个名为 reconfigure 的文件置于 BE 根文件系统的顶级。此操作不是永久性的,因为该文件会被删除,因此重新配置仅发生在放置该文件后的第一次引导时。

使用以下命令通过在活动 BE 的挂载文件系统中创建 reconfigure 文件来设置重新配置引导。

# touch /tmp/mnt/reconfigure

如果要在 x86 计算机上执行实时安装,需要重新生成 hostid 文件。如果该文件在引导时不存在,将生成该文件,因此请删除该文件,如下所示:

# rm /tmp/mnt/etc/hostid 

第 4 阶段:配置 Oracle Solaris 11 11/11 系统

下面将第 2 阶段中创建的 SC 配置文件应用于迁移系统。如果该系统上已经存在 SC 配置文件,则使用以下命令删除它:

# rm /tmp/mnt/etc/svc/profile/site/profile*.xml

接下来,需要将附录中包含的两个 Oracle Solaris 服务管理工具配置文件(/tmp/disable_sci.xmlunconfig.xml)复制到 /tmp/mnt/etc/svc/profile/site。这些配置文件将让系统在应用先前生成的 SC 配置文件之前执行取消配置。

通过从附录复制 XML 信息创建 /tmp/disable_sci.xmlunconfig.xml

# cp  /tmp/disable_sci.xml /tmp/unconfig.xml /tmp/mnt/etc/svc/profile/site

现在,将生成的 SC 配置文件复制到相应的位置,即 /tmp/mnt/etc/svc/profile/sc。此目录可能不存在,因此可能需要创建它。

# cp /path/to/config_20111011.xml /tmp/mnt/etc/svc/profile/sc/

接下来,卸载 BE 并重置挂载点:

# zfs umount rpool/ROOT/solaris_11
# zfs set mountpoint=/ rpool/ROOT/solaris_11

然后重新引导迁移系统。

如图 4 所示,除了任何系统配置、物理拓扑、外围设备方面的更改或任何其他硬件相关更改之外,迁移系统现在应与存档系统一样。有关配置的更多信息,请参阅 Oracle Solaris 管理指南

图 4

图 4. 从新引导磁盘重新引导

附录

清单 5 显示 disable_sci.xml 配置文件的内容。

<?xml version='1.0'?> 
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> 
<service_bundle type="profile" name="config_profile"> 
<service name="milestone/config" version="1" type="service"> 
<instance name="default" enabled="true"> 
<property_group name="sysconfig" type="application"> 
<propval name="interactive_config" type="boolean" value="false"/> 
<propval name="config_groups" type="astring" value="system "/> 
<propval name="configure" type="boolean" value="true"/> 
</property_group> 
</instance> 
</service> 
</service_bundle> 

清单 5. disable_sci.xml 配置文件的内容

清单 6 显示 unconfig.xml 配置文件的内容。

<?xml version='1.0'?> 
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> 
<service_bundle type="profile" name="unconfig_profile"> 
<service name="milestone/unconfig" version="1" type="service"> 
<property_group name="sysconfig" type="application"> 
<propval name="shutdown" type="boolean" value="false"/> 
<propval name="destructive_unconfig" type="boolean" value="false"/> 
<propval name="unconfig_groups" type="astring" value="system "/> 
<propval name="unconfigure" type="boolean" value="true"/> 
</property_group> 
</service> 
</service_bundle>

清单 6. unconfig.xml 配置文件的内容

另请参见

关于作者

Harold Shaw 是 Oracle Solaris 的首席软件工程师,专注于软件安装和部署技术。Harold 于 2010 年加入 Oracle。

修订版 1.0,2012 年 4 月 23 日

通过 FacebookTwitterOracle 博客关注我们。