Modern disklerde “badblock” kullanımı


21

HDD'lerimi kontrol etmek için badblock'ları kullanmak istiyorum ve çalışmasının netleştirilmesini takdir ediyorum.

Birisi -bve ile kullanmak için en iyi seçenekleri açıklayabilir -cmi? Tanımlarını man sayfasından ekledim, ancak daha büyük boyutların 64MB RAM ve 4k sektörlü modern diskler için yararlı olup olmayacağından emin değilim.

-b block-size       Specify the size of blocks in bytes. The default is 1024. 
-c number of blocks the number of blocks which are tested at a time. The default is 64

İkincisi, yazma modu testinin tahribatsız okuma-yazma modundan daha kapsamlı olup olmadığını bilmek isterim?

Son olarak, kaç SMART sektörü yeniden tahsisi kabul edilebilir / sıfır olmayan yeniden tahsis sayısına sahip sürücüler hemen değiştirilmeli?


3
2. bölüm için: badblock'ları görmeye başlar başlamaz, bir şeyler ters gitti demektir. Bu muhtemelen diski hiç okuyamıyorsanız değiştirmelisiniz. Ancak her durumda, hatadan önce, çalışma kopyasına ek olarak her zaman 2 önemli veri yedeğine (1 yerel, 1 uzaktan) sahip olmalısınız. cevabım hakkındaki ayrıntılara bakın: superuser.com/a/528181/174998
Olivier Dulac

4
blok boyutu için: işletim sisteminizin bu sabit diskte veri depolamak için kullandığı gerçek blok boyutunu yansıtmalıdır (kullanılan dosya sistemine göre). İşleri hızlandırmak değil, bir bloğu "kötü" olarak işaretler, bu blok aslında 1 bloktur ve 1/2 veya 1/4 veya hatta 2 (veya daha fazla) blok değildir.
Olivier Dulac

Yanıtlar:


21

Soru 1:

-bSeçenek ile ilgili olarak : bu diskinize bağlıdır. Modern, büyük disklerde 4KB blokları vardır, bu durumda ayarlamanız gerekir -b 4096. Blok boyutunu işletim sisteminden alabilirsiniz ve bu genellikle diskin bilgilerini etiketin dışında okuyarak veya diskin model numarasını googlaştırarak elde edilebilir. Eğer -bsizin blok boyutundan daha büyük bir şeye ayarlandığında, bütünlüğü badblocks(eğer yanlış negatif alabilirsiniz yani: hala var olabilir yokken kötü bloklar bulundu) sonuçlarına tehlikeye girebilir. Eğer -bsenin sürücünün blok boyutundan daha küçük bir şeye ayarlandığında, hız badblocksvadede tehlikeye girebilir. Emin değilim, ancak ayarlarla ilgili başka sorunlar olabilir-bblok boyutunuzdan daha küçük bir şeye, çünkü tüm bir bloğun bütünlüğünü doğrulamıyorsa, çok küçük ayarlanırsa yine de yanlış negatifleri almak mümkün olabilir.

-cTek seferde kontrol edilmelidir kaç blok seçeneği karşılık. Toplu okuma / yazma, temel olarak. Bu seçenek sonuçlarınızın bütünlüğünü etkilemez, ancak çalışma hızını etkiler badblocks. badblockstarafından belirtildiği gibi her N bloğu için (isteğe bağlı olarak) yazar, sonra okur, tamponlar, kontrol eder, tekrar eder -c. Eğer -cçok düşük ayarlanırsa, bu yapacak badblocksçalışır kuyruk ve baş üstü ayrı bir IO isteği doğurur işleme gibi çok daha uzun sıradan daha sürebilir, ve disk de her isteğe ek yükü empoze edebileceğini. Eğer -cçok yüksek ayarlanmış, badblocksbellek yetersiz çalışabilir. Bu olursa, badblocksbaşladıktan sonra oldukça hızlı bir şekilde başarısız olur . Burada dikkat edilmesi gereken diğer noktalar paralel badblockskoşulardır: koşuyorsanızbadblocksaynı diskteki birden fazla bölüme (kötü fikir) veya aynı IO kanalı üzerindeki birden fazla diske karşı, muhtemelen paralel -cbelleklerin badblocksIO bant genişliği için savaşmaması için kullanılabilir bellek göz önüne alındığında makul derecede yüksek bir şeye ayarlamak isteyeceksiniz. aklı başında bir şekilde paralellik gösterebilir.

