使用 ZFS 可使单个设备脱机或联机。硬件不可靠或无法正常工作时(假定该情况只是暂时的),ZFS 会继续对设备读写数据。如果该情况不是暂时的,您可以指示 ZFS 通过使设备脱机来忽略该设备。ZFS 不会向已脱机的设备发送任何请求。
设备无需脱机即可进行替换。
需要临时断开存储器时,可以使用 zpool offline 命令。例如,如果需要以物理方式将阵列与一组光纤通道交换机断开连接,并将该阵列连接到另一组交换机,则可使 LUN 从 ZFS 存储池所使用的阵列中脱机。在该阵列重新连接并可正常使用新的一组交换机后,便可使上述 LUN 联机。在 LUN 脱机期间添加到存储池中的数据将在 LUN 恢复联机后重新同步到 LUN 中。
假定所涉及的系统在连接到新交换机后可以立即检测到存储器(可能采用与以前不同的控制器),并且您的池设置为 RAID-Z 配置或镜像配置,则上述情况是可能的。
可以使用 zpool offline 命令使设备脱机。如果设备是磁盘,则可以使用路径或短名称指定设备。例如:
# zpool offline tank c1t0d0 bringing device c1t0d0 offline |
使设备脱机时,请考虑以下几点:
不能将池脱机到它出现故障的点。例如,不能使 raidz1 配置中的两个设备脱机,也不能使顶层虚拟设备脱机。
# zpool offline tank c1t0d0 cannot offline c1t0d0: no valid replicas |
缺省情况下,脱机状态是持久性的。重新引导系统时,设备会一直处于脱机状态。
要暂时使设备脱机,请使用 zpool offline -t 选项。例如:
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline |
重新引导系统时,此设备会自动恢复到 ONLINE 状态。
当设备脱机时,它不会从存储池中分离出来。如果尝试使用其他池中的脱机设备,那么即使在销毁原始池之后,也会看到类似如下内容的消息:
device is part of exported or potentially active ZFS pool. Please see zpool(1M) |
如果要在销毁原始存储池之后使用其他存储池中的脱机设备,请先使该设备恢复联机,然后销毁原始存储池。
要在保留原存储池的同时使用其他存储池中的设备,还有一种方法是用另一个类似的设备替换原存储池中的现有设备。有关替换设备的信息,请参见替换存储池中的设备。
查询池的状态时,已脱机的设备以 OFFLINE 状态显示。有关查询池的状态的信息,请参见查询 ZFS 存储池的状态。
有关设备运行状况的更多信息,请参见确定 ZFS 存储池的运行状况。
使设备脱机后,可以使用 zpool online 命令使其恢复联机。例如:
# zpool online tank c1t0d0 bringing device c1t0d0 online |
使设备联机时,已写入池中的任何数据都将与最新可用的设备重新同步。请注意,不能通过使设备联机来替换磁盘。如果使设备脱机,然后替换该设备并尝试使其联机,则设备将一直处于故障状态。
如果尝试使故障设备联机,则会显示类似以下内容的消息:
# zpool online tank c1t0d0 warning: device 'c1t0d0' onlined, but remains in faulted state use 'zpool replace' to replace devices that are no longer present |
您还可能会看到故障磁盘消息显示在控制台上,或者写入 /var/adm/messages 文件中。例如:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device. |
有关更换故障设备的更多信息,请参见解决缺少设备的问题。
您可以使用 zpool online -e 命令扩展 LUN。 缺省情况下,添加至池中的 LUN 不会扩展到其完整大小,除非启用了 autoexpand 池属性。使用 zpool online -e 命令可以自动扩展 LUN,即使 LUN 已经联机或者 LUN 目前脱机。例如:
# zpool online -e tank c1t13d0 |