跳过导航链接 | |
退出打印视图 | |
Oracle Solaris ZFS 管理指南 Oracle Solaris 10 1/13 Information Library (简体中文) |
1. Oracle Solaris ZFS 文件系统(介绍)
4. 安装和引导 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)
解决妨碍成功引导的 ZFS 挂载点问题 (Solaris 10 10/08)
6. 使用 Oracle Solaris ZFS 快照和克隆
7. 使用 ACL 和属性保护 Oracle Solaris ZFS 文件
以下各节描述了如何执行下列任务:
由于以下原因,您可能需要替换根池中的磁盘:
根池太小,您想使用较大的磁盘替换较小的磁盘。
根池磁盘发生故障。在非冗余池中,如果磁盘发生故障导致系统无法引导,必须在替换根池磁盘前从备用介质(如 DVD 或网络)进行引导。
在镜像根池配置中,您可以尝试替换磁盘而不必从备用介质引导。可以使用 zpool replace 命令替换发生故障的磁盘。或者,如果有额外的磁盘,可以使用 zpool attach 命令。有关附加额外磁盘和分离根池磁盘的示例,请参见本节中的过程。
有些硬件要求您在尝试通过 zpool replace 操作替换故障磁盘之前使磁盘脱机并取消其配置。例如:
# zpool offline rpool c1t0d0s0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 # zpool replace rpool c1t0d0s0 # zpool online rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
对于某些硬件,插入替换磁盘后不必使其联机或进行重新配置。
您必须标识当前磁盘和新磁盘的引导设备路径名,以便测试从替换磁盘引导,如果替换磁盘发生故障,也可以手动从现有磁盘引导。在以下过程的示例中,当前根池磁盘 (c1t10d0s0) 的路径名为:
/pci@8,700000/pci@3/scsi@5/sd@a,0
替换引导磁盘 c1t9d0s0 的路径名为:
/pci@8,700000/pci@3/scsi@5/sd@9,0
有关为用作根池的磁盘重新设置标签的信息,请参见以下参考文档:
例如:
# zpool attach rpool c1t10d0s0 c1t9d0s0
例如:
# zpool status rpool pool: rpool state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress, 25.47% done, 0h4m to go config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t10d0s0 ONLINE 0 0 0 c1t9d0s0 ONLINE 0 0 0 errors: No known data errors
确定当前的 rpool 池大小:
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 29.8G 152K 29.7G 0% 1.00x ONLINE -
# zpool set autoexpand=on rpool
查看扩展后的 rpool 池大小:
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 279G 146K 279G 0% 1.00x ONLINE -
例如,在基于 SPARC 的系统上,应使用类似以下的语法:
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
例如:
# zpool detach rpool c1t10d0s0
SPARC-在 SPARC 引导 PROM 下使用 eeprom 命令或 setenv 命令。
x86-重新配置系统 BIOS。
可以创建根池快照以便进行恢复。创建根池快照的最好方法是对根池执行递归快照。
下面的过程将创建递归根池快照,并将快照以文件和快照的形式存储到远程系统上的池中。如果根池失败,可以使用 NFS 挂载远程数据集,快照文件可以放入重新创建的池中。您也可以将根池快照以实际快照的形式存储到远程系统上的池中。从远程系统发送和接收快照比较复杂,因为在从 Oracle Solaris OS miniroot 引导要修复的系统时,您必须配置 ssh 或使用 rsh。
在根池恢复中,以文件或快照形式验证远程存储的快照是一个重要步骤。无论何种方法,都应按照例程重新创建快照,例如在池配置更改或 Solaris OS 升级时。
在以下过程中,系统从 zfsBE 引导环境引导。
例如:
remote# zfs create rpool/snaps
例如:
remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps # share -@rpool/snaps /rpool/snaps sec=sys,rw=local-system,root=local-system ""
local# zfs snapshot -r rpool@snap1 local# zfs list -r rpool # NAME USED AVAIL REFER MOUNTPOINT rpool 15.1G 119G 106K /rpool rpool@snap1 0 - 106K - rpool/ROOT 5.00G 119G 31K legacy rpool/ROOT@snap1 0 - 31K - rpool/ROOT/zfsBE 5.00G 119G 5.00G / rpool/ROOT/zfsBE@snap1 0 - 5.00G - rpool/dump 2.00G 120G 1.00G - rpool/dump@snap1 0 - 1.00G - rpool/export 63K 119G 32K /export rpool/export@snap1 0 - 32K - rpool/export/home 31K 119G 31K /export/home rpool/export/home@snap1 0 - 31K - rpool/swap 8.13G 123G 4.00G - rpool/swap@snap1 0 - 4.00G -
例如,要将根池快照作为文件发送到远程池,请使用类似以下的语法:
local# zfs send -Rv rpool@snap1 > /net/remote-system/rpool/snaps/rpool.snap1 sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
local# zfs send -Rv rpool@snap1 > /net/remote-system/rpool/snaps/rpool.snap1 sending from @ to rpool@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/swap@snap1
要将根池快照作为快照发送到远程池,请使用类似以下的语法:
local# zfs send -Rv rpool@snap1 | ssh remote-system zfs receive -Fd -o canmount=off tank/snaps sending from @ to rpool@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/swap@snap1
在此过程中,假设下列条件存在:
无法恢复 ZFS 根池。
ZFS 根池快照存储在远程系统上并通过 NFS 共享。
在本地系统上执行所有步骤。
SPARC-选择以下引导方法之一:
ok boot net -s ok boot cdrom -s
如果您未使用 -s 选项,则需要退出安装程序。
x86-选择从 DVD 或网络进行引导的选项。然后,退出安装程序。
例如:
# mount -F nfs remote-system:/rpool/snaps /mnt
如果您尚未配置网络服务,则可能需要指定 remote-system 的 IP 地址。
有关为磁盘重新设置标签的更多信息,请参见以下参考文档:
例如:
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0
此步骤可能会花费一些时间。例如:
# cat /mnt/rpool.snap1 | zfs receive -Fdu rpool
使用 -u 选项表示 zfs receive 操作完成时不挂载恢复的归档文件。
要恢复存储在远程系统上的池中的实际根池快照,请使用类似以下的语法:
# ssh remote-system zfs send -Rb tank/snaps/rpool@snap1 | zfs receive -F rpool
例如:
# zfs list
例如:
# zpool set bootfs=rpool/ROOT/zfsBE rpool
SPARC:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
# init 6
此过程假设现有根池快照可用。在本例中,本地系统提供这些根池快照。
# zfs snapshot -r rpool@snap1 # zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 7.84G 59.1G 109K /rpool rpool@snap1 21K - 106K - rpool/ROOT 4.78G 59.1G 31K legacy rpool/ROOT@snap1 0 - 31K - rpool/ROOT/s10zfsBE 4.78G 59.1G 4.76G / rpool/ROOT/s10zfsBE@snap1 15.6M - 4.75G - rpool/dump 1.00G 59.1G 1.00G - rpool/dump@snap1 16K - 1.00G - rpool/export 99K 59.1G 32K /export rpool/export@snap1 18K - 32K - rpool/export/home 49K 59.1G 31K /export/home rpool/export/home@snap1 18K - 31K - rpool/swap 2.06G 61.2G 16K - rpool/swap@snap1 0 - 16K -
ok boot -F failsafe 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.
# zfs rollback rpool@snap1 # zfs rollback rpool/ROOT@snap1 # zfs rollback rpool/ROOT/s10zfsBE@snap1
# init 6