Raid 10 cihazının neden başlatılması gerekiyor?


9

Bir raid10 cihazı olarak bir linux yazılım baskını cihazı oluştururken, neden başlatılması gerektiği konusunda kafam karıştı. Aynı soru raid1 veya raid0 için de geçerlidir.

Nihayetinde çoğu kişi bir çeşit dosya sistemini üzerine koyar ve bu dosya sistemi disk verilerinin herhangi bir durumunu kabul etmemelidir. Her yazma işlemi, N aynalarının yazıldığı bir raid10 veya raid1 kurulumundaki her iki diski de etkiler. Bir baskın10'un başlangıçta başlatılması için hiçbir neden olmamalıdır, çünkü zamanla gerçekleşecektir.

Bir parite gereksiniminin olduğu bir raid5 / 6 kurulumunun nedenini anlayabiliyorum, ancak o zaman bile bu tembel bir şekilde yapılabilir gibi görünüyor.

İnsanlar bu konuda kendilerini daha iyi mi hissediyorlar?


1
İyi soru. RAID oluşturulurken senkronizasyonu atlamak mümkündür ve bir veya daha fazla temel cihaz SSD olması durumunda bunu yapmak için önerilerle karşılaştım. Doğru işlem için senkronizasyonun gerekli olduğu senaryoların olup olmadığını bilmiyorum.
kasperd

Yanıtlar:


2

İlk senkronizasyon gereklidir çünkü aynalar arasındaki farklar periyodik kontrol sırasında hatalar olarak görünür.

Ve periyodik kontroller yapmalısınız.


1
Verilerin okunabilirliği için periyodik kontrollerin neden yararlı olabileceğini görebiliyorum. Fakat aynı olan kopyaların periyodik kontrolü ne işe yarar? Bu kontroller, verileri toplayan bir dosya sistemi tarafından gerçekleştirildiğinde faydalı olabilir. Ancak dosya sistemi bilgisi olmayan RAID katmanında, iki farklı kopyadan hangisinin iyi olduğunu bilemezsiniz, ilk etapta tutarsızlığın nasıl gerçekleştiğini bilemezsiniz ve (varsa) hangi dosyanın etkilendiğini bilemezsiniz. Bu nedenle, yöneticinin uyarılarla zaten yapabileceği hiçbir şey olmadığından, bu katmandaki tutarsızlıklarla ilgili uyarılar çoğunlukla işe yaramaz gibi görünüyor.
kasperd

Yine de verileri okumanız gerektiğinden, karşılaştırmanın maliyeti minimumdur, ancak disklerden birinin başka türlü algılanmayan bir sorun geliştirdiğini gösterebilir (örneğin sürücünün önbelleğindeki kötü RAM). Yönetici daha sonra diziyi böler, farklılıklara manuel olarak bakar ve değiştirilecek sürücüyü seçer.
Simon Richter

O zaman cevabınızda bunu genişletmelisiniz.
kasperd

Yıllar geçtiğini biliyorum, ama görebildiğim tek geçerli sebep bu. Ben veri tanımı henüz yazılmamış olduğu için veri senkronize değilse, başka türlü önemli olduğunu düşünmüyorum, bu nedenle baskın sürücüye uygulanan dosya sistemi bu bloklardan asla okumayacağım. Periyodik kontrollerin başlangıçtan geçtiğinden emin olmak bunu gerekli kılar. Teşekkürler!
Michael Graff

7

Raid 1, ayna olarak, aynadaki tüm disklerin birbirinin tam kopyası olduğuna bağlıdır. Rastgele sabit sürücünüzü ve başka bir rastgele sabit sürücünüzü alın ve muhtemelen farklı verileriniz var, bu nedenle bu varsayımı ihlal ediyorsunuz. Bu yüzden başlatma gereklidir. Sadece ilk sürücünün içeriğini başkalarına kopyalar. Bazı durumlarda, sürücüleri başlatmadan kurtulabileceğinizi unutmayın - genellikle fabrikada yeni cihazların her yerinde sıfırlar vardır, böylece bunu göz ardı edebilirsiniz. mdadmSeçenek --assume-cleanolarak yapar, ancak uyarır:

   --assume-clean

Mdadm'a dizinin önceden var olduğunu ve temiz olduğu bilindiğini söyleyin. Diziye gerçekten yazmadığınız sürece hiçbir verinin etkilenmeyeceğinden emin olabileceğinizden, büyük bir arızadan kurtarmaya çalışırken yararlı olabilir. İlk yeniden senkronizasyonu önlemek istiyorsanız RAID1 veya RAID10 oluştururken de kullanılabilir, ancak bu uygulama - normalde güvenli olsa da - önerilmez. Bunu sadece ne yaptığınızı gerçekten biliyorsanız kullanın.

