跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:ZFS 文件系统 Oracle Solaris 11 Information Library (简体中文) |
1. Oracle Solaris ZFS 文件系统(介绍)
3. Oracle Solaris ZFS 与传统文件系统之间的差别
7. 使用 Oracle Solaris ZFS 快照和克隆
8. 使用 ACL 和属性保护 Oracle Solaris ZFS 文件
以下各节提供了关于安装和更新 ZFS 根池以及配置镜像根池的信息。
Oracle Solaris 11 Live CD 安装方法在一个磁盘上安装缺省 ZFS 根池。使用 Oracle Solaris 11 自动化安装 (automated installation, AI) 方法时,可以创建 AI 清单来标识用于 ZFS 根池的磁盘或镜像磁盘。
AI 安装程序提供了一定的灵活性:可以在缺省引导磁盘上安装 ZFS 根池,也可以在标识的目标磁盘上安装 ZFS 根池。您可以指定逻辑设备(如 c1t0d0s0)或物理设备路径。此外,可以使用 MPxIO 标识符或设备 ID 来表示要用于安装的设备。
安装后,可查看 ZFS 存储池和文件系统信息,具体内容会因安装类型和定制选项而有所不同。例如:
# zpool status pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c1t3d0s0 ONLINE 0 0 0 errors: No known data errors # zfs list # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 6.49G 60.4G 40K /rpool rpool/ROOT 3.46G 60.4G 31K legacy rpool/ROOT/solaris 3.46G 60.4G 3.16G / rpool/ROOT/solaris/var 303M 60.4G 216M /var rpool/dump 2.00G 60.5G 1.94G - rpool/export 96.5K 60.4G 32K /rpool/export rpool/export/home 64.5K 60.4G 32K /rpool/export/home rpool/export/home/admin 32.5K 60.4G 32.5K /rpool/export/home/admin rpool/swap 1.03G 60.5G 1.00G -
查看 ZFS BE 信息。例如:
# beadm list # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 3.85G static 2011-09-26 08:37
在上面的输出中,Active 字段指示 BE 当前是否处于活动状态。N 表示当前处于活动状态;R 表示重新引导时处于活动状态;NR 表示在当前以及重新引导时均处于活动状态。
缺省 ZFS 引导环境 (boot environment, BE) 的缺省名称为 solaris。可以使用 beadm list 命令来标识 BE。例如:
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 8.41G static 2011-01-13 15:31
在上面的输出中,NR 表示 BE 当前处于活动状态,且在重新引导时也将是活动 BE。
可以使用 pkg update 命令来更新 ZFS 引导环境。如果使用 pkg update 命令更新 ZFS BE,将自动创建并激活一个新 BE(除非对现有 BE 所作的更新极少)。
# pkg update DOWNLOAD PKGS FILES XFER (MB) Completed 707/707 10529/10529 194.9/194.9 . . .
将自动创建并激活一个新 BE solaris-1。
# init 6 . . . # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 6.25M static 2011-09-26 08:37 solaris-1 NR / 3.92G static 2011-09-26 09:32
# beadm activate solaris # init 6
为实现恢复,可能需要从其他 BE 复制或访问文件。
# beadm mount solaris-1 /mnt
# ls /mnt bin export media pkg rpool tmp boot home mine platform sbin usr dev import mnt proc scde var devices java net project shared doe kernel nfs4 re src etc lib opt root system
# beadm umount solaris-1
如果在自动安装期间未配置镜像根池,在安装之后也可以轻松地配置镜像根池。
有关替换根池中的磁盘的信息,请参见如何替换 ZFS 根池中的磁盘。
# zpool status rpool pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c2t0d0s0 ONLINE 0 0 0 errors: No known data errors
SPARC:确认该磁盘具有 SMI (VTOC) 磁盘标签和分片 0。如果需要为磁盘重新设置标签并创建分片 0,请参见《Oracle Solaris 管理:设备和文件系统》中的"为 ZFS 根文件系统创建磁盘分片"。
x86:确认该磁盘具有 fdisk 分区、SMI 磁盘标签和分片 0。如果需要为磁盘重新设置分区并创建分片 0,请参见《Oracle Solaris 管理:设备和文件系统》中的"为 ZFS 根文件系统创建磁盘分片"。
# zpool attach rpool c2t0d0s0 c2t1d0s0 Make sure to wait until resilver is done before rebooting.
# 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. scan: resilver in progress since Thu Sep 29 18:09:09 2011 1.55G scanned out of 5.36G at 36.9M/s, 0h1m to go 1.55G scanned out of 5.36G at 36.9M/s, 0h1m to go 1.55G resilvered, 28.91% done config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0s0 ONLINE 0 0 0 c2t1d0s0 ONLINE 0 0 0 (resilvering) errors: No known data errors
在上面的输出中,重新同步过程未完成。当您看到类似如下的消息时,说明重新同步已完成。
resilvered 5.36G in 0h10m with 0 errors on Thu Sep 29 18:19:09 2011
SPARC:通过使用引导 PROM 中的 eeprom 命令或 setenv 命令,将系统设置为自动从新磁盘引导。
x86:重新配置系统 BIOS。
由于以下原因,您可能需要替换根池中的磁盘:
根池太小,您想使用较大的磁盘替换它
根池磁盘发生故障。在非冗余池中,如果磁盘发生故障导致系统无法引导,则需要在替换根池磁盘前从备用介质(如 CD 或网络)进行引导。
在镜像根池配置下,可以尝试替换磁盘,而不一定要从备用介质引导。可以使用 zpool replace 命令替换故障磁盘,如果有额外的磁盘,则可使用 zpool attach 命令。有关附加额外磁盘和分离根池磁盘的示例,请参见以下步骤。
具有 SATA 磁盘的系统要求您在尝试通过 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 <Confirm that the new disk has an SMI label and a slice 0> # 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/c1t0d0s0
对于一些硬件,插入替换磁盘后不必使其联机并进行配置。
有关为用于根池的磁盘重新设置标签的信息,请参见《Oracle Solaris 管理:设备和文件系统》中的"如何为磁盘设置标签"。
例如:
# zpool attach rpool c2t0d0s0 c2t1d0s0 Make sure to wait until resilver is done before rebooting.
例如:
# zpool status rpool pool: rpool state: ONLINE scan: resilvered 5.36G in 0h2m with 0 errors on Thu Sep 29 18:11:53 2011 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0s0 ONLINE 0 0 0 c2t1d0s0 ONLINE 0 0 0 errors: No known data errors
例如,在基于 SPARC 的系统上:
ok boot /pci@1f,700000/scsi@2/disk@1,0
标识当前磁盘和新磁盘的引导设备路径名,以便于您从替换磁盘测试引导,而且如有必要在替换磁盘发生故障时也可手动从现有磁盘引导。在以下示例中,当前的根池磁盘 (c2t0d0s0) 为:
/pci@1f,700000/scsi@2/disk@0,0
在以下示例中,替换引导磁盘为 (c2t1d0s0):
boot /pci@1f,700000/scsi@2/disk@1,0
例如:
# zpool detach rpool c2t0d0s0
SPARC:通过使用引导 PROM 中的 eeprom 命令或 setenv 命令,将系统设置为自动从新磁盘引导。
x86:重新配置系统 BIOS。
如果要在另一个根池中重新创建现有的 BE,请按照下面的步骤操作。您可以修改这些步骤,具体取决于您是希望获得具有独立的交换和转储设备的两个类似 BE,还是仅希望在另一个根池中获得共享交换和转储设备的一个 BE。
从第二个根池中的新 BE 激活和引导后,关于第一个根池中以前 BE 的信息将不再存在。如果要引导回原始 BE,将需要从原始根池的引导磁盘手动引导系统。
# zpool create rpool2 c4t2d0s0
# beadm create -p rpool2 solaris2
# zpool set bootfs=rpool2/ROOT/solaris2 rpool2
# beadm activate solaris2
ok boot disk2
系统应该在新 BE 之下运行。
# zfs create -V 4g rpool2/swap
/dev/zvol/dsk/rpool2/swap - - swap - no -
# zfs create -V 4g rpool2/dump
# dumpadm -d /dev/zvol/dsk/rpool2/dump
SPARC-通过使用引导 PROM 中的 eeprom 命令和 setenv 命令,将系统设置为自动从新磁盘引导。
x86-重新配置系统 BIOS。
# init 6