Bir LVM fiziksel birimindeki kötü blokları nasıl kontrol edebilirim?


17

Ext4 kullanırken, komut satırıyla badblock'ları kontrol edebilirsiniz e2fsck -c /dev/sda1 # or whatever. Bu, blokları bozuk blok inodeuna ekleyerek "kara listeye alır".

LVM2 fiziksel hacmi için bunun eşdeğeri nedir? Üzerindeki dosya sistemi ext4'tür, ancak muhtemelen temel LVM kurulumu verileri fiziksel diskte hareket ettirdikçe algılanan bozuk bloklar geçersiz olacaktır.

Başka bir deyişle, LVM'de kullanılmaması için kötü blokları nasıl kontrol edebilirim?

Yanıtlar:


14

Ext4 kullanırken, komutla e2fsck -c /dev/sda1veya başka bir yöntemle badblock'ları kontrol edebilirsiniz . Bu, blokları bozuk blok inodeuna ekleyerek "kara listeye alır".

e2fsck -cbadblockstemel alınan sabit disk üzerinde çalışır . badblocksKomutu, tıpkı sabit diskte kullandığınız gibi, doğrudan LVM fiziksel biriminde (PV'nin aslında bir sabit disk olduğunu ve MD yazılımı RAID aygıtı gibi başka bir tür sanal aygıt olmadığını varsayarak) kullanabilirsiniz. bir dosya sistemi içerir.

Bu, dosya sistemine herhangi bir kötü blok bilgisi eklemez, ancak bunun dosya sisteminin kullanışlı bir özelliği olduğunu düşünmüyorum; sabit diskin bozuk blokları işlemesi gerekiyor.

badblocksDiskte bir SMART otomatik testi çalıştırmaktan daha iyi ( /dev/sdXsabit diskinizin cihaz adıyla değiştirin ):

smartctl -t long /dev/sdX
smartctl -a /dev/sdX | less

Testin kendisi birkaç saat sürecek (tam olarak ne kadar süreceğini size söyleyecektir). İşiniz bittiğinde, sonucu sorgulayabilir smartctl -a, kendi kendine test günlüğünü arayabilirsiniz . "Başarıyla tamamlandı" yazıyorsa, sabit diskiniz iyi durumda demektir.

Başka bir deyişle, LVM'de kullanılmaması için kötü blokları nasıl kontrol edebilirim?

Söylediğim gibi, sabit diskin kendisi hasarlı blokları kullanmamasını sağlayacak ve aynı zamanda bu bloklardaki verileri yeniden konumlandıracak; bu dosya sisteminin ya da LV'nin yapması gereken bir şey değil. Öte yandan, sabit diskinizde sadece birkaç bozuk blok varsa, bunları değiştiren bir şey istemezsiniz, ancak başarısız olduğu için tüm sabit diski değiştirmek istersiniz.


3
-cTamamen saçma bir şey çağırmadan önce e2fsck man sayfasını kontrol etmek ve ne yaptığını görmek isteyebilirsiniz .
derobert

1
@derobert oops ...
Martin von Wittich

1
@derobert TIL. Yanlış bölümü yeniden yazdım. Geri dönüşünüz için teşekkür ederiz!
Martin von Wittich

Gerçekten de, blokları işaretlemek yerine, dosya sistemi onları modern disklerde kullanmaz, bloğa yeni veriler yazmanız yeterlidir ve disk gerçekten fiziksel olarak hasar görürse sektörü otomatik olarak yedeklemeye yeniden eşler. Bunu ile yapabilirsiniz dd. Düşündüğünüzden daha sık, ortam gerçekten iyi ve veriler sadece bozuldu, bu yüzden üzerine yazmaya gerek kalmadan yeniden çalışıyor.
psusi

"Bunu ile yapabilirsin dd" - ama muhtemelen yapmamalısın. Bir mdbaskınınız varsa, bu sizin için sorunu halledebilir . @derobert muhtemelen disk mdbaskının bir parçası olmadığında ne yapacağını bilecek :)
Martin von Wittich

4

