Oracle Solaris ZFS 管理指南

使存储池中的设备联机和脱机

使用 ZFS 可使单个设备脱机或联机。硬件不可靠或无法正常工作时(假定该情况只是暂时的),ZFS 会继续对设备读写数据。如果该情况不是暂时的,您可以指示 ZFS 通过使设备脱机来忽略该设备。ZFS 不会向已脱机的设备发送任何请求。


注 –

设备无需脱机即可进行替换。


需要临时断开存储器时,可以使用 zpool offline 命令。例如,如果需要以物理方式将阵列与一组光纤通道交换机断开连接,并将该阵列连接到另一组交换机,则可使 LUN 从 ZFS 存储池所使用的阵列中脱机。在该阵列重新连接并可正常使用新的一组交换机后,便可使上述 LUN 联机。在 LUN 脱机期间添加到存储池中的数据将在 LUN 恢复联机后重新同步到 LUN 中。

假定所涉及的系统在连接到新交换机后可以立即检测到存储器(可能采用与以前不同的控制器),并且您的池设置为 RAID-Z 配置或镜像配置,则上述情况是可能的。

使设备脱机

可以使用 zpool offline 命令使设备脱机。如果设备是磁盘,则可以使用路径或短名称指定设备。例如:


# zpool offline tank c1t0d0
bringing device c1t0d0 offline

使设备脱机时,请考虑以下几点:

查询池的状态时,已脱机的设备以 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