Soru 2:

Diğer cevapların gösterdiklerinin aksine , -wyazma modu testi, tahribatsız okuma-yazma testinden daha fazla veya daha az güvenilir değildir, ancak tüm verileriniz için yıkıcı olma pahasına iki kat daha hızlıdır. Nedenini açıklayacağım:

Tahribatsız modda badblocksaşağıdakileri yapar:

  1. Mevcut verileri okuyun, kontrol edin (gerekirse tekrar okuyun) ve hafızada saklayın.
  2. Bloğa önceden belirlenmiş bir desen yazın ( -pgenellikle gerekli olmasa da seçenekle geçersiz kılınabilir).
  3. Okunan verilerin kalıpla aynı olduğunu doğrulayarak bloğu geri okuyun.
  4. Orijinal verileri diske geri yazın.
    • Bu konuda emin değilim, ama aynı zamanda orijinal verilerin başarıyla yazıldığını ve yine de aynı şey için sağlama toplamlarını tekrar okur ve doğrular.

Yıkıcı ( -w) modda badblocksyalnızca yukarıdaki 2. ve 3. adımları yapar. Bu, veri bütünlüğünü doğrulamak için gereken okuma / yazma işlemlerinin sayısının yarıya indirildiği anlamına gelir. Bir blok kötü ise, veriler her iki modda da hatalı olacaktır. Elbette, sürücünüzde saklanan verileri önemsiyorsanız, -wtüm verileri yok edecek ve badblocks'desenleri diske yazacak şekilde bırakacağınız için tahribatsız modu kullanmalısınız.

Dikkat: Bir blok kötüye gidiyorsa , ancak henüz tamamlanmadıysa, bazı okuma / yazma doğrulama çiftleri çalışabilir ve bazıları çalışmayabilir. Bu durumda, tahribatsız mod, bir bloğun "duygusallığı" için daha güvenilir bir gösterge verebilir, çünkü iki set okuma / yazma doğrulaması yapar (belki - 4. adımdaki madde işaretine bakın). Tahribatsız mod bu şekilde daha güvenilir olsa bile, tesadüflerle daha güvenilirdir . Tamamen kötü olmayan ancak çoklu okuma / yazma işlemlerini sürdüremeyen blokları kontrol etmenin doğru yolu badblocks, -pseçeneği kullanarak aynı veriler üzerinde birden çok kez çalıştırmaktır .

Soru 3:

SMART sektörleri yeniden tahsis ediyorsa, muhtemelen sürücüyü en kısa sürede değiştirmeyi düşünmelisiniz. Birkaç sektörü kaybeden sürücüler her zaman onları kaybetmezler, ancak bunun nedeni genellikle manyetik olarak aşırı duygusal hale gelen veya hatalı kafa veya motorların hatalı veya hatalı okuma / yazma ile sonuçlanan yoğun bir sürücüdür. Nihai karar size bağlıdır, elbette: sürücüdeki verilerin değerine ve üzerinde çalıştığınız sistemlerden ihtiyacınız olan güvenilirliğe dayanarak, devam ettirmeye karar verebilirsiniz. Dosya sunucumda yıllardır SMART uyarılarıyla dönen bilinen kötü bloklara sahip bazı sürücülerim var, ancak çok fazla acı çekmeden toplam bir başarısızlıkla başa çıkabileceğim bir programa yedekleniyorlar.


4
Neden -bvarsayılan olduğu hakkında bir fikrin var 1024mı? Bana garip geliyor. Neden olmasın 512?
Ryan J

6
@RyanJ 1024, için minimum blok boyutudur ext2. badblocks, e2fsprogs'un bir parçasıdır ve aslında bir ext2 dosya sisteminin bozuk bloklar listesini doldurmak için tasarlanmıştır. Sayıları mkfs.ext2 için doğru biçimde almak için FS ile aynı blok boyutuyla çalıştırmanız gerekir. TL; DR: ilgilenmemeniz gereken tarihsel nedenler.
sourcejedi

BUUUTT, @Zac B, "-b blok boyutunuzdan daha büyük bir şeye ayarlanırsa, badblock sonuçlarının bütünlüğünden ödün verilebilir" 1024> 512. 513'ün bazı baytların kontrol edilmemesine neden olabileceğini anlayabilirim. Ancak belki de "-b blok boyutunuzdan daha büyük bir şeye ayarlanmışsa VE BİRLİKTE BİR ÇOKLU OLARAK DEĞİLSE, badblock sonuçlarının bütünlüğü tehlikeye girebilir" şeklinde yeniden ifade edilmelidir. Orijinal poster, benden daha akıllı olan diğer insanlar ne diyorsun?
Billy C.

