使存储池中的设备离线
当硬件不可靠或者运行不正常时,ZFS 会继续向设备读取或者写入数据,假设这种情况只是暂时的。
如果该情况不是暂时的,我们可以通过使设备脱机来指示 ZFS 忽略该设备。
我们可以使用 zpool offline 命令后跟池名称和设备名称使设备脱机。
在幻灯片的代码示例中,c1t0d0 设备脱机。
此设备位于名为 datapool 的池中。
# zpool offline datapool c1t0d0 bringing device c1t0d0 offline
当设备离线时:
- ZFS 不会向它发送任何请求。
- 系统重启后保持离线状态
- 它没有从存储池中分离
默认情况下,离线状态是持久的;因此,即使在系统重新启动后,设备仍保持离线状态。
如果我们想让设备暂时离线并在系统重新启动后自动恢复到 ONLINE 状态,请改用“zpool offline -t”命令。
当设备脱机时,它不会从存储池中分离。
这意味着我们不能在另一个池中使用该设备。
更换存储池中的设备
我们可能想要或者需要更换设备的原因有两个。
我们可能想用更大的设备更换设备,或者我们可能需要更换出现故障的设备。
要替换设备,请使用“zpool replace”命令后跟池名称和设备名称。
如果用冗余池中相同位置的另一台设备物理替换一个设备,则只需识别被替换的设备。
ZFS 识别出它是同一位置的不同磁盘。
在以下示例中,我们将替换名为 datapool 的池中的磁盘 c1t1d0。
# zpool replace datapool c1t1d0
如果要用不同位置的磁盘替换存储池中的设备,则必须同时指定两个设备。
这在下面的示例中显示,其中我们将名为 datapool 的池中的磁盘 c1t1d0 替换为磁盘 c1t2d0。
# zpool replace hrpool c1t1d0 c1t2d0
从存储池中分离设备
要将设备从镜像存储池中分离,我们可以使用 zpool detach 命令。
例如,如果我们想分离刚刚添加到镜像池数据池的 c2t1d0 设备,我们可以通过输入命令“zpool detach datapool c2t1d0”来实现,如代码示例所示。
我们可以通过再次运行 zpool status 命令来验证设备是否已分离。
# zpool detach datapool c2t1d0
使存储池中的设备联机
要使设备恢复联机,请使用“zpool online”命令,后跟池名称和设备名称。
设备脱机时添加到存储池的数据会在设备重新联机后重新同步到该设备。
# zpool online datapool c1t0d0 bringing device c1t0d0 online