LVM'nin kötü blokları ele almadığından eminim; temel depolama alanını bekler. Ve hepsi olmasa da çoğu modern sabit disk yapar. Sektöre bir yazma işlemi yapmanız gerekebilir, ancak disk yeniden eşleştirmelidir. (Önce çevrimdışı bir yüzey taraması yapmanız gerekebilir, örn smartctl /dev/sda -t offline.).

Bununla birlikte, örneğin, ile sormadıkça LVM aslında verileri hareket ettirmez pvmove. Böylece ext4 badblocks özelliğini kullanabilirsiniz; çalıştırılırsa yalnızca kötü blokları kontrol etmeniz gerekir pvmove. Hiçbir ortak işlem (örneğin lvextend) verileri taşımaz.

LVM, "0–99 mantıksal uzantıları 200–299 fiziksel uzantılarıdır" diyen bir haritayı tuttuğundan genişletir ve daha sonra genişlettiğinizde "100–199 mantıksal uzantıları 100–199 fiziksel uzantılarıdır" ifadesini ekler. Ya da "100–149 mantıksal uzantıları 50-99 fiziksel uzantıları; 150–199 mantıksal uzantıları 140–189 fiziksel uzantılarıdır". LVM, fiziksel uzantıların düzgün veya bitişik olmamasına dikkat etmez.


2

pvckLVM meta verilerini kontrol edebilir, daha sonra bu tutarlılık dosya sisteminin görevidir. LVM sadece hacim yönetimi ile ilgilidir, bu nedenle daha yüksek seviyeli yazılım bu sorunları yakaladığından belirli bir alanı oluşturan alanın kötü olup olmadığına dikkat etmek gerekmez. LVM meta verileri, fiziksel hacmin yalnızca ilkini (isteğe bağlı olarak son sektörü de) alır.

Makul derecede büyük bir PV'nin (üretimde göreceğiniz gibi) sadece ilk ve son sektörleri aynı anda başarısız olursa, temelde dünyadaki en kötü şansa sahipsiniz, çünkü bu çok astronomik bir ihtimal değildir. Aksi takdirde, yönetici sürücünün birden çok sektörünün başarısız olduğunu biliyorsa, çoğu kişi "sabit sürücü kalıcı olarak başarısız oldu ve değiştirilmesi gerekiyor" gibi şeyler göndermeye hazır.

Bir pvckhata döndürürse, LVM meta verilerinizin bir /etc/lvmyerde yedeklenip yedeklenmediğini kontrol edebilirsiniz . Öyleyse pvcreate, yedek kopyayı--restorefile

Sözdizimi:

pvcreate --uuid "<UUID-of-target-PV>" --restorefile <Path-To-Metadata-Backup-File> <path-to-PV-block-device>

Misal:

pvcreate --uuid "2VydVW-TNiN-fz9Y-ElRu-D6ie-tXLp-GrwvHz" --restorefile /etc/lvm/archive/vg_raid_00000-1085667159.vg /dev/sda2 

Geri yükleme işe yaramazsa (örneğin, ilk sektör kötü ise) yukarıdakileri yeniden yapabilirsiniz, ancak --metadatacopies 2meta verileri ilkeye yazmaya çalışacak şekilde ayarlayın (veya doğrudan bunu yapabilirsiniz) ve PV'deki son sektörler. pvscanÖnyükleme sırasında ne zaman yaparsa, her iki yeri de kontrol eder ve meta veri bulursa, bunları bir sağlama toplamına karşı doğrular. Sağlama toplamı ilk sektörde başarısız olursa ancak son sektörde başarılı olursa ölümcül olmayan bir hata mesajı alırsınız.

Bir tür manuel ve bir acı, ama sonra tekrar bu insanların BTRFS ile bir hacim yönetimi redux almak için heyecanlı olmasının nedeninin bir parçası. Çoğu zaman derobert'in bahsettiği nedenler için gerçekten çok fazla bir sorun değildir ve verilerin devamlılığını sağlamak için kesinlikle olumlu bir şekilde ihtiyaç duyan insanlar genellikle RAID yapacak ve bir yedekleme stratejisine sahip olacaklardı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.