4

1) Modern diskiniz 512b'den farklı bir sektör boyutu kullanıyorsa, bu boyutu -bseçenek (yani -b 4096) ile ayarlamanız gerekir . Bu seçenek olmadan, her gerçek sektör birden fazla kez deneneceğinden çekiniz çok daha yavaş çalışacaktır (4k sektörde 8 kez). Ayrıca soruya yorumda Olivier Dulac belirtildiği gibi -block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.

Seçenek -c, aynı anda kaç sektörün denediğini ima eder. Performans üzerinde bir etkisi olabilir ve bu performansın değeri belirli disk modeline bağlı olabilir.

2) write-mode test- Anladığım kadarıyla, sadece kötü veya hatalı bir hata olup olmadığını kontrol edecektir (Sessiz Veri Bozulması, bit çürümesi, depolama ortamının bozulması, UNC sektörleri)

3) SMART raporuna zamanında güvenmem. Değerlerin zaman içinde nasıl değiştiği daha önemlidir. Ayrıca, Büyük Disk Sürücüsü Nüfusundaki Google Hata Eğilimleri tarafından yapılan araştırma ve bunun bir tartışması . İşte araştırmadan alıntı:

Bu yüksek korelasyona rağmen, tek başına SMART parametrelerine dayanan modellerin, bireysel sürücü arızalarını tahmin etmek için yararlı olmayacağı sonucuna vardık.

Disk değiştirme için başkaları ile ilgili olarak - sabit disk probleminiz değil, Sessiz Veri Bozulması (bit çürümesi, depolama ortamının bozulması, UNC sektörleri) olabilir. Bu durumda diski değiştirmenin bir anlamı yoktur, bunun yerine aynı verilerin diske geri okunması / yazılması yararlıdır. Nasıl çözülebileceğine buradan bakabilirsiniz .

Eğer çok kötü bir hatayla karşılaşırsanız, sürücüyü bozuk alanın herhangi bir bölümün dışında olduğu şekilde yeniden bölümlendirmeyi deneyebilirsiniz. Benim için bu yaklaşım yararlı oldu ve böyle kötü bir sürüş uzun süre sorunsuz bir şekilde kullanıldı.


İlk cümle yanlıştır, -bvarsayılan değer 1024'tür. Diskiniz, ext2 dosya sistemlerinin dışında oldukça yaygın olan 1024'ten farklı bir sektör boyutu kullanıyorsa, bunu belirtmelisiniz.
Hashim

1

Onları değiştirmek için belirli bir nedeniniz yoksa varsayılan olarak -b ve -c'yi bıraktım. Diskinizde 4 k blok boyutu varsa -b değerini 4096 olarak ayarlayabilirsiniz.

İlk önce tahribatsız rw testi ile badblock'ları çalıştırmanızı öneririm. Bozuk bir sektör bulursa, disk bozuktur ve değiştirilmesi gerekir. Tahribatsız olarak herhangi bir kötü blok bulamazsa, ancak yine de blokların bozuk olduğundan şüpheleniyorsanız, yıkıcı rw testini çalıştırın.

Son olarak, kaç SMART sektörü yeniden tahsisi kabul edilebilir / sıfır olmayan yeniden tahsis sayısına sahip sürücüler hemen değiştirilmeli?

Sektörler değiştirilir değiştirilmez sürücüyü değiştiririm.


2
Sektörler değiştirilir değiştirilmez sürücüyü değiştiririm. Normal operasyonda blokların kötüye gittiğini nasıl anlarsınız? Bir şekilde sinyal alıyor musunuz?
Alexis Wilke

5
SMART günlüklerini izlemelisiniz.
Ярослав Рахматуллин

1
bunları değiştirmek için özel bir nedeniniz yoksa . Varsayılan 1024'ten farklı bir blok boyutuna sahip olmak gibi, bu çok yaygın mı?
Carcamano

1

Bu tür badblock okuma modu (tahribatsız) ve yazma modu (yıkıcı) arasındaki farka gider:

