Linux mdadm yazılımı RAID 6 - biraz yolsuzluk kurtarmayı destekliyor mu?


15

Wikipedia "RAID 2, bazı RAID 6 uygulamaları dışında, verilerdeki tek bit bozulmasından otomatik olarak doğru verileri kurtarabilen tek standart RAID düzeyidir."

Linux'ta RAID 6 mdadm uygulamasının, tek bitlik veri bozulmasını otomatik olarak algılayabilen ve kurtarabilecek böyle bir uygulama olup olmadığını bilen var mı? Bu, diğer sürümlerden farklıysa CentOS / Red Hat 6 ile ilgilidir. Çevrimiçi arama yapmayı denedim ama çok şansım yoktu.

SATA hata hızları 1E14 bitte 1 ve 1.6E13 bit içeren 2 TB SATA diski ile, bu özellikle veri bozulmasını önlemekle ilgilidir.

EDIT 17-Haziran-2015

Bunun başlangıçta düşündüğüm bir endişenin daha az olduğuna inanıyorum - bkz. Sabit disk / SSD'ler - hataların tespiti ve işlenmesi - Sessiz veri bozulması güvenilir bir şekilde önlendi mi? daha fazla ayrıntı için

Yanıtlar:


15

Linux yazılımı RAID sizi bit bozulmasından koruyamayacak ve sessiz veri bozulması onunla iyi bilinen bir konudur. Aslında, çekirdek bir diskteki verileri okuyabiliyorsa, bunun kötü olduğunu asla bilemez. RAID yalnızca verileri okurken bir G / Ç hatası olduğunda devreye girer.

Veri bütünlüğü konusunda endişeleriniz varsa, sağlama toplamlarını depolayıp doğrulayarak veri bütünlüğünü sağlayan Btrfs veya ZFS gibi bir dosya sistemi kullanmayı düşünmelisiniz . Bu dosya sistemleri RAID işlevselliği ile de ilgilenir, bu nedenle bu şekilde giderseniz çekirdek yazılım baskınına ihtiyacınız yoktur.


Teşekkürler. Kimseye yardımcı olması durumunda, chutz'un cevabından daha fazla arama fikri aldım ve mdadm koruyucusunun (inanıyorum) 17 Şubat 2011'de her okumada parite kontrolünü zorlama yeteneğini ekleme planının olmadığını söyledi. Bkz. Spinics.net/lists/raid/msg32816.html
sa289

3

RAID5 ve RAID6, tüm sürücünün eşlikini doğrularsanız bit bozulmasını algılayabilir ve düzeltebilir. Buna "ovma" veya "parite kontrolü" denir ve çoğu üretim RAID sisteminde genellikle 24-48 saat sürer. Bu süre zarfında performans önemli ölçüde düşebilir. (Bazı sistemler operatörün okuma / yazma erişimi veya altındaki fırçalamayı önceliklendirmesine izin verir.) RAID6 daha yüksek bir düzeltme şansına sahiptir, çünkü iki sürücü arızanız varsa düzeltebilirken RAID5 yalnızca 1 sürücü arızasını işleyebilir ve artan etkinlik nedeniyle fırçalama yaparken sürücü arızaları daha olasıdır.


1
RAID fırçalama sırasında performansın belirgin şekilde düşeceği evrensel olarak doğru değildir. Fırçalama tüm mevcut sistem kaynaklarını kullanıyorsa ve "aptal" ise, o zaman çalışır. Ancak, tüm SAN'lar ve ben, çoğu RAID denetleyicisinin fırçalamayı daha düşük veya "iyi" bir öncelikle çalıştıracağını ve kaynak kullanımını dinamik olarak ayarlayarak üretim performansını korumak için gereken kaynakları tüketmeyeceğini düşünüyoruz.
Jeremy

Haklısın. Nüans eklemek için cevabı düzenledim.
vy32

Eğer mdadm raid 6 diziniz / dev / md1 ise, o zaman tek bit bozulmasının paritesini doğrulamak ve onarmaya çalışmak için komuttur "echo check> / sys / block / md1 / md / sync_action"
BeowulfNode42

2
Onlar "biraz yolsuzluğa karşı koruma" değil, ovalarsanız biraz yolsuzluk tespit . Ayrıntılar için soruma buradan bakın.

"RAID5 ve RAID6 bit bozulmasını onarabilir" yanıtını değiştirmenizi öneririm
Waxhead

2

Bunu bir yorum olarak eklerdim ama yeterli itibarım yok; Açıklığa kavuşturmak istedim: RAID5 bit bozulmasını ALGILABİLİR, ancak hangi sürücünün okuma hatası olmadan bozulmaya sahip olduğunu bilmez. Sonuç olarak, bir ovma bunu bir okuma hatası olmadan düzeltemedi - büyük olasılıkla sadece günlüğe kaydedecek ve eşlik bitini eşleşecek şekilde güncelleyecektir. RAID6'nın algoritması konuma bağlıdır, böylece hangi sürücünün hatayı içerdiğini algılayabilir ve bit bozulmasını düzeltebilir.


Doğruysa bu harika olurdu! Nerede belgelendiği hakkında herhangi bir bağlantı sağlayabilir misiniz ??
Alek_A

2

Yukarıdaki tüm yanıtlar RAID 6'nın yetenekleriyle ilgili olarak yanlıştır. RAID 6 algoritmaları bayt baytını RAID 5 gibi çalıştırır ve herhangi bir sürücüdeki tek bir bayt bozuksa, sürücü tarafından herhangi bir hata gösterilmiyorsa, algılanabilir ve düzeltilebilir. Bunu yapmak için algoritma tamamen

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

Bu kontrolü gerçekleştirmek için, eşlik eden P ve Q sürücülerinin veri sürücüleri ile birlikte okunması gerekir. Hesaplanan P 've Q' paritesi sürücü hatası olmadan farklıysa, analiz hangi sürücülerin yanlış olduğunu belirleyebilir ve verileri düzeltebilir.

Buna ek olarak, sürücü tanımlaması mevcut olmayan bir sürücüye yönelikse (yalnızca 15 sürücü varsa 137 sürücüsü gibi), birden fazla sürücü, düzeltilemeyen bir hata hatası bildiren THAT BYTE için bozuk veri sağlıyor. Sette 256'dan az sürücü olduğunda, bu, bayt başına yüksek olasılıkla tespit edilir ve bir blokta çok sayıda bayt olduğundan, blok başına son derece yüksek olasılıkla. Sürücü tanımlaması RAID bloğundaki tüm baytlar için tutarlı değilse, yine birden fazla sürücü bozuk veri sağlar ve genellikle bir kişi durumu reddedebilir, ancak tüm sürücü tanımlamaları geçerli olduğu sürece, bloğun mutlaka olması gerekmez reddedilmek.

Bu düzeltmeyi yapmak normal doğrulama süresinden daha uzun sürer, ancak sadece sendrom (P ve Q) hesaplamasında bir hata gösterildiğinde yapılması gerekir.

Ancak tüm bunlar söyleniyor, tek baytlık yolsuzluğun işlenip işlenmediğini belirlemek için mdadm kodunu incelemedim. Aylık taramada mdadm'ın RAID6 sendromu hatalarını bildirdiğinin farkındayım, ancak hata mesajından düzeltilip düzeltilmedikleri net değil - sürücü dizisini durdurmuyor veya mesajdaki belirli bir sürücüyü tanımlamıyor.

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.