Kalıcı bir ZFS hatası neyi gösterir?


18

permanent errorsBugün zpool'umda birkaç kişi rapor edildi.

  pool: seagate3tb
 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: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        seagate3tb  ONLINE       0     0    28
          sda       ONLINE       0     0    56

errors: Permanent errors have been detected in the following files:

        /mnt/seagate3tb/Install.iso
        /mnt/seagate3tb/some-other-file1.txt
        /mnt/seagate3tb/some-other-file2.txt

Düzenleme: Bu CKSUMdeğerlerin doğru olup olmadığından eminim . Verileri düzeltiyordum ve bunları yanlışlıkla yönetmiş olabilirdim. Onlar 0 olabilirdi. Ne yazık ki, notlarımda kesin bir cevap bulamıyorum ve hatalar şimdi çözüldü, bu yüzden emin değilim, ama her şey doğru / zpool'un bildirdiği şeyi yansıtıyor.

/mnt/seagate3tb/Install.iso kalıcı bir hata olduğu bildirilen bir örnek dosyadır.

İşte kafam karıştı. "Kalıcı olarak hatalı" durumumu Install.isobaşka bir dosya sistemindeki aynı dosyanın yedeğiyle karşılaştırırsam , aynı görünürler.

shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso

Dosyalar aynı gibi görünüyor . Dahası, dosya mükemmel çalışıyor. Bir uygulamada kullanırsam, beklediğim gibi davranır.

Dokümanların belirttiği gibi :

Veri bozulması hataları her zaman ölümcüldür.

Ancak temel dosya doğrulamalarıma dayanarak, tanımını anladığımdan emin değilim fatal.

durum: Bir veya daha fazla cihaz veri bozulmasına neden olan bir hatayla karşılaştı. Uygulamalar etkilenebilir.

eylem: Mümkünse söz konusu dosyayı geri yükleyin. Aksi takdirde, tüm havuzu yedeklemeden geri yükleyin.

Belki bir şey eksik, ama dosya anlayabildiğim kadarıyla gayet iyi görünüyor ve herhangi bir restorasyona ihtiyaç duymuyor ya da ZFS'nin tavsiyesine rağmen herhangi bir yolsuzluk göstermiyor.

Gördüğüm diğer makaleleri ile aynı hata , ama benim soruya bir cevap bulmak için henüz.

Dosyada kalıcı hata nedir ? Dosyada benim için kolayca anlaşılamayan bazı alt düzey sorunlar var mı? Öyleyse, bu neden shasuma dosyasında fark olarak algılanmasın ?

Bir katmanın bakış açısından, bu dosyayla ilgili herhangi bir hatayı gösteren hiçbir şey göremiyorum.


Anlık görüntüleriniz var mı?
ewwhite

3
Kimse söylemediği için sizi ServerFault'a davet edebilir miyim? Bu bana mükemmel bir ilk soru gibi görünüyor ve umarım öğretici cevapları toplamaya devam eder. Umarım SF'ye yapışıp daha fazla katkıda bulunmaya karar verirsiniz.
MadHatter

Teşekkürler @MadHatter! Nazik karşılama için teşekkür ederiz ve kesinlikle SF yapışmasını olacak. Kısa bir süre önce SE toplulukları listeme ekledim.
Haley Haley

Yanıtlar:


22

İfadesi zpool statusbiraz yanıltıcıdır. Kalıcı bir hata (bu bağlamda), bir G / Ç hatasının oluştuğunu ve bu havuz için SPA (Depolama Havuzu Allocator) hata günlüğüne kaydedildiğini gösterir. Bu mu değil mutlaka düzeltilemez veri bozulması var olduğu anlamına gelir.

Yapmanız gereken zpool scrubhavuzda bir çalıştırmaktır . Fırçalama tamamlandığında, SPA hata günlüğü döndürülür ve fırçalamadan önceki hatalar artık gösterilmez. Fırçalama hata tespit etmezse zpool statusartık "kalıcı" hatalar gösterilmez.

Dokümantasyon ile ilgili olarak, sadece "ölümcül hataların" bu şekilde günlüğe kaydedildiği söyleniyor. Önemli bir hata, ZFS tarafından otomatik olarak düzeltilemeyen ve bu nedenle bir uygulamaya başarısız bir G / Ç olarak maruz kalan bir G / Ç hatasıdır. Buna karşılık, G / Ç hemen başarılı bir şekilde yeniden denenirse veya mantıksal G / Ç yedek bir aygıttan memnun kalırsa, bu önemli bir hata olarak değerlendirilmez ve bu nedenle veri bozulması hatası olarak kaydedilmez.