Bir sürücü yalnızca bir yazma başarısız olduğunda kötü bir sektörü yeniden tahsis eder. Dosyalar için okuma hataları, yalnızca dosyayı yeniden yazmaya çalışıldığında "düzeltilir". Aksi takdirde. bozuk blok, bir şeyi kurtarabileceğiniz varsayımıyla dosyanın bir parçası olarak kalır. Bölüm tabloları için okuma hataları yalnızca yazma modunda kötü bloklar çalıştırıp bölümü yeniden oluşturarak "düzeltilebilir"

Bu nedenle, okuma modu size kötü blokların nerede olduğunu söyler, ancak onlar hakkında hiçbir şey yapamaz. Yazma modu her sektörün sağlığını test eder ve diskin bozuk bir bloğu yeniden tahsis etmesine neden olur, ancak bu verileri yok etme pahasına olur. İstediğini al.


0

Yeniden sektörler hakkındaki ikinci sorunuza cevap vermek duruma göre değişir. Bu tür şeyleri (bazen) izleyen bir ev kullanıcısının bağlamından konuşuyorum.

  • Veriler sürücüde ne kadar kritiktir?
  • Sürücü aniden karnına çıkarsa ne kaybedilir?
  • Veriler başka bir yerde yedekleniyor mu?
  • Sürücü, sürücü kaybının en az etkiye sahip olduğu bir RAID üyesi midir?
  • Remapped sektörlerin sayısı artıyor mu?

Karşılaştığım iki durum var. 6 200 GB'lık bir RAID5 sürücüm vardı. Titreşen ışıklarla sonuçlanan bir elektrik kesintisinden sonra, bir sürücü 14 yeniden eşlenen sektör gösterdi ve birkaç hata kaydetti. Sürücüyü izledim ve daha fazla hata kaydedilmedi ve yeniden kesilen sektör sayısı sabit kaldı. Sürücünün geçici bir güç nedeniyle acı çektiği ve başka şekilde başarısız olmadığı sonucuna vardım. Yıllarca kullanmaya devam ettim. Orijinal RAID5 kullanımdan kaldırıldı, ancak bu sürücülerden iki tanesi saatlerce yaklaşık 10 yıllık güce sahip. Bir avuç remapped sektörü var. Bunlardan ikisini birincil yedeklememdeki artımlı yedekleme dökümlerini saklamak için yansıtıyorum. Bu şekilde ana yedekleme (çoğunlukla) okuma işlemlerini görür ve yazma işlemleri farklı cihazlara gider. Bu eski sürücülerden biri başarısız olursa, diğeri devam etmelidir. Her ikisi de başarısız olursa, Bunları başka bir şeyle değiştiriyorum ve yedekleme komut dosyasını tekrar çalıştırıyorum. Bu sürücülerden birinin başarısız olması durumunda etkisi sıfıra yakındır, bu yüzden yeniden eşlenen sektörler için endişelenmem.

Bir çift yansıtılmış sürücüden biri olan ve yeniden eşlenen sektörleri büyütmeye başlayan 2 TB'lık bir HDD'im vardı. İlk başta düzinelerce, sonra yüzlerce, sonra binlerce idi. Bu yıllar sürdü. Çiftteki diğer tahrik sağlıklı kaldı ve aslında yavaş yavaş başarısız olan derivasyon diziden düşmedi. Sonunda her iki diski de 6 TB disklerle değiştirdim ve büyüyen yeniden eşlenen sektör sayısı bir sorun haline geldi. Hala güdüm var ve hala yaklaşık 4500 remapped sektör ile "çalışıyor". Bir test sistemi (RAID üyesi olarak) böyle bir sürücüyü gerçekten öldüğünde ne olduğunu görmek için koydum. Bununla çalışmak için birkaç fırsatım oldu ve her durumda değişim tiyatro olmadan gitti.

Birincil yedekleme dosya sunucumda bir sürücü başarısız oldu. Hiçbir gelişmiş uyarı üretmedi, SATA komutlarına yanıt vermeyi bıraktı. ZFS RAIDZ2'nin bir üyesiydi ve herhangi bir drama olmadan değiştirdim. Aslında, test sunucumda arızalı sürücüleri güç döngüsü veya sunucuyu yeniden başlatmadan değiştirdim.

Unutulmaması gereken bir nokta daha var, tüm önemli verilerin site içi ve site dışı yedekleri var. Herhangi bir sistem kaybolursa, verilerin başka bir yerde iki kopyası vardır.

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.