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!
zfs
zfsonlinux
Kevin Wood
sumber
sumber
Jawaban:
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.
sumber
Saya tahu saya sangat terlambat ke pesta, tetapi hanya ingin menambahkan bahwa jika scrub tambahan tidak memperbaiki masalah seperti ini, alih-alih melihat
zdb
Anda malah bisa memulai scrub, biarkan berjalan selama beberapa menit, dan lalu hentikan denganzpool 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.
sumber