如何扫描整个空的ZFS raid-zarrays坏扇区(块)?

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

到目前为止, scrub只是似乎没有扫描一切,因为实际上没有数据。

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

  • 如果删除了数据并想恢复它,可以使用zdb访问低级function。 在网上也有一些脚本试图在被销毁的池上search可用的数据,但更简单的方法是备份。
  • 如果您认为驱动器出现故障(高读/写错误计数或奇怪的噪音),您通常会立即更换驱动器,因为数据比单个备用驱动器更有价值。 如果您没有太多预算,则可以使用驱动器制造商提供的低级别工具来扫描/validation磁盘,以检测坏扇区并将其标记为不可用。 当然,这可能会导致一个较小的磁盘,可能对您现有的池太小。 而且,在没有replace的情况下扫描时,根据布局(镜像,raidz1),您的池可能会受到攻击。
  • 如果你不关心未分配的块,则不需要检查它们是否已经改变。 有人可能会说,隐藏的错误可能会积累在稀疏使用的磁盘上,但这个用例不是多数 – 毕竟,如果你永远不会填满你的池,你可以买更小的磁盘(或更多)。