清除健康池中的永久ZFS错误

我今天擦洗了我的泳池,擦洗完毕后,我注意到有一个错误,损坏了一个文件。 我不在乎这个文件,所以我把它删除了。 不幸的是,错误仍然存​​在(现在引用hexID而不是文件名),我不知道如何清除它。

  • 我应该担心吗? 我是不是真的没有这个错误没有?
  • 我可以清除错误吗? 如果这个文件没有了,我不会在将来看到这个错误。

作为参考,这里是我发出的命令和输出,带注释:

检查状态

kevin @ atlas:〜$ sudo zpool status -v

池:zstorage状态:ONLINE状态:一个或多个设备遇到导致数据损坏的错误。 应用程序可能受影响。 操作:如果可能,还原有问题的文件。 否则从备份恢复整个池。 请参阅:zfsonlinux.org/msg/ZFS-8000-8A扫描:磨砂在7小时19分钟修复1.81M,1月23日星期三10:04:44 config:

NAME STATE READ WRITE CKSUM zstorage ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698 ONLINE 0 0 0 ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289 ONLINE 0 0 0 ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600 ONLINE 0 0 0 

错误:在以下文件中检测到永久性错误:

  /zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause/03 Harmony One.mp3 

切换到root并删除文件 – 我不需要它

kevin @ atlas:〜$ sudo -i

root @ atlas:〜#cd / zstorage / owncloud / kevin / files / Archives / Music / Kev \ Rev \ 7 / graveyard / Old / Four \ Tet / Pause /

root @ atlas:/ zstorage / owncloud / kevin / files / Archives / Music / Kev Rev 7 / graveyard / Old / Four Tet / Pause#rm 03 \ Harmony \ One.mp3

再次检查状态

root @ atlas:/ zstorage / owncloud / kevin / files / Archives / Music / Kev Rev 7 / graveyard / Old / Four Tet / Pause#zpool status -v

池:zstorage状态:ONLINE状态:一个或多个设备遇到导致数据损坏的错误。 应用程序可能受影响。 操作:如果可能,还原有问题的文件。 否则从备份恢复整个池。 请参阅:zfsonlinux.org/msg/ZFS-8000-8A扫描:磨砂在7小时19分钟修复1.81M,1月23日星期三10:04:44 config:

 NAME STATE READ WRITE CKSUM zstorage ONLINE 0 0 1 raidz1-0 ONLINE 0 0 2 ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698 ONLINE 0 0 0 ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289 ONLINE 0 0 0 ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600 ONLINE 0 0 0 

错误:在以下文件中检测到永久性错误:

  zstorage:<0x9f115> 

呃哦。 也许我可以清除错误?

root @ atlas:/ zstorage / owncloud / kevin / files / Archives / Music / Kev Rev 7 / graveyard / Old / Four Tet / Pause#zpool clear zstorage

root @ atlas:/ zstorage / owncloud / kevin / files / Archives / Music / Kev Rev 7 / graveyard / Old / Four Tet / Pause#zpool status -v

池:zstorage状态:ONLINE状态:一个或多个设备遇到导致数据损坏的错误。 应用程序可能受影响。 操作:如果可能,还原有问题的文件。 否则从备份恢复整个池。 请参阅:zfsonlinux.org/msg/ZFS-8000-8A扫描:磨砂在7小时19分钟修复1.81M,1月23日星期三10:04:44 config:

 NAME STATE READ WRITE CKSUM zstorage ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698 ONLINE 0 0 0 ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289 ONLINE 0 0 0 ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600 ONLINE 0 0 0 

错误:在以下文件中检测到永久性错误:

  zstorage:<0x9f115> 

这看起来不太好

再次擦洗你的泳池(如果你还没有):

zpool scrub zstorage

该错误告诉你,inode <0x9f115>已损坏(删除文件破坏了文件名 – > inode映射,所以现在只是报告inode)。 要么有一些东西仍然打开文件或元数据只是需要清理(这是一个磨砂应该做的)。

要清除这个错误,如果一个scrub不需要用zdb(这个不是oracle公开logging的)(在其他文档中没有很好地logging)来弄脏和肮脏的话 – 无论如何可能表明一些更根本的错误。

我知道我晚会太晚了,但只是想补充一点,如果额外的磨砂不能解决这样的问题,而不是看着zdb你可以开始一个磨砂,让它运行几分钟,然后使用zpool scrub -s zstorage停止它。 当所有的读/写/校验和错误都为零时,这将对我清除文件的永久性错误起作用。

http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/