如果从当前正在运行的系统创建引导环境,则 lucreate 命令会将 UFS 根 (/) 文件系统复制到 ZFS 根池中。复制过程可能比较耗时,具体取决于您的系统。
从 UFS 文件系统迁移时,源引导环境可以是磁盘片上的 UFS 根 (/) 文件系统。您无法从 ZFS 根池上的源引导环境在 UFS 文件系统上创建引导环境。
以下命令将从 ZFS 根池中的 UFS 根 (/) 文件系统创建一个 ZFS 根池和一个新的引导环境。执行 lucreate 操作之前,ZFS 根池必须存在且必须是使用片(而不是整个磁盘)创建的,这样才能升级和引导。磁盘不能具有 EFI 标签,但是必须为 SMI 标签。有关更多限制,请参见使用 Solaris Live Upgrade 时的系统要求和限制。
图 11–1 显示了用于在单个片 c0t1d0s5 上创建根池 rpool 的 zpool 命令。磁盘片 c0t0d0s0 包含 UFS 根 (/) 文件系统。在 lucreate 命令中,-c 选项指定当前正在运行的系统 c0t0d0,它是一个 UFS 根 (/) 文件系统。-n 选项为要创建的引导环境指定名称 new-zfsBE。-p 选项指定将新的引导环境置于 rpool 中。UFS /export 文件系统和 /swap 卷不会被复制到新的引导环境中。
本示例显示了与图 11–1 中的命令相同的命令。这些命令创建一个新的根池 rpool,并从 UFS 根 (/) 文件系统在该池中创建一个新的引导环境。在本示例中,zfs list 命令显示由 zpool 命令创建的 ZFS 根池。下一个 zfs list 命令显示由 lucreate 命令创建的数据集。
# zpool create rpool c0t1d0s5 # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 9.29G 57.6G 20K /rpool |
# lucreate -c c0t0d0 -n new-zfsBE -p rpool # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 9.29G 57.6G 20K /rpool rpool/ROOT 5.38G 57.6G 18K /rpool/ROOT rpool/ROOT/new-zfsBE 5.38G 57.6G 551M /tmp/.alt.luupdall.110034 rpool/dump 1.95G - 1.95G - rpool/swap 1.95G - 1.95G - |
新的引导环境为 rpool/ROOT/new-zfsBE。现在可以升级和激活引导环境 new-zfsBE 了。
如果您的系统具有 Solaris 卷管理器 (Solaris Volume Manager, SVM) 卷,则可以迁移 UFS 文件系统。要从现有的 SVM 配置创建 UFS 引导环境,需要从当前运行的系统创建新的引导环境。然后从新的 UFS 引导环境创建 ZFS 引导环境。
Solaris 卷管理器 (Solaris Volume Manager, SVM) 概述。ZFS 使用存储池的概念来管理物理存储。以前,文件系统是在单个物理设备的基础上构造的。为针对多个设备进行寻址并提供数据冗余,引入了卷管理器的概念来提供单个设备的映像。因此,不必修改文件系统即可利用多个设备。此设计增加了复杂性。此复杂性最终阻碍了特定文件系统的继续发展,因为这类文件系统无法控制数据在虚拟卷上的物理位置。
ZFS 存储池取代了 SVM。ZFS 完全取消了卷管理。ZFS 将设备聚集到存储池中,而不是强制要求创建虚拟卷。存储池描述了存储设备布局和数据冗余等的物理特征,并充当可以在其中创建文件系统的任意数据存储库。文件系统不再仅限于单个设备,从而可与池中的所有文件系统共享空间。您不再需要预先确定文件系统的大小,因为文件系统会在分配给存储池的空间内自动增长。添加新存储器后,无需执行其他操作,池中的所有文件系统即可立即使用所增加的空间。在许多方面,存储池都类似于虚拟内存系统。内存 DIMM 添加到系统后,操作系统并不强制您调用某些命令来配置该内存并将其指定给单个进程。系统中的所有进程都会自动使用所增加的内存。
迁移具有 SVM 卷的系统时,SVM 卷将被忽略。您可以在根池中创建镜像,如以下示例所示。
在本示例中,带有 -m 选项的 lucreate 命令从当前运行的系统创建新的引导环境。磁盘片 c1t0d0s0 包含使用 SVM 卷配置的 UFS 根 ( /) 文件系统。zpool 命令创建一个根池 c1t0d0s0 和一个 RAID-1 卷(镜像) c2t0d0s0。在第二个 lucreate 命令中,-n 选项为要创建的引导环境指定名称 c0t0d0s0。-s 选项识别 UFS 根 (/) 文件系统。-p 选项指定将新的引导环境置于 rpool 中。
# lucreate -n ufsBE -m /:/dev/md/dsk/d104:ufs # zpool create rpool mirror c1t0d0s0 c2t1d0s0 # lucreate -n c0t0d0s0 -s ufsBE -p zpool |
现在可以升级和激活引导环境 c0t0d0s0 了。