JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris ZFS 管理指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris ZFS 文件系统(介绍)

2.  Oracle Solaris ZFS 入门

3.  管理 Oracle Solaris ZFS 存储池

4.  安装和引导 Oracle Solaris ZFS 根文件系统

安装和引导 Oracle Solaris ZFS 根文件系统(概述)

ZFS 安装功能

支持 ZFS 所要满足的 Oracle Solaris 安装要求和 Oracle Solaris Live Upgrade 要求

Oracle Solaris 发行版要求

ZFS 根池的一般要求

ZFS 根池的磁盘空间要求

ZFS 根池配置要求

安装 ZFS 根文件系统(Oracle Solaris 初始安装)

如何创建镜像 ZFS 根池(安装后)

安装 ZFS 根文件系统(Oracle Solaris Flash 归档文件安装)

安装 ZFS 根文件系统(JumpStart 安装)

ZFS 的 JumpStart 关键字

ZFS 的 JumpStart 配置文件示例

ZFS 的 JumpStart 问题

迁移到 ZFS 根文件系统或更新 ZFS 根文件系统 (Live Upgrade)

Live Upgrade 的 ZFS 迁移问题

使用 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)

管理 ZFS 交换和转储设备

调整 ZFS 交换设备和转储设备的大小

定制 ZFS 交换卷和转储卷

ZFS 转储设备故障排除

从 ZFS 根文件系统引导

从镜像 ZFS 根池中的备用磁盘引导

SPARC:从 ZFS 根文件系统引导

x86:从 ZFS 根文件系统引导

解决妨碍成功引导的 ZFS 挂载点问题 (Solaris 10 10/08)

如何解决 ZFS 挂载点问题

在 ZFS 根环境中进行引导以恢复系统

如何引导 ZFS 故障安全模式

如何从备用介质引导 ZFS

恢复 ZFS 根池或根池快照

如何替换 ZFS 根池中的磁盘

如何创建根池快照

如何重新创建 ZFS 根池和恢复根池快照

如何从故障安全引导回滚根池快照

5.  管理 Oracle Solaris ZFS 文件系统

6.  使用 Oracle Solaris ZFS 快照和克隆

7.  使用 ACL 和属性保护 Oracle Solaris ZFS 文件

8.  Oracle Solaris ZFS 委托管理

9.  Oracle Solaris ZFS 高级主题

10.  Oracle Solaris ZFS 故障排除和池恢复

11.  建议的 Oracle Solaris ZFS 做法

A.  Oracle Solaris ZFS 版本说明

索引

从 ZFS 根文件系统引导

基于 SPARC 和基于 x86 的系统都使用新型的引导方式,即通过引导归档文件进行引导,引导归档文件是一个文件系统映像,该映像中包含进行引导时所需的文件。从 ZFS 根文件系统引导系统时,将会在选择用来进行引导的根文件系统中解析引导归档文件和内核文件的路径名。

引导系统进行安装时,在整个安装过程中,RAM 磁盘用于根文件系统。

从 ZFS 文件系统引导不同于从 UFS 文件系统引导,因为对于 ZFS,引导设备说明符标识存储池,而不是单个根文件系统。存储池可能包含多个可引导的数据集或 ZFS 根文件系统。从 ZFS 引导时,必须指定引导设备和由该引导设备标识的池中的根文件系统。

缺省情况下,选择用来进行引导的数据集是由池的 bootfs 属性标识的。通过在 boot -Z 命令中指定备用可引导数据集可以覆盖此缺省选择。

从镜像 ZFS 根池中的备用磁盘引导

您可以在安装系统时创建镜像 ZFS 根池,也可以在安装后通过附加磁盘来创建镜像 ZFS 根池。有关更多信息,请参见:

请查看以下有关镜像 ZFS 根池的已知问题:

SPARC:从 ZFS 根文件系统引导

在具有多个 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 引导选项:

示例 4-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

示例 4-12 SPARC:在故障安全模式下引导 ZFS 文件系统

在基于 SPARC 的系统上,您可以按如下方式从位于 /platform/`uname -i`/failsafe 的故障安全归档文件引导:

ok boot -F failsafe

要从特定的 ZFS 可引导数据集引导故障安全归档文件,请使用类似如下的语法:

ok boot -Z rpool/ROOT/zfsBE -F failsafe

x86:从 ZFS 根文件系统引导

在 Oracle Solaris OS 安装过程中或执行 Live Upgrade 过程期间,以下项会添加到 /pool-name /boot/grub/menu.lst 文件以自动引导 ZFS:

title Solaris 10 1/13  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

示例 4-13 x86:引导 ZFS 文件系统

当系统从 ZFS 文件系统引导时,根设备将由 -B $ZFS-BOOTFS 引导参数指定。例如:

title Solaris 10 1/13  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

示例 4-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

解决妨碍成功引导的 ZFS 挂载点问题 (Solaris 10 10/08)

更改活动引导环境 (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 数据集有无效的挂载点,通过下列步骤可以更正该挂载点。

如何解决 ZFS 挂载点问题

  1. 从故障安全归档文件引导系统。
  2. 导入池。

    例如:

    # zpool import rpool
  3. 查找不正确的临时挂载点。

    例如:

    # 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 数据集查找类似不正确的临时挂载点。

  4. 重置 ZFS BE 及其数据集的挂载点。

    例如:

    # zfs inherit -r mountpoint rpool/ROOT/s10up
    # zfs set mountpoint=/ rpool/ROOT/s10up
  5. 重新引导系统。

    出现引导特定 BE 的选项(在 OpenBoot PROM 提示符下或 GRUB 菜单中)时,选择刚刚更正了其挂载点的引导环境。

在 ZFS 根环境中进行引导以恢复系统

如果您需要通过引导系统来解决 root 口令丢失或类似问题,请按以下过程操作。

您必须引导故障安全模式或从备用介质引导,具体取决于错误的严重程度。一般而言,引导故障安全模式可以解决 root 口令丢失或未知问题。

如果您需要恢复根池或根池快照,请参见恢复 ZFS 根池或根池快照

如何引导 ZFS 故障安全模式

  1. 引导故障安全模式。
    • 在基于 SPARC 的系统上,在 ok 提示符下键入以下内容:

      ok boot -F failsafe
    • 在 x86 系统上,从 GRUB 菜单中选择故障安全模式。

  2. 当出现提示时,将 ZFS BE 挂载于 /a
    .
    .
    .
    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.
  3. 转到 /a/etc 目录。
    # cd /a/etc
  4. 如有必要,设置 TERM 类型。
    # TERM=vt100
    # export TERM
  5. 修正 passwdshadow 文件。
    # vi shadow
  6. 重新引导系统。
    # init 6

如何从备用介质引导 ZFS

如果某个问题妨碍系统成功引导,或者发生其他严重问题,您必须从网络安装服务器或者 Oracle Solaris 安装 DVD 引导,导入根池,挂载 ZFS BE,然后尝试解决问题。

  1. 从安装 DVD 或者从网络进行引导。
    • SPARC-选择以下引导方法之一:

      ok boot cdrom -s 
      ok boot net -s

      如果您未使用 -s 选项,则必须退出安装程序。

    • x86-选择网络引导选项或者从本地 DVD 引导。

  2. 导入根池并指定备用挂载点。例如:
    # zpool import -R /a rpool
  3. 挂载 ZFS BE。例如:
    # zfs mount rpool/ROOT/zfsBE
  4. /a 目录访问 ZFS BE 内容。
    # cd /a
  5. 重新引导系统。
    # init 6