Ölümcül bir hata mutlaka kalıcı veri kaybı anlamına gelmez, sadece uygulamaya yayılmadan önce düzeltilemediği anlamına gelir. Örneğin, gevşek bir kablo veya hatalı bir denetleyici, ZFS'nin "kalıcı" olarak tanımlayacağı geçici ölümcül hatalara neden olabilir. Bunun gerçekten bir sorun olup olmadığı G / Ç'nin doğasına ve uygulamanın G / Ç hatalarından kurtulabilme yeteneğine bağlıdır.

EDIT: @bahamat ile en kısa zamanda işten çıkarmaya yatırım yapmanız gerektiğini tamamen kabul edin.


Bunu "kalıcı" olarak bildiren SPA hata günlüğü gerçekten biraz yanıltıcı görünüyor. zpool scrubEğer tom-shaw @ önerdi tam olarak ne yaptığını, ve açıklama çok mantıklı. Artık bu dizide fırçalamadan sonra "kalıcı hatalar" görmüyorum. Başarısız bir okuma bağlamında ölümcül hatalar hakkında düşünmedim. Sanırım önerdiğiniz gibi bir okumada geçici bir G / Ç hatası olması gerektiğini düşünüyorum. Ayrıca işten çıkarma ihtiyacına da tamamen katılıyorum.
Haley Haley

Tom, seni bir süredir görmedim. Tekrar hoşgeldiniz.
wabbit

7

Kalıcı bir hata, dosyada bir sağlama toplamı hatası olduğu ve onarılacak yeterli kopya olmadığı anlamına gelir. Bu, bir G / Ç hatası nedeniyle en az bir okunan bozuk verileri döndürdüğü anlamına gelir. Okumayı ne alırsa, aynı disk dosyasına geri yazdığınızda, artık geri alınamaz veri bozulmasına sahip olacağınızı yazdı.

Havuz yapılandırmanıza bakıldığında, artıklık olmadığı anlaşılıyor. Bu çok tehlikelidir. Sen ZFS kendi kendini iyileştirme faydaları herhangi alamadım, ama olacak veri bozulması olmuştur zaman söylemek mümkün. ZFS normalde bozuk okumaları otomatik olarak ve sessizce düzeltir, ancak sizin durumunuzda yapamaz. Ayrıca zaten çalıştığınız gibi görünüyor zpool clearçünkü CKSUMsayı 0her iki sürücü için.

Ne yazık ki, hiçbir kopya olmadan bilmenin bir yolu yoktur.


2
zpool clearSadece hata sayıları değil, hata mesajının kendisini de temizlemez miydiniz ? Mesajın devam etmesi garip, ancak hiçbir hata gösterilmiyor.
user121391

2
Özür dilerim. Gizlilik için kalıcı hatalar listesinden dosyaları atlamıştım. Bu çıktıyı düzenlerken CKSUM sayımlarını da yönettim ve değerli içeriği kaybettim. Soruyu gerçeği yansıtacak şekilde düzenledim. @ user121391
Will Haley

Bu durumda, gösterdiğiniz sayılar doğruysa, muhtemelen bir yerde bir donanım hatasıyla karşılaşırsınız. Her CKSUM countsiki disk de iki disk arasındaki denetleyici, kablo veya herhangi bir paylaşılan donanım olabileceğini gösterdiğinden . Her iki diskin de arızalı olması mümkündür . Her halükarda, bu, ASAP artıklık ekleme ihtiyacının altını çizer ve belirtilen dosyaları bozulma açısından inceler.
Bahama

OP'nin artıklık göstermediği görülüyor; vdev 56 CKSUM hatası ve havuz 28 CKSUM hatası var. Bu yüzden önceki yorumunuzda "her iki disk" ile neyi kastettiğinizden emin değilim. Artıklığın değeri konusundaki görüşünüze katılıyorum.
CVn

Haklısın. Başka bir diskmiş gibi havuz adını yanlış okudum. Bunu işaret ettiğiniz için teşekkürler.
Bahama
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.