Bersihkan kesalahan ZFS permanen di kumpulan yang sehat

20

Saya menggosok kolam saya hari ini, dan setelah scrub selesai, saya perhatikan ada kesalahan yang merusak file. Saya tidak peduli dengan file tersebut, jadi saya menghapusnya. Sayangnya, kesalahannya tetap (sekarang direferensikan oleh hex ID dan bukan nama file), dan saya tidak tahu cara menghapusnya.

  • Haruskah saya khawatir? Apakah saya belum benar-benar bebas dari kesalahan ini?
  • Bisakah saya menghapus kesalahan? Jika file hilang, saya tidak benar-benar ingin melihat kesalahan ini di masa depan.

Untuk referensi, berikut adalah perintah yang saya keluarkan dan hasilnya, dengan anotasi:

Memeriksa status

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

Beralih ke root dan menghapus file - saya tidak membutuhkannya

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

Memeriksa status lagi

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>

Uh oh. Mungkin saya bisa menghapus kesalahan?

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>

Ini tidak terlihat bagus!

Kevin Wood
sumber
Apakah file bagian dari snapshot (daftar zfs -t all) dan karenanya disimpan?
lundman

Jawaban:

14

Gosok lagi kolam Anda (jika belum):

zpool scrub zstorage

Kesalahan itu memberi tahu Anda bahwa inode <0x9f115> rusak (menghapus file memecah pemetaan inode namafile->, jadi hanya melaporkan inode sekarang). Entah sesuatu masih memiliki file terbuka atau metadata hanya perlu dibersihkan (yang harus dilakukan scrub).

Untuk menghapus kesalahan jika scrub Anda tidak perlu turun dan kotor dengan zdb, yang tidak didokumentasikan secara publik oleh oracle (dan didokumentasikan dengan buruk di tempat lain) - dan bagaimanapun juga mungkin menunjukkan sesuatu yang secara fundamental lebih salah.

quadruplebucky
sumber
7

Saya tahu saya sangat terlambat ke pesta, tetapi hanya ingin menambahkan bahwa jika scrub tambahan tidak memperbaiki masalah seperti ini, alih-alih melihat zdbAnda malah bisa memulai scrub, biarkan berjalan selama beberapa menit, dan lalu hentikan dengan zpool scrub -s zstorage. Itu akan bekerja untuk saya dalam membersihkan kesalahan permanen untuk file ketika ketika semua kesalahan baca / tulis / checksum nol.

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

EDIT: Setelah harus melakukan ini beberapa kali, saya juga menyadari bahwa waktu berapa lama Anda membiarkan scrub berjalan akan mempengaruhi apakah itu berfungsi (tergantung pada blok apa yang terlihat pada awalnya). Jadi, jika tidak berhasil pada awalnya, coba beberapa kali lagi dan sesuaikan waktunya ketika Anda menghentikannya.

4oo4
sumber
Bagi saya ini tidak berhasil - kesalahan permanen masih ada, dan saya akan melihatnya lagi jika saya melakukan scrub penuh.
William Stein
3
Itu berhasil untuk saya. Saya telah melakukan scrub penuh dan kesalahan tidak teratasi, tetapi kemudian saya melakukan start-> stop dan semuanya bersih. Terima kasih.
Stu
Sekarang sepertinya berhasil bagi saya (saya menggunakan versi terbaru ZFS di linux sekarang).
William Stein