跳过导航链接 | |
退出打印视图 | |
Oracle Solaris ZFS 管理指南 Oracle Solaris 10 8/11 Information Library (简体中文) |
1. Oracle Solaris ZFS 文件系统(介绍)
3. Oracle Solaris ZFS 与传统文件系统之间的差别
5. 安装和引导 Oracle Solaris ZFS 根文件系统
安装和引导 Oracle Solaris ZFS 根文件系统(概述)
支持 ZFS 所要满足的 Oracle Solaris 安装要求和 Oracle Solaris Live Upgrade 要求
安装 ZFS 根文件系统(Oracle Solaris 初始安装)
安装 ZFS 根文件系统(Oracle Solaris Flash 归档文件安装)
迁移到 ZFS 根文件系统或更新 ZFS 根文件系统 (Live Upgrade)
使用 Live Upgrade 迁移或更新 ZFS 根文件系统(不具有区域)
使用 Live Upgrade 迁移或升级具有区域的系统 (Solaris 10 10/08)
如何将 UFS 上具有区域根的 UFS 根文件系统迁移到 ZFS 根文件系统 (Solaris 10 10/08)
如何配置 ZFS 上具有区域根的 ZFS 根文件系统 (Solaris 10 10/08)
如何升级或修补 ZFS 上具有区域根的 ZFS 根文件系统 (Solaris 10 10/08)
使用 Oracle Solaris Live Upgrade 迁移或升级具有区域的系统(最低 Solaris 10 5/09)
支持的 ZFS 和区域根配置信息(最低 Solaris 10 5/09)
如何创建具有 ZFS 根文件系统和区域根的 ZFS BE(最低 Solaris 10 5/09)
如何升级或修补具有区域根的 ZFS 根文件系统(最低 Solaris 10 5/09)
如何将具有区域根的 UFS 根文件系统迁移到 ZFS 根文件系统(最低 Solaris 10 5/09)
7. 使用 Oracle Solaris ZFS 快照和克隆
8. 使用 ACL 和属性保护 Oracle Solaris ZFS 文件
基于 SPARC 和基于 x86 的系统都使用新型的引导方式,即通过引导归档文件进行引导,引导归档文件是一个文件系统映像,该映像中包含进行引导时所需的文件。从 ZFS 根文件系统引导系统时,将会在选择用来进行引导的根文件系统中解析引导归档文件和内核文件的路径名。
引导系统进行安装时,在整个安装过程中,RAM 磁盘用于根文件系统。
从 ZFS 文件系统引导不同于从 UFS 文件系统引导,因为对于 ZFS,引导设备说明符标识存储池,而不是单个根文件系统。存储池可能包含多个可引导的数据集或 ZFS 根文件系统。从 ZFS 引导时,必须指定引导设备和由该引导设备标识的池中的根文件系统。
缺省情况下,选择用来进行引导的数据集是由池的 bootfs 属性标识的。通过在 boot -Z 命令中指定备用可引导数据集可以覆盖此缺省选择。
您可以在安装系统时创建镜像 ZFS 根池,也可以在安装后通过附加磁盘来创建镜像 ZFS 根池。有关更多信息,请参见:
请查看以下有关镜像 ZFS 根池的已知问题:
如果您使用 zpool replace 命令替换根池磁盘,必须使用 installboot 或·installgrub 命令在新替换的磁盘上安装引导信息。如果您使用初始安装方法创建镜像 ZFS 根池,或者使用 zpool attach 命令向根池附加磁盘,则此步骤不是必需的。installboot 和 installgrub 命令语法如下:
SPARC:
sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk
x86:
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0
您可以从镜像 ZFS 根池中的不同设备引导。根据硬件配置,可能需要更新 PROM 或 BIOS 以指定不同的引导设备。
例如,您可以从以下池中的任一磁盘(c1t0d0s0 或 c1t1d0s0)进行引导。
# zpool status rpool pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 ONLINE 0 0 0
SPARC:在 ok 提示符下指定备用磁盘。例如:
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0
重新引导系统后,确认活动引导设备。例如:
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a'
x86:从相应的 BIOS 菜单中选择镜像 ZFS 根池中的备用磁盘。
然后,使用类似以下的语法确认系统是从备用磁盘引导:
x86# prtconf -v|sed -n '/bootpath/,/value/p' name='bootpath' type=string items=1 value='/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a'
在具有多个 ZFS BE 的基于 SPARC 的系统上,可以通过使用 luactivate 命令从任何 BE 引导。
在 Oracle Solaris OS 安装过程中或执行 Live Upgrade 过程中,将会通过 bootfs 属性自动指定缺省的 ZFS 根文件系统。
一个池中可能存在多个可引导的数据集。缺省情况下,/pool-name/boot/menu.lst 文件中的可引导数据集项由池的 bootfs 属性来标识。但是,menu.lst 项可以包含 bootfs 命令,该命令可指定池中的备用数据集。这样,menu.lst 文件就可以包含池中多个根文件系统的项。
当系统中安装了 ZFS 根文件系统或迁移到 ZFS 根文件系统时,类似如下的项会添加到 menu.lst 文件:
title zfsBE bootfs rpool/ROOT/zfsBE title zfs2BE bootfs rpool/ROOT/zfs2BE
创建新 BE 时,将会自动更新 menu.lst 文件。
在基于 SPARC 的系统上,提供了两个 ZFS 引导选项:
激活 BE 后,您可以使用 boot -L 命令显示 ZFS 池中可引导的数据集列表。然后,您可以在列表中选择可引导的数据集之一。此时将会显示有关引导该数据集的详细说明。您可以按照这些说明来引导选定的数据集。
您可以使用 boot -Z dataset 命令引导特定的 ZFS 数据集。
示例 5-11 SPARC:从特定的 ZFS 引导环境引导
如果系统的引导设备上的 ZFS 存储池中有多个 ZFS BE,您可以使用 luactivate 命令指定缺省 BE。
例如,以下 lustatus 输出显示有两个 ZFS BE 可用:
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- zfsBE yes no no yes - zfs2BE yes yes yes no -
如果基于 SPARC 的系统上有多个 ZFS BE,您可以使用 boot -L 命令从非缺省 BE 引导。然而,从 boot -L 会话引导的 BE 不会向缺省 BE 一样重置,bootfs 属性也不会进行更新。如果要使从 boot -L 会话引导的 BE 成为缺省 BE,必须使用 luactivate 命令激活它。
例如:
ok boot -L Rebooting with command: boot -L Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 File and args: -L 1 zfsBE 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 1 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/zfsBE Program terminated ok boot -Z rpool/ROOT/zfsBE
示例 5-12 SPARC:在故障安全模式下引导 ZFS 文件系统
在基于 SPARC 的系统上,您可以按如下方式从位于 /platform/`uname -i`/failsafe 的故障安全归档文件引导:
ok boot -F failsafe
要从特定的 ZFS 可引导数据集引导故障安全归档文件,请使用类似如下的语法:
ok boot -Z rpool/ROOT/zfsBE -F failsafe
在 Oracle Solaris OS 安装过程中或执行 Live Upgrade 过程期间,以下项会添加到 /pool-name /boot/grub/menu.lst 文件以自动引导 ZFS:
title Solaris 10 8/11 X86 findroot (rootfs0,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
如果由 GRUB 标识为引导设备的设备包含 ZFS 存储池,则 menu.lst 文件用于创建 GRUB 菜单。
在具有多个 ZFS BE 的基于 x86 的系统上,您可以从 GRUB 菜单中选择 BE。如果与该菜单项对应的根文件系统为 ZFS 数据集,则会添加以下选项:
-B $ZFS-BOOTFS
示例 5-13 x86:引导 ZFS 文件系统
当系统从 ZFS 文件系统引导时,根设备将由 -B $ZFS-BOOTFS 引导参数指定。例如:
title Solaris 10 8/11 X86 findroot (pool_rpool,0,a) kernel /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
示例 5-14 x86:在故障安全模式下引导 ZFS 文件系统
x86 故障安全归档文件为 /boot/x86.miniroot-safe,可以通过从 GRUB 菜单选择 Solaris 故障安全项来引导。例如:
title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe
更改活动引导环境 (Boot Environment, BE) 的最佳方法是使用 luactivate 命令。如果由于错误的修补程序或配置错误而导致活动 BE 引导失败,则从其他 BE 引导的唯一方法是在引导时选择该 BE。您可以选择备用 BE,方法为:在基于 SPARC 的系统上从 PROM 显式引导该备用 BE;在基于 x86 的系统上从 GRUB 菜单显式引导该备用 BE。
由于 Solaris 10 10/08 发行版 Live Upgrade 功能中的错误,非活动 BE 可能无法引导,因为该 BE 中的 ZFS 数据集或区域的 ZFS 数据集有无效的挂载点。如果 BE 有单独的 /var 数据集,则上述错误还会阻止该 BE 挂载。
如果区域的 ZFS 数据集有无效的挂载点,通过下列步骤可以更正该挂载点。
例如:
# zpool import rpool
例如:
# zfs list -r -o name,mountpoint rpool/ROOT/s10up NAME MOUNTPOINT rpool/ROOT/s10up /.alt.tmp.b-VP.mnt/ rpool/ROOT/s10up/zones /.alt.tmp.b-VP.mnt//zones rpool/ROOT/s10up/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA
根 BE (rpool/ROOT/s10up) 的挂载点应为 /。
如果由于 /var 挂载问题而导致引导失败,请为 /var 数据集查找类似不正确的临时挂载点。
例如:
# zfs inherit -r mountpoint rpool/ROOT/s10up # zfs set mountpoint=/ rpool/ROOT/s10up
出现引导特定 BE 的选项(在 OpenBoot PROM 提示符下或 GRUB 菜单中)时,选择刚刚更正了其挂载点的引导环境。
如果您需要通过引导系统来解决 root 口令丢失或类似问题,请按以下过程操作。
您必须引导故障安全模式或从备用介质引导,具体取决于错误的严重程度。一般而言,引导故障安全模式可以解决 root 口令丢失或未知问题。
如果您需要恢复根池或根池快照,请参见恢复 ZFS 根池或根池快照。
在基于 SPARC 的系统上,在 ok 提示符下键入以下内容:
ok boot -F failsafe
在 x86 系统上,从 GRUB 菜单中选择故障安全模式。
. . . ROOT/zfsBE was found on rpool. Do you wish to have it mounted read-write on /a? [y,n,?] y mounting rpool on /a Starting shell.
# cd /a/etc
# TERM=vt100 # export TERM
# vi shadow
# init 6
如果某个问题妨碍系统成功引导,或者发生其他严重问题,您必须从网络安装服务器或者 Oracle Solaris 安装 DVD 引导,导入根池,挂载 ZFS BE,然后尝试解决问题。
SPARC-选择以下引导方法之一:
ok boot cdrom -s ok boot net -s
如果您未使用 -s 选项,则必须退出安装程序。
x86-选择网络引导选项或者从本地 DVD 引导。
# zpool import -R /a rpool
# zfs mount rpool/ROOT/zfsBE
# cd /a
# init 6