Bunu yapmazsanız, sürücüler ile okunan sürücü arasında bir tutarsızlık vardır, sürücünün ne okuyacağını bilmez. Bir dosya sistemiyle oldukça güvende olmalısınız (ancak aşağıdaki not), çünkü büyük olasılıkla o cihazdan bir şey okumadan önce yazacaksınız ve sonra açıksınız.

En azından Linux'ların mdadmdiziyi arka planda başlatacağını unutmayın . İlk saniyede FS'yi mutlu bir şekilde oluşturabilirsiniz. Başlatma işlemi bitene kadar performans düşecek, ama her şey bu.

Fakat:

a) mkfsBazı yardımcı programları yaparken bu sürücüde zaten bir şey olup olmadığını kontrol edin. Bu sadece birkaç tanınmış sürüş bölgesine dokunsa da, bir şey yazmadan önce okur, böylece sizi tehlikeye sokar.

b) Dizinizin periyodik olarak yeniden senkronizasyonunu yaparsanız, RAID cihazı FS'nizden hiçbir şey bilmez. Sadece her cihazdaki her bloğu okur ve bunları karşılaştırır. Ayrıca, bir üzerine yazma FS'si (örn. ZFS veya BTRFS) kullanmıyorsanız ve FS'nizi asla doldurmuyorsanız, bir bloğun yıllarca FS perspektifinden başlatılmaması mükemmeldir.

Neden RAID1 cihazlarla yeniden senkronize ediliyor?

Aynı nedenden dolayı RAID5 aygıtlarıyla veya başka bir düzeyle (RAID0 hariç) yeniden senkronize edersiniz. Tüm verileri okur ve RAID sağlama toplamlarını karşılaştırır / doğrular (RAID 5 veya 6'da). Biraz herhangi bir şekilde çevrildiyse (HD bellek kendiliğinden döndüğünden, sizin ve 5 komşunuzun cep telefonları bu belirli plakalı bölgeye yanlışlıkla müdahale ettiğinden, herhangi bir tutarsızlığı tespit edecek, ancak sana yardım etmek. Sabit sürücülerden biri olan OTOH, arızalı bir sürücü ile daha olası olan "bu bloğu okuyamam" raporunu verirse, erken bir arıza tespit ettiniz ve bozulmuş modda çalıştığınız süreyi kısalttınız ( sürücü arızası, fark ettiğiniz zaman değil). Bir sürücü arızalanırsa ve bir ay sonra diğeri başarısız olursa Raid size yardımcı olmaz.

RAID10

Şimdi, RAID10 için yukarıdakilerin hepsi geçerlidir. Sonuçta RAID10, 'İki RAID1 cihazımı bir RAID0 çiftine takıyorum' demenin akıllıca bir yolu.

Uyarı:

Bunlar tanımsız davranışlar. Neden Linux üzerinde kontrol ettim mdadm, diğer yazılım RAID uygulamaları farklı davranabilir. Linux çekirdeğinin ve / veya mdadmaraçlarının kullandığım diğer sürümleri de farklı davranabilir.


1
Lütfen için bir alıntı sağlayın If you don't do it, there is a discrepancy between the drives and it's read, the RAID device will report failure of a drive. Bu ifadenin yanlış olduğuna inanıyorum. En azından, hangi koşullarda üretildiğini doğrulamak için kaynağa danışmak mümkün olacak şekilde hata mesajına bir örnek verin.
kasperd

1
Bu daha iyi. Sıfır yazma hakkındaki ifadeyi doğruladınız mı? Sanırım sıfır yazmıyor, disklerden birini diğerine kopyalıyor.
kasperd

1
While this only touches a few well-known regions of drive, it reads before you write anything, thus putting you in danger.Ne tehlikesi var? Okumanın herhangi bir şeyle sonuçlanabileceğini anlıyorum, ancak (a) okunan bilgilerin hiçbir yerde kullanılmaması ve (b) bir yazma gerçekleşmek üzereyse, bu neden kullanıcı için bir tür tehlikeye yol açsın?
Vegard

1
@kasperd haklısın, ilk cihazı ikincisine kopyalar. urandomLinux mdadm ile başlatılmış cihazda test, ilk 80k'nin ve son 48k'nin farklı kaldığını gösterir. İkincisi, büyük olasılıkla RAID boyutunun blok boyutuna yuvarlanması nedeniyle. Farklı cihaz boyutları ile test etmedim, ancak 80 + 48, RAID cihazı ile temeldeki blok cihazı arasındaki boyut farkıdır.
Torinthiel

1
Dikkate alınması gereken bir şey, genellikle başlatma sırasında, baskın sisteminin DAİMA A diskini okuyacağı ve B diskine kopyalayacağıdır. Neden? Diski başlatılırken kullanabileceğiniz için 100.000 bloğunda veri yazmış olabilirsiniz. Baskın initi bu bloğa ulaştığında, hem A hem de B zaten aynıdır, bu yüzden hiçbir şey olmaz. Bunun yerine blokları sıfırlamak olsaydı, iyi verileri silerdi. Böylece, bir kez daha, blokların aynı olmasını sağlamak için iki neden görüyorum: "her zaman yapıldı" ve "böylece daha sonra bir kontrol yapabilirsiniz" - Ayrıca, kontrolün yararlılığını da sorgularım. Okuma iyidir, kıyaslama? emin değil.
Michael Graff

5

RAID 1'in bir ayna olduğunu ve RAID 10'un bir ayna şeridi olduğunu unutmayın.

Soru, her aynadaki hangi diskin üzerindeki veriler geçerli? Yeni oluşturulan bir dizide, diskler farklı verilere sahip olabileceğinden bu bilinemez.

RAID'in çok düşük bir seviyede çalıştığını da unutmayın; dosya sistemlerini veya diskte depolanabilecek verileri bilmiyor. Hatta olmayabilir olmak kullanımında bir dosya sistemi.

Bu nedenle, bu dizilerdeki başlatma, aynen olduğu gibi diğer diske kopyalanan her aynadaki bir diskten alınan verilerden oluşur.

Bu aynı zamanda dizinin oluşturma anından itibaren güvenli olduğu ve arka planda başlatılabileceği anlamına gelir; çoğu RAID denetleyicisinin (ve Linux mdraid) bunun için bir seçeneği vardır veya bunu otomatik olarak yapar.


Yorumlar uzun tartışmalar için değildir; bu sohbet sohbete taşındı .
Michael Hampton

1

Basitçe söylemek gerekirse, iki yeni diskin başlangıçtan itibaren birbirlerinin mükemmel kopyalarının aynası olması beklenmemektedir.

Birbirlerinin mükemmel kopyalarına dönüştürülmeleri gerekiyor.

Ayrıca başlatma işlemi, meta veri süper bloğunun dizi yapılandırmasıyla ilgili bilgilerle ayarlanmasını da içerir.

/ Proc / mdstat dosyası, aygıtın başlatıldığını, aynanın yeniden yapılandırıldığını ve yeniden yapılandırmanın tamamlanmasının bir ETA'sını belirtmelidir. Yeniden yapılandırma boş G / Ç bant genişliği kullanılarak yapılır. Disk LED'leriniz de çok fazla etkinlik göstermesine rağmen, sisteminiz hala duyarlı olmalıdır.

Yeniden yapılandırma işlemi şeffaftır, bu yüzden ayna şu anda yeniden yapım aşamasında olsa bile cihazı kullanabilirsiniz.


2
Ama neden birbirlerinin mükemmel kopyaları olmaları gerekiyor? İkisinin dosya sistemi tarafından hiç kullanılmamış sektörlerde tutarsız olmasının sebebi ne olabilir?
kasperd

@kasperd RAID, herhangi bir dosya sisteminden daha düşük bir düzeyde uygulanır. Böylece soru, başvurduğunuz "dosya sistemi" ne olur.
Taemyr

@Taemyr Belirli bir dosya sistemine atıfta bulunmuyorum. Hangisini tercih ederseniz seçin ve dosya sistemini başlatmadan önce kopyaların senkronize olmadığı bir RAID-1'de neyin kırılacağını açıklayın.
kasperd

@kasperd RAID'in çalıştığı düzeyde kırılacak bir dosya sistemi yoktur .
Taemyr

1
Benim durumumda, orijinal poster olarak, hangi dosya sistemini umursamıyorum. Daha önce hiç yazılmamış sektörleri okuyacak hiçbir dosya sistemi bilmiyorum, bu yüzden bu yazılmamış sektörlerin herhangi bir belirsiz durumu önemli değil.
Michael Graff
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.