我正在尝试了解我计划构建的 NAS 的 ZFS。我试图了解是否可以设置以下场景。免责声明:我对 ZFS 了解甚少,所以如果我说了一些愚蠢的话,请原谅我。
- 我在 raidz2(RAID 6)中配置了 4 个驱动器
- 一个驱动器发生故障
- 我希望能够移除发生故障的驱动器,插入新的驱动器,并让系统自动重新同步阵列,而无需发出任何命令或重新启动。
据我所知,zpool set autoreplace=on <pool>
这将允许更换驱动器,但您仍然需要发出命令scrub
来启动重新镀银过程,对吗?另外,我不知道是否支持热交换。
我意识到,在磁盘发生故障的罕见情况下发出单个命令并不是什么大事。但在我看来,如果自动化的话会好得多,而且我非常肯定硬件 RAID 可以做到这一点。
答案1
为您的池设置autoreplace=on
并使用类似或相似的磁盘。当池中设置该标志时,会自动进行重新同步。如果池中定义了热备用,则它也会在autoreplace
打开时自动重建。
确实没有什么可考虑的了。
答案2
ZFSautoreplace
池属性就是这样。
来自ZFS 管理指南, 有关 :
如果设置为开启,则在与先前属于该池的设备相同的物理位置上发现的任何新设备都会被自动格式化和替换。
还要注意,如果用一个新的正常工作的磁盘物理替换有故障的磁盘将触发新磁盘的重新同步,这不会解决对其他磁盘所做的任何配置调整,例如调整磁盘的大小(缩小磁盘尺寸以避免新磁盘与 vdev 中的其他磁盘相比短几 KB 的情况并不少见)。
事实上,插入新磁盘并突然看到其他磁盘的灯光像圣诞树一样闪烁,这很吸引人,但在执行之前坐下来仔细准备新磁盘几分钟并不会花费太多zpool replace
(我个人的看法)。我想说,如果已经准备好热备用磁盘,这样做更有意义。
编辑:ashift
是一个不好的例子(感谢@ewwhite)。