S: MDADM mismatch_cnt> 0. Hangi blokların anlaşmazlık içinde olduğunu tespit etmenin herhangi bir yolu var mı?


12

Tamam. Rutin bir ovma işleminden sonra MDADM RAID5 cihazım mismatch_cnt = 16 bildiriyor. Anladığım kadarıyla, hiçbir cihaz bir okuma hatası bildirmediği halde, veri ve eşlikin kabul etmediği 16 blok olduğu anlamına geliyor.

Soru # 1: Bu blokların bir listesi elde edilebilir mi?

Soru # 2: Temel dosya sisteminin EXT4 olduğu göz önüne alındığında, bu bloklarla hangi dosyaların ilişkilendirildiğini tanımlamanın bir yolu var mı?

Nearline yedeklemelerim var ve ideal bir dünyada, sessizce bozulan dosyaları bulmak için canlı diziyi yedekleme verilerine göre ayırabilirim. Ancak gerçek şu ki, 6 TB'lık yedekleme verilerinin hem pahalı hem de zaman alıcı olacağını hatırlıyor. Nereye bakacağınızı ve neyin kurtarılacağını bilmek, işleri büyük ölçüde basitleştirecektir.

(RAID fırçalamayı yalnızca 'kontrol' seçeneğiyle çalıştırdığımı not etmeliyim. Fırçalamayı 'onarım' seçeneğiyle çalıştırmak çok tehlikeli görünüyor çünkü MDADM yalnızca verilerin ya da paritenin yanlış olduğunu biliyor ancak hangisini bilmiyor. Bu yüzden MDADM'nin yanlış tahmin etme ve yanlış verileri yeniden oluşturma şansı% 50'dir.Bu nedenle, hangi dosyaların potansiyel olarak etkilendiğini bilmek arzum, böylece gerekirse yedeklemeden geri yükleyebiliyorum)

Herhangi bir öneri büyük takdir!


kontrol edin dmesgveya / var / log / syslog?
psusi

Selam. Anlayabildiğim kadarıyla, temizleyici tarafından syslog'a kaydedilen tek mesajlar başlatma ve durdurma mesajlarıydı. Uyumsuzluklarla ilgili mesaj kaydedilmedi.
arcasinky

Bkz icheck+ ncheckiçinde debugfsofset sektöre dayalı dosyaları tanımlamak için.
sch

Sektör numarası için günlük kaydı eklemeyi denedim. Şimdi ne yapacağımı anlamaya çalışıyorum: unix.stackexchange.com/questions/266432/…
Peter Cordes

2
Hiçbir şeyin disklerin kötü olduğunu söylemediğini biliyorum, ama kontrol edin. Smartmontools paketini her disk için (vb. Gibi) yapmak için smartctl -a /dev/sdakullanın veya her diskte kısa bir SMART testi çalıştırmak ve tam bir rapor yazdırmak için ihtiyacınız olan diğer yöntemleri kullanın. Bunlardan birinin ölmesi muhtemeldir ve genel bir SMART sağlık alarmını tetiklemek ciddi miktarda kötülük gerektirir.
Biriktirici

Yanıtlar:


1

Üzgünüz, 'check' gerçekten bir hatayla karşılaştığında diziye yazıyor - bkz. Https://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/mdadm/3.2.5-5ubuntu4/file /usr/share/doc/mdadm/README.checkarray

'check', çekirdek günlükleri aksini önerebilse bile salt okunur bir işlemdir (örn. / proc / mdstat ve birkaç çekirdek iletisi "resync" ifadesinden bahsedecektir). Lütfen ayrıca SSS bölümünün 21. sorularına da bakınız.

Bununla birlikte, okuma sırasında bir okuma hatası meydana gelirse, kontrol, 'doğru' verileri üretmek ve bunları yazmaya çalışmak için okuma hatalarına normal yanıtı tetikleyecektir - bu nedenle bir 'kontrol' bir yazmak. Ancak, okuma hatalarının yokluğunda salt okunurdur.

... bu yüzden aradığınız verileri toplamak için çok geç olabilir, üzgünüm.

Uzun vadede, RAID5'in (ve 6 ve 1'in) karşılaştığınız durum olan bit çürümesine karşı hiçbir koruması olmadığını belirtmek gerekir. Bir diskteki veriler kötüye gittiğinde, hangi verilerin iyi veya kötü olduğunu belirlemenin hiçbir yolu yoktur. Btrfs veya zfs gibi her diski sağlama toplamı olan bir dosya sistemine geçmeyi öneririm.

(RAID-5 gerçekten yeni dağıtımlarda kullanılmamalıdır - ve ham disklerin kapasitesinin her biri 2 TB'ın üzerinde olduğu yerlerde gerçekten kullanılmamalıdır - bkz. Http://www.zdnet.com/article/why-raid-5- 2009'da çalışmayı durdurur / )

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.