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

如题所述

为新安装的 Oracle Solaris 11 11/11 系统(存档系统)中的根池及其关联数据集创建 ZFS 存档。创建存档时,可以将其保存在本地可移动介质中,如 USB 驱动器,也可以通过网络将其发送到一个文件服务器以便稍后从中检索。需要使用存档时,执行以下高级步骤:
在将要迁移到 Oracle Solaris 11 11/11 的 Oracle Solaris 10 系统(迁移系统)上启动一个具有超级用户权限的 shell。
选择并配置一个引导磁盘设备,创建新的 ZFS 根池。
在新池中恢复存档的 ZFS 数据集。
执行最终配置,然后重新启动迁移系统。
迁移系统必须是运行 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. 创建 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. 确保可访问 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 存档以便在第一次引导时自动应用。
sysconfig 的 create-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
温馨提示:答案为网友推荐,仅供参考
相似回答