Очистить постоянную ошибку ZFS в исправном пуле
Я сегодня очистил свой пул, и после того, как очистка закончилась, я заметил ошибку, которая повредила файл. Я не заботился о файле, поэтому я удалил его. К сожалению, ошибка остается (на которую теперь ссылается шестнадцатеричный идентификатор, а не имя файла), и я не знаю, как ее очистить.
- Я должен беспокоиться? Разве я еще не свободен от этой ошибки?
- Могу ли я удалить ошибку? Если файл исчез, я не хочу видеть эту ошибку в будущем.
Для справки, вот команды, которые я дал, и вывод с аннотациями:
Проверка статуса
kevin@atlas:~$ sudo zpool status -v
pool: zstorage
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
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
errors: Permanent errors have been detected in the following files:
/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
pool: zstorage
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
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
errors: Permanent errors have been detected in the following files:
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
pool: zstorage
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
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
errors: Permanent errors have been detected in the following files:
zstorage:<0x9f115>
Это не выглядит хорошо!
2 ответа
Снова почистите бассейн (если вы еще этого не сделали):
Zpool Scrub Zstorage
Эта ошибка говорит вам, что inode <0x9f115> поврежден (удаление файла нарушило отображение имени файла->inode, поэтому теперь он просто сообщает об этом inode). Либо что-то все еще имеет открытый файл, либо метаданные просто необходимо очистить (что должен делать скраб).
Чтобы убрать ошибку, если скраб не понадобится, вам нужно разобраться с zdb, который публично не документирован оракулом (и плохо документирован в другом месте) - и в любом случае, вероятно, указывает на что-то более фундаментально неправильное.
Я знаю, что я супер опоздал на вечеринку, но просто хотел добавить, что если дополнительные скрабы не решают такие проблемы, вместо того, чтобы смотреть на zdb
вместо этого вы можете просто запустить скраб, дать ему поработать пару минут, а затем остановить его zpool scrub -s zstorage
, Это сработало для меня при очистке постоянных ошибок для файлов, когда все ошибки чтения / записи / контрольной суммы были равны нулю.
http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/
РЕДАКТИРОВАТЬ: После того, как я сделал это несколько раз, я также понял, что время, в течение которого вы позволите запуску очистки, повлияет на его работу (в зависимости от того, какие блоки он смотрит на первый взгляд). Так что, если сначала это не сработает, попробуйте еще несколько раз и отрегулируйте время, когда вы его остановите.