WD için disk bellenimi yazıyordum ve bir keresinde hatalı blok atanmış bellenimi yazdım.
İlk olarak, çoğu kötü blok yazma üzerine değil, okumalarda algılanır. Yazma işlemi kör yapılır, yani veriler kontrol edilmeden yazılır. Bu nedenle, eğer medya kötüyse, ev sahibi bu sektöre bir okuma yapmadan bunu bilemezsiniz. Sektörün küçük bir bölümü (sektör başlığı) var ve doğru sektörü bulmak için yazıyor, böylece sektör başlığını okurken bir hata olursa, sürücü sektörü yeniden atayacak ve alınan verileri yazacaktır. Yazma komutundan. Ancak, kötü blokların büyük çoğunluğu okumalarda algılanıyor ve sadece bir yazının bir sektöre başarılı olması medyanın iyi olduğu veya sektörün yeniden atandığı anlamına gelmiyor.
Şimdi kötü blok yeniden atama (yeniden tahsisat da denir) hakkında. Evet, normalde sürücü, hata yeterince kötüyse (yani, ECC arızası yeterince kötüyse) bir sektörü yeniden atamaya çalışır, ancak sürücü ECC düzeltmesinden sonra verileri hala kurtarabilir. Genellikle bu otomatik olarak yapılır. Bunun tek istisnası, ana makinenin daha önce sürücüye otomatik yeniden tahsisat yapmamasını söyleyebilmesidir, ancak bu nadiren yapılır.
Peki, sürücü bir okuma yaparsa ve verileri kurtaramazsa ne olur? Hiçbir şey değil. Hata ana bilgisayara bildirilir, ancak yeniden atama yapılmaz. Sorun, sürücünün sektörü yeniden ataması olabilir, ancak yeni atanan sektörde hangi verileri yazacağına dair en ufak bir fikri yok. Bir kaç tane sıfır yazdıysa, diyelim ve sektör yeniden okunursa, verilerin sıfır olduğuna dair hiçbir kanıt olmadan tüm sıfırları geri getirecekti. Bu aslında veri bozulmasıyla aynı şeydir. Sürücü, çeşitli nedenlerle (örneğin, sürücü yeni bir ana bilgisayara taşınmışsa ne olur?) Hataları izleyerek ana bilgisayara güvenemez, bu nedenle en iyi eylem, veriler ne zaman yapılacağıdır. kurtarılamaz.
Ancak modern sürücüler, yeniden tahsis edilemediğinde kötü sektörün konumunu koruyacak. Yeniden tahsis edilmeyi bekleyen kötü sektörlerin sayısı SMART verilerinde bulunabilir. Yeniden tahsis edilmeyi bekleyen kötü sektörlerden birine bir yazma yapılırsa, yeniden tahsisat yapılır, çünkü sürücü şimdi yeniden tahsisattan sonra yazmak için geçerli veriye sahiptir. Böylece insanlar kötü bir sektöre yazı yazmanın yeniden tahsis edileceğini söylerken, bu gerçekten hikayenin yarısı. Öncelikle sürücü okunmalıdır, böylece sürücü otomatik olarak yeniden tahsis edilemeyen tüm kötü sektörleri keşfedebilir. Böylece bir sürücünün tamamını yazabilirsiniz ve SMART verileri yeniden tahsis edilmeyi bekleyen kötü sektörler olmadığını söyleyecektir, ancak tüm kötü sektörlerin sürücülerini mutlaka temizlemediniz. Öyleyse, tüm kötü sektörlerden birinden kurtulmak istiyorsanız,
Yeniden tahsis edilemeyecek kötü bloklarla baş etmenin başka yolları da var. Sürücü yedek bir RAID yapılandırmasının parçasıysa (yani, RAID 0 dışında herhangi bir şeyse), RAID yazılımı kötü bir sektörün verilerini diğer sürücülerden otomatik olarak kurtarmalı ve yeniden tahsis edilen sektöre yazmalıdır. SCSI diskleri, ana makinenin bloğa yazılacak geçerli bir veri olmasa bile yeniden atamayı zorlamak için kullanabileceği açık bir yeniden bloklama komutuna sahiptir, ancak kullanımı oldukça düşük düzeydedir.