如何扫描整个空的 ZFS raid-z 阵列以查找坏扇区(块)?

如何扫描整个空的 ZFS raid-z 阵列以查找坏扇区(块)?

有没有一种方法可以同时扫描 raid-z 阵列中的所有设备以查找坏扇区(块),还是必须使用单独的驱动器测试应用程序逐个设备地执行此操作?

到目前为止scrub似乎还没有扫描所有内容,因为实际上没有数据。

答案1

ZFS 没有扫描未分配块的方法,因为它没有直接用途:

  • 如果您删除了数据并想恢复它,您可以使用 访问低级功能zdb。网络上还有一些脚本试图从被毁坏的池中抓取可用的数据,尽管更简单的方法是进行备份。
  • 如果您认为驱动器有故障(读/写错误数高或噪音奇怪),您通常会立即更换它,因为数据比单个备用驱动器更有价值。如果您真的没有太多预算,您可以使用驱动器制造商提供的低级工具扫描/验证磁盘以检测坏扇区并将其标记为不可用。当然,这可能会导致磁盘变小,而对于您现有的池来说可能太小了。此外,在扫描而不更换时,您的池可能会根据布局(镜像、raidz1)而变得脆弱。
  • 如果您不关心未分配的块,则无需检查它们是否已更改。有人可能会说隐藏的错误可能会在稀疏使用的磁盘上累积,但这种用例并不是大多数 - 毕竟,如果您从不填满池,您可以购买较小的磁盘(或更多)。

相关内容