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