RAID 1 + 6 neden daha yaygın bir düzen değil?


17

Yuvalanmış RAID seviyeleri 1 + 5 veya 1 + 6 neden neredeyse duyulmuyor? İç içe RAID seviyeleri Wikipedia makalesi şu anda kendi bölümleri eksik. RAID 1 + 0'dan neden daha yaygın olmadıklarını anlamıyorum, özellikle RAID 1 + 0 üçlü aynalama ile karşılaştırıldığında.

Sürücü kapasiteleri performanslarından veya güvenilirliklerinden daha hızlı arttıkça yeniden oluşturma süresinin giderek daha sorunlu hale geldiği açıktır. RAID 1'in daha hızlı yeniden oluşturulduğu ve RAID 1 çiftlerinin RAID 0 dizisinin sorunu önlediğini, ancak kesinlikle RAID 5 veya 6 RAID 1 çift dizisinin olacağını söylediler. En azından RAID 1 + 0'a ortak bir alternatif olmasını beklerdim.

16 TB disklerden 16'sında, yedeklemeye başvurma gibi saf bir olasılıkla ilgili hesaplamalarım, yani sürücülerin eşit olasılıkla bağımsız olduğu varsayımını basitleştirerek:

RAID | storage | cumulative probabilities of resorting to backup /m
 1+0 |     8TB | 0, 67, 200, 385, 590, 776, 910, 980, 1000, 1000, 1000
 1+5 |     7TB | 0,  0,   0,  15,  77, 217, 441, 702,  910, 1000, 1000
 1+6 |     6TB | 0,  0,   0,   0,   0,   7,  49, 179,  441,  776, 1000
(m = 0.001, i.e. milli.)

Bu doğruysa, RAID 1 + 6'nın depolama kapasitesinde% 25'lik bir azalma için RAID 1 + 0'dan son derece daha güvenilir olduğu oldukça açıktır. Genelde olduğu gibi, teorik yazma verimi (arama sürelerini saymaz) depolama kapasitesi / dizi boyutu × sürücü sayısı × dizideki en yavaş sürücünün yazma verimi (yedekli RAID seviyeleri, yazma için daha yüksek yazma amplifikasyonuna sahiptir. bir şerit doldurmayın ancak bu yığın boyutuna bağlıdır) ve teorik okuma hacmi dizideki sürücülerin okuma çıktılarının toplamıdır (RAID 0, RAID 5 ve RAID 6'nın teorik olarak sırasıyla en yavaş, 2. en yavaş ve 3. en yavaş sürücü okuma verimleri). Yani, özdeş sürücüler varsayarsak, bu sırasıyla 8 ×, 7 ×,

Ayrıca, RAID 0 dörtlü RAID 1 üçlülerini, yani 12 sürücünün RAID 1 + 0 üçlü aynalamasını ve RAID 1 çiftlerinin RAID 1 çift parçasını, yani RAID 1 + 6 12 sürücüyü göz önünde bulundurun. Yine, bunlar aynı 1 TB sürücülerdir. Her iki düzen de aynı sayıda sürücüye (12), aynı miktarda depolama kapasitesine (4 TB), aynı yedeklilik oranına (2/3), aynı maksimum yazma işlemine (4 ×) ve aynı maksimum okuma işlemine ( 12 x). İşte benim hesaplamalar (şimdiye kadar):

RAID      | cumulative probabilities of resorting to backup /m
1+0 (4×3) | 0, 0, 18,  ?,   ?,   ?,   ?,   ?, 1000
1+6 (6×2) | 0, 0,  0,  0,   0,  22, 152, 515, 1000

Evet, bu aşırıya kaçmış gibi görünebilir, ancak yedekleme için bir klonu bölmek için üçlü aynalamanın kullanıldığı yerlerde, RAID 1 + 6, RAID'in 2'si dışındaki her bir sürücünün 1'inin dondurulması ve kaldırılmasıyla da kullanılabilir. 1 çift ve bunu yaparken degraded olduğunda degraded RAID 1 + 0 dizisinden çok daha iyi güvenilirliğe sahiptir. İşte 4 şekilde bu şekilde bozulan 12 sürücü için hesaplamalarım:

RAID      | cumulative probabilities of resorting to backup /m
1+0 (4×3) | (0, 0, 0, 0), 0, 143, 429, 771, 1000
1+6 (6×2) | (0, 0, 0, 0), 0,   0,  71, 414, 1000

Ancak okuma hızı bu süre boyunca RAID 1 + 6 için 6 × değerine düşürülebilirken, RAID 1 + 0 yalnızca 8 × değerine düşürülebilir. Bununla birlikte, dizi bu bozulmuş durumda iken bir sürücü arızalanırsa, RAID 1 + 6 dizisinin yaklaşık 6 × oranında kalma veya 5 × ile sınırlı kalma şansı 50, RAID 1 + 0 dizisi ise 4 × darboğazla sınırlandırılmalıdır . Yazma performansı oldukça etkilenmemelidir (yedekleme için alınan sürücüler en yavaş sürücüleri sınırlasa bile artabilir).

Aslında, her ikisi de 'üçlü yansıtma' olarak görülebilir, çünkü bozulmuş RAID 1 + 6 dizisi, 4 sürücünün ek bir RAID 6 grubunu bölebilir. Başka bir deyişle, bu 12 sürücülü RAID 1 + 6 düzeni 3 adet bozulmuş (ancak işlevsel) RAID 6 dizisine bölünebilir!

Yani çoğu insan matematiğe ayrıntılı olarak girmedi mi? Gelecekte daha fazla RAID 1 + 6 görecek miyiz?


2
Düşünce kireçiniz, pariteyi oluşturmak için yazma amplifikasyonunu dikkate almamış gibi görünüyor.
JamesRyan

1
@JamesRyan: Evet, gerçekten paritenin yazılması gerektiğini düşündüm. “Depolama kapasitesi / dizi boyutu” bunun içindir - bunun tersi, katı hal sürücüleri ile ilişkili daha fazla yazma amplifikasyonu içermeyen yazma amplifikasyon faktörüdür. Bunun RAID 1 artıklığının yazma amplifikasyonunu da içerdiğine dikkat edin. Temel olarak, yazma büyütme faktörü, 1 eksi fazlalık oranının karşılıklılığına eşittir. Yani% 50 fazlalık 2 yazma yazma faktörü verir; % 62.5 (10/16) fazlalık ~ 2.67 (16/6) yazma amplifikasyon faktörü verir.
James Haigh

1
hayır bu yanlış. Her RAID6 yazma 6 IO alır ve her RAID1 yazma 2 IO alır, bunlar çarpımsaldır. RAID 1 + 6'da her yazma 12 IO alacaktır, çünkü RAID 10 2 IO'dur. 12 sürücüdeki yazma hızı, RAID1 + 6 için 1x ve RAID10 için 6x olacaktır!
JamesRyan

@JamesRyan: Oh, şimdi bununla nereye gittiğini görüyorum - tam bir şeritten daha az olan yazma işlemleri için yazma amplifikasyon faktörü RAID 1 + 6 için iki katına çıkabilir ve böylece maksimum yazma hacmini yarıya indirebilir. Tam bir şerit için, evet 6 × 2 örneğinde 12 yazma vardır, ancak bunun 4 parça veri için olduğunu unutursunuz. Sırasıyla 4, 3, 2, 1 parça için yazma büyütme faktörleri (6 × 2) / 4 = 3, (5 × 2) / 3 = ~ 3.33, (4 × 2) / 2 = 4, ( 3 × 2) / 1 = 6, maksimum 4 ×, 3.6 ×, 3 ×, 2 × yazma verimi sağlar. RAID 1 + 0 4 × 3 için bu, 4 × sabiti veren (4 × 3) / 4, (3 × 3) / 3, (2 × 3) / 2, (1 × 3) / 1'dir. …
James Haigh

2
Hesaplamalarınıza dayanarak, RAID1 + 6'nın üçlü RAID10 ile aynı yazma işlemine sahip olduğunu belirttiniz. Gerçekte RAID1 + 6, RAID10'un yazma hacmini uzaktan bile içermez, bu nedenle hesaplamalarınız veya temel aldıkları varsayımlar yanlıştır . Nedenini anlamanıza yardımcı olmaya çalışıyordum, dinlemeyi reddederseniz zamanımızı boşa harcıyor olabiliriz ama onu boşa harcayan sizsiniz.
JamesRyan

Yanıtlar:


17

Genel olarak RAID 1 + 0'ın 1 + 5 veya 1 + 6'dan daha yaygın olarak kullanılma eğiliminde olacağını söyleyebilirim çünkü RAID 1 + 0 yeterince güvenilirdir ve marjinal olarak daha iyi performans ve daha kullanışlı depolama sağlar.

Çoğu insanın RAID 1 + 0 grubu içindeki tam bir RAID 1 çiftinin başarısızlığını, yedeklerini kırmaya değer oldukça inanılmaz derecede nadir bir olay olarak alacağını düşünüyorum - ve muhtemelen fiziksellerinin% 50'sinin altına düşme konusunda çok hevesli değiller. kullanılabilir alan olarak.

RAID 1 + 0'dan daha iyi güvenilirliğe ihtiyacınız varsa, o zaman devam edin! ..ama çoğu insanın buna ihtiyacı yoktur.


1
RAID 1 + 0 ile ilgili sorunum, depolama alanına güvenilirlik oranının kötü olmasıdır. RAID 6 herhangi bir sayıda pariteye keyfi olarak genişletilebilirse (n - 1'in altında), aynı sürücüler için RAID 1 + 0'dan daha fazla depolama ve daha iyi güvenilirlik elde edebilirsiniz . Yukarıdaki örnekte, 4 pariteye sahip RAID 6 olması mümkün olsaydı, RAID 1 + 0'dan% 50 daha fazla depolama alanına ve maksimum yazma işlemine sahip olursunuz, ancak son derece yüksek güvenilirliğe sahip olursunuz. 3 veya 4 adet parite içeren RAID 6, güvenilir bir güvenilirlik ve depolama alanı dengesine sahip olacaktır.
James Haigh

4
@JamesHaigh RAID 6 ve RAID 1 + 0, RAID 1 + 6 ve RAID 1 + 0'dan çok farklı bir tartışmadır, konuyu biraz değiştirdiniz. ZFS'nin raidz3'ü ara sokaklarda gibi görünüyor mu? Her neyse, noktanıza kadar, RAID 1 + 0'ın RAID 6 üzerinde sağladığı bazı performans avantajları vardır, örneğin çok daha az sayıda sürücüye dokunması gereken küçük tek blok yazmalar (ve raidz3'e geri dönün, ZFS bunu birden çok yazı yazarak akıllıca ele alır) küçük yazarlar için tüm disklere yazmak yerine tam kopyalar)
Shane Madden

Üzgünüm, evet, bence bu gerçekten takip ettiğim şey. Bu son yorumdan beri özellikle RAID hakkında 3 veya daha fazla parite ile yeni bir soru yazıyorum . Sanırım RAID 1 + 6'dan daha iyi olurdu. İstenilen ödünleşimi elde etmek de daha esnek ve basit olacaktır. Bu soruya devam etmek isteyebilirsiniz.
James Haigh

3
RAID 6 doğrusal olarak genişletilemez, çünkü bu şekilde çalışmaz. İkinci parite için sendrom hesaplaması önemsiz bir şekilde üçüncü bir tarafa ölçeklenmeyecektir. Ancak daha küçük RAID 6 gruplarını kolayca yapabilirsiniz - 14 + 2 yapmanız gereken gerçek bir neden yoktur ve bunun yerine 2 + 2 veya 4 + 2 yapabilir ve çok fazla güvenilirlik kazanabilirsiniz.
Sobrique

1
@JamesHaigh İstediğiniz görünmek 12 yönlü bir raidz8. Eşlik hesaplamalarına giren mantığa dayanarak, önemsiz verilerle bile işlemcileri kalıcı olarak sabitleyecektir. Tek parite aslında XOR'dur (kolay). Çift parite karelerle ilgili bir şeydir (zor değil, kolay değil). Üçlü eşlik küp temelli veya benzerdir (sert). 4, 5, 6, 7 veya 8 parite daha da büyük (üstel ölçekte) hesaplamalar talep eder (buna ayak uydurmak için kuantum bilgisayarlara ihtiyaç duyabilir). Şekil büyüdükçe, IOPS'ta SIFIR artış olduğunu unutmayın. Medya için kimin umurunda? VM'ler için öldürür.
Mart'ta katil

16

Pratik cevap, donanım RAID denetleyici teknik özellikleri, ortalama disk boyutları, sürücü form faktörleri ve sunucu tasarımının kesiştiği yerde yatmaktadır.

Çoğu donanım RAID denetleyicisi destekledikleri RAID düzeyleriyle sınırlıdır. HP ProLiant Akıllı Dizi denetleyicisinin RAID seçenekleri şunlardır:

[raid=0|1|1adm|1+0|1+0adm|5|50|6|60]

not: "adm" sadece üçlü yansıtma

LSI RAID denetleyicileri şunları destekler: 0, 1, 5, 6, 10, 50, and 60

Böylece bu kontrolörler RAID 50 ve 60'ı sadece iç içe seviyeler olarak kullanabilirler. LSI ( née Dell PERC ) ve HP, kurumsal sunucu depolama adaptörü pazarının çoğunu oluşturur. Sahada RAID 1 + 6 veya RAID 61 gibi bir şey görmemenizin ana nedeni budur.

Bu düşüncenin ötesinde, RAID 10'un ötesinde iç içe geçmiş RAID seviyeleri nispeten çok sayıda disk gerektirir. Günümüzde artan sürücü kapasiteleri göz önüne alındığında (3,5 "nearline SAS ve SATA sürücüler ile), birçok sunucu kasasının yaklaşık 8 x 2,5" sürücü kafesleri tasarlandığı gerçeğiyle birlikte, RAID 1+'yi fiziksel olarak yapılandırma fırsatı yoktur 6 veya RAID 61.

RAID 1 + 6 gibi bir şey görebileceğiniz alanlar, büyük kasa yazılımı RAID çözümleri olacaktır. Linux MD RAID veya ZFS kesinlikle bunu yapabilir. Ancak o zamana kadar, sürücü arızası sıcak veya soğuk yedek disklerle azaltılabilir. RAID güvenilirliği, toksik RAID seviyesi ve donanım kombinasyonlarından (örn. RAID 5 ve 6 TB diskler) kaçınmanız koşuluyla, bugünlerde pek sorun değil. Ek olarak, katmanlama ve önbellekleme katmanları tarafından okuma ve yazma performansı soyutlanabilir. Ortalama depolama iş yükleri tipik olarak birinden veya diğerinden yararlanır.

Sonuçta, ihtiyaç / talep yokmuş gibi görünüyor.


1
Dizi çoğaltma şeklinde bir talep var. Pratik olarak uzak (RAID 10 veya 5 veya 6) uzak bir siteye çoğaltılan RAID 10 veya 5 veya 6'yı konuşan çok siteli DR yapan birkaç site biliyorum. Küçük bir bölümde - belirli bir disk güvenilirliği düzeyinin ötesinde, işlemcileriniz, denetleyicileriniz, ağlarınız, gücünüz, aircon, veri merkezinizi yakalayan yangınlarınız güvenilirliğiniz için daha büyük tehditlerdir.
Sobrique

1
OP'nin çoğaltma veya çoklu site kullanımını bile düşündüğünü sanmıyorum.
ewwhite

1
Hayır muhtemelen değil. Dediğiniz gibi - sadece talep yok çünkü aşırıya kaçmış. Gerçi aşırıya
kaçmayan

Bir baskın 6 + 1 gibi bir şey yapılandırdım - bir Netapp yerel syncmirror, kendisinin özdeş bir kopyasını oluşturacak ve yazmaları yansıtırken, her iki plexte de multipleks okuyor. Çoğunlukla Netapp V-Serisini yeni arka uç LUN'lara taşımak için kullanılır, ancak güvenilirliğimi ikiye katlamak istersem bunu yapabilirdim.
Fesleğen

12
  • Güvenilirlik konusunda azalan geri dönüşleriniz var. RAID 6, 10 ^ 14 UBER oranında 1'e sahip kötü SATA sürücülerde bile bileşik arızası olasılığı düşüktür. FC / SAS sürücülerde UBER'iniz 10 ^ 16'da 1'dir ve siz de çok daha fazla performans elde edersiniz.

  • RAID grup güvenilirliği sizi yanlışlıkla silinmeye karşı korumaz. (bu yüzden yedeklere yine de ihtiyacınız var)

  • belirli RAID seviyelerinin ötesinde, disklerde bileşik arıza olasılığınız, destek altyapısının (güç, ağ, klima kaçağı, vb.)

  • Ceza yaz. RAID 61'inize gelen her yazma işlemi 12 IO işlemini tetikler (naif olarak yapılır). RAID 6, TB düşük yazma başına GİB açısından 'düşük seviye' senaryolarında zaten acı vericidir. (ve daha yüksek kademede, başarısızlık oranınız zaten 100 kat daha iyidir)

  • o '25% azalma' bu bir var değil ayrıca % 25 indirim. 16 TB'ınız 6 TB'a dönüşüyor. Böylece% 37,5 kullanılabilir depolama alanı elde edersiniz. Kapasite başına 3 kat ve veri merkezi alanının 3 katına ihtiyacınız vardır. Büyük olasılıkla daha küçük RAID6 setleri yaparak daha fazla güvenilirlik elde edersiniz. Sayıda çatırdama yapmadım, ancak deneyin - örneğin 3x 3 + 2 setlerindeki (15 sürücü, RAID10'unuzdan daha az depolama alanı) RAID 6'nın toplamları. Ya da bunun yerine 3 yollu aynalar yapmak.

Bunu söyledikten sonra - çok bölgeli DR için yapmayı düşündüğünüzden daha yaygındır. RAID5 / 6 / DP RAID gruplarını eşzamanlı olarak veya bir DR sitesine eşzamanlı olarak aldığım çoğaltılmış depolama dizileri çalıştırıyorum. (Muhtemelen önleyebiliyorsanız senkronizasyon yapmayın - iyi görünüyor, aslında korkunç).

NetApp'larım ile bu, bazı yansıtılmış toplamalara sahip bir metrocluster. VMAX'lerimle Symmetrix Uzak Veri Tesisi (SRDF) var. Ve 3PAR'larım uzaktan kopyalama yapıyor.

Pahalıdır, ancak DR 'veri merkezi alev alır' seviyeleri sağlar.

Üçlü aynalarla ilgili olarak - bunları kullandım, ancak doğrudan RAID esneklik ölçüleri olarak değil, bir yedekleme stratejisinin parçası olarak tam klonlar olarak kullandım. Üçüncü bir aynayı senkronize edin, ayırın, ayrı bir sunucuya monte edin ve tamamen farklı bir altyapı kullanarak yedekleyin. Ve bazen üçüncü aynayı kurtarma seçeneği olarak döndürün.

Yapmaya çalıştığım nokta, bir depolama yöneticisi olarak doğrudan deneyimimde - ~ 40.000 iğli bir mülkte (evet, her gün onlarca sürücüyü değiştiriyoruz) - çeşitli yedeklemeler için yedeklere gitmemiz gerekti. Son 5 yılda nedenler, ancak bunların hiçbiri RAID grubu başarısızlığı değildi. Göreceli değerleri ve kabul edilebilir toparlanma süresi, toparlanma noktası ve kesinti pencerelerini tartışıyoruz. Ve tüm bunların temelinde DAİMA ekstra esnekliğin maliyeti var.

Dizimiz tüm ortam fırçalama ve arıza tahmin ve agresif bir şekilde sürücüleri test ve test.

Uygun bir RAID uygulaması olsa bile, maliyet-fayda yoktur. Depolama alanına harcanan para, daha uzun bir saklama veya daha sık yedekleme döngüsüne daha iyi yatırılır. Veya daha hızlı iletişim. Ya da sadece genel olarak daha hızlı iğler, çünkü özdeş esneklik sayılarında bile, yedek parçaların daha hızlı yeniden oluşturulması bileşik arıza olasılığınızı artırır.

Bu yüzden sorunuzun cevabını sunacağımı düşünüyorum:

RAID 1 + 6 ve 1 + 5'i çok sık görmezsiniz, çünkü maliyet avantajı sadece birikmez. Sonlu miktarda para verildiğinde ve ilk etapta bir yedekleme çözümü uygulaması gerektiğinde, yaptığınız tek şey kesinti sıklığınızı azaltmak için para harcamaktır. O parayı harcamanın daha iyi yolları var.


“RAID grup güvenilirliği sizi yanlışlıkla silinmeye karşı korumaz. (bu yüzden yedeklemeye yine de ihtiyacınız var) ”- Bunun yedekleri gereksiz kıldığını ima etmedim ( RAID'in bir yedekleme olmadığının farkındayım ). Aslında "yedeklemeye başvurmanın birikimli olasılıkları" diyerek bunun tersini ima ediyorum - yedeklerin standart uygulama olduğu düşünülüyor. Bu noktaya katılıyorum, ancak mantıklı olmayan RAID 1 + 6 hakkındaki akıl yürütmemle mücadele etmek olarak sunuluyor.
James Haigh

“RAID 61” - RAID 6 + 1, RAID 1 RAID 6 dizileri dizisi olacaktır. Bu tersine çevrilmiş bir yuvalama ve bence çok daha az güvenilirliğe sahip olacak. Yani, aynı iç içe RAID 6 dizisinde 3 sürücü başarısız olursa ne olur? Tüm iç içe RAID 6 dizisinin yeniden oluşturulmasına gerek yok mu? RAID 1 + 6 olarak yuvalanmış aynı sürücüler, herhangi bir çalışan sürücüyü çevrimdışına almadan aynı 3 sürücü arızasını sürdürür.
James Haigh

“Belirli RAID seviyelerinin ötesinde, disklerde bir bileşik arızası olasılığınız, altyapıyı destekleyen güç arızasından (güç, ağ, klima kaçağı, vb.) Daha düşük olur”; “ % 25 daha fazla azalma” - Doğru ve doğru, aşırı dolu bir yuvalama düzeni. Ama o zaman neden bir Dünya RAID 0 üç RAID 1 dizisi kullanır? RAID 1 + 0 üçlü aynalama hakkında hatırlattığınız için teşekkürler! “Sayıda çatırdama yapmadım”; “Ya da bunun yerine 3 yönlü aynalar yapın.” - Karşı örnek olarak destekleyici bir durum vermeden önce bazı hesaplamalar yapmanız gerekir. Bu hesaplamalar araştırılmalıdır…
James Haigh

1
Benim doğrudan tecrübem bu - mülkümde çeşitli konfigürasyonlarda 40.000 iğ var. Son 5 yıldır baskın grup başarısızlığımız olmadı. Üçlü ayna kullandım, ancak dayanıklılık için değil - yedekleme nedenleriyle klon kopyalar yapmak içindir. DR nedenlerle - kullandığım - çoklu site kopyaları kullandım, ancak bunların hiçbiri RG hataları için de gerekli değildi.
Sobrique

1
Yazma cezasının ne olduğunu yanlış anlıyorsunuz. Tek bir üzerine yazma için, iki eşlik cihazınızdan okumalı, pariteyi hesaplamalı, twp parite cihazlarına ve hedef bloğunuza geri yazmalısınız. Böylece 'yazma' başına 6 IO. Bu bir yazılım veya uygulama sınırlaması değildir. İyi yazma önbelleği ile kısmen hafifletirsiniz, ancak yalnızca kısmen.
Sobrique

3

Modern ve gelişmiş sistemler böyle şekiller uygulamıyor çünkü aşırı derecede karmaşık, tamamen gereksiz ve herhangi bir verimlilik benzemesine aykırı.

Diğerlerinin de belirttiği gibi, ham alanın kullanılabilir alana oranı esasen 3: 1'dir. Bu aslında üç kopyadır (iki yedek kopya). "Raid6" (maliyete göre iki kat fazla) hesaplama maliyeti ve bunun sonucunda ortaya çıkan IOPS kaybı nedeniyle, bu çok verimsizdir. Çok iyi tasarlanmış ve ayarlanmış ZFS'de, kapasite açısından eşdeğer bir çözüm, 3 yollu aynalardan bir şerit oluşturmak olacaktır.

Örnek olarak, çok verimsiz (ayrıca ZFS'nin uygulayabileceği herhangi bir mekanizma olmayan) 6 yollu raid6 / raidz2 şekillerinin (toplam 12 sürücü) bir ayna yerine, 4x 3 yollu aynalara da sahip olursunuz (ayrıca 12 sürücüler). Ve 1 sürücü değerinde IOPS yerine, 4 sürücü değerinde IOPS olacaktır. Özellikle sanal makinelerde bu çok büyük bir fark. İki şeklin toplam bant genişliği, sıralı okuma / yazma işlemlerinde çok benzer olabilir, ancak 3 yollu aynaların şeridi rastgele okuma / yazma ile kesinlikle daha duyarlı olacaktır.

Özetlemek gerekirse: raid1 + 6 genellikle depolama konusunda ciddi olan hiçbir şeyin gelişmeyi düşünmeyeceği pratik, verimsiz ve şaşırtıcı değildir.

IOPS eşitsizliğini açıklığa kavuşturmak için: raid6 / raidz2 şekillerinin bir aynasıyla, her yazmada, 12 sürücünün hepsi bir gibi davranmalıdır. Toplam şeklin, etkinliği birden çok şeklin bağımsız olarak gerçekleştirebileceği birden çok eyleme ayırma yeteneği yoktur. 3 yollu aynalardan oluşan bir şeritle, her yazma 4 aynadan yalnızca birinin ele alması gereken bir şey olabilir, bu nedenle gelen başka bir yazı, daha fazla eyleme bakmadan önce tüm omnibus şeklinin başa çıkmasını beklemek zorunda değildir. .


2

Kimse yeterince doğrudan söylemediğinden: Raid6 yazma performansı marjinal olarak daha kötü değil. Yük altına alınırsa tarifin ötesinde korkunçtur.

Sıralı yazma tamamdır ve önbellekleme, yazma birleştirme vb. Örtbas edebildiği sürece, iyi görünür. Yüksek yük altında, işler kötü görünüyor ve bu 1 + 5/6 kurulumunun neredeyse hiç kullanılmamasının ana nedenidir.


Katılıyorum, ama öncelikle söylediklerin sadece söylediklerimin süper özetlenmiş bir versiyonu olduğu için. Ve elbette kendime katılıyorum.
killermist

1

Arama süreleri

Sorun şu ki, yazma arayışı yazma çok farklı amplifikasyon davranır üretilen iş yükseltilmesi. Eşlik ile minimum yazma çıktısı amplifikasyonu, tüm şerit bir kerede yazıldığında (bu sıfıra 'tam şerit' diyelim) gerçekleşir, ancak tersine, sanal aygıtta bir aramayı takiben tüm yazma işlemi uygun olduğunda minimum yazma arama amplifikasyonu gerçekleşir. tek bir yığın. Ayrıntılara girmeden önce, ilişkilerin tablo halinde iletilmesi çok daha kolaydır:

RAID | write throughput amplification factor | write seek amplification factor
     | full-stripe (e.g.) | single-chunk     | full-stripe  | single-chunk
   0 | 1           ;  1   | 1           ;  1 | n       ; 12 | 1           ;  1
   1 | n           ; 12   | n           ; 12 | n       ; 12 | n           ; 12
   5 | n/(n - 1)   ; ~1.1 | min [3, n]  ;  3 | n       ; 12 | min [3, n]  ;  3
   6 | n/(n - 2)   ;  1.2 | min [5, n]  ;  5 | n       ; 12 | min [5, n]  ;  5
*1+0 | n₁          ;  3   | n₁          ;  3 | n       ; 12 | n₁          ;  3*
 1+5 | n/(n₅ - 1)  ;  2.4 | expr₁       ;  5 | n       ; 12 | expr₁       ;  5
*1+6 | n/(n₆ - 2)  ;  3   | expr₂       ;  8 | n       ; 12 | expr₂       ;  8*
expr₁ = 2n₁ + min [1, n₅ - 2]
expr₂ = 3n₁ + min [2, n₆ - 3]

burada n toplam sürücü sayısıdır, n₁, RAID 1 gruplarındaki sürücü sayısıdır ve n₅ ve n₆, sırasıyla RAID 5 veya RAID 6 dizilerindeki grup sayısıdır. Örnekler, sorudaki 12-sürücü örneğiyle ilgilidir (ilgili satırlar ' *bolded*'); RAID seviyeleri 1 + 0, 1 + 5, 1 + 6 için örnekler sırasıyla 4 × 3, 6 × 2, 6 × 2'dir.

Yalnızca tam şeritli yazma çıktısı amplifikasyon faktörünün artıklık oranıyla doğrudan ilişkili olduğunu unutmayın. Tek yığınlı vakalar paritesi olanlar için daha karmaşıktır. Yeni bir veri parçasıyla birlikte parite parçalarını yazmadan önce, tek bir parça yazmak için eşlik parçalarından veya diğer veri parçalarından hangisinin daha kolay olduğunu okumak gerekir. (İndüklenen okumalar bunun yerine RAID 1 için ilgili okuma / arama amplifikasyon faktörü ile çarpılmalıdır, ikisi de 1'dir; aşağıya bakınız.)

Ne yazık ki, bu ekstra yazma çıktısı amplifikasyonunu en aza indiren bir yığın boyutu seçmek, gerçekte maksimize etmenin yan etkisine sahiptir. yazma arama amplifikasyonunun . Arama süresine kıyasla önemsiz yazma süresine sahip küçük yazılar için, çok küçük bir yığın boyutuna sahip (tam şeritli olmak üzere) şeritleme yazma performansı, tüm sürücülerin aramasını gerektirdiğinden, yansıtma gibi sadece 1 ×'dir. her yazma için parçalar ve tüm bu sürücülerin harekete geçirilmesinden elde edilen verim önemsizdir. Bu, yazma zamanı yazma süresinin, dizideki sürücü sayısına bölünmesini sağladı, ancak küçük yazılar için bu zaten önemsizdi. Küçük yazıların bile tam şerit olmasını sağlayacak kadar küçük bir yığın boyutu kullanmak mantıklı olmaz. Aramanın etkilerini hissetmek için yeterince küçük yazarlar için, tek bir parçaya sığmaları en iyisidir.

RAID | large contiguous write throughput    | concurrent tiny writes throughput
     | full-stripe    | single-chunk        | full-stripe | single-chunk
   0 | n×       ; 12× | n×          ; 12×   | 1×     ; 1× | n×          ; 12×
   1 | 1×       ;  1× | 1×          ;  1×   | 1×     ; 1× | 1×          ;  1×
   5 | (n - 1)× ; 11× | max[n/3, 1]×;  4×   | 1×     ; 1× | max[n/3, 1]×;  4×
   6 | (n - 2)× ; 10× | max[n/5, 1]×;  2.4× | 1×     ; 1× | max[n/5, 1]×;  2.4×
*1+0 | n₀×      ;  4× | n₀×         ;  4×   | 1×     ; 1× | n₀×         ;  4×  *
 1+5 | (n₅ - 1)×;  5× | expr₃×      ;  2.4× | 1×     ; 1× | expr₃×      ;  2.4×
*1+6 | (n₆ - 2)×;  4× | expr₄×      ;  1.5× | 1×     ; 1× | expr₄×      ;  1.5×*
expr₃ = n/(2n₁ + min [1, n₅ - 2]) = max [n/(2n₁ + 1), n/(2n₁ + n₅ - 2)]
expr₄ = n/(3n₁ + min [2, n₆ - 3]) = max [n/(3n₁ + 2), n/(3n₁ + n₆ - 3)]

Not: Orta 2 çıkış sütunları, arama süresinin önemli olduğu yazmalardan daha büyük, ancak büyük yazmaların tam şeritli olacağı kadar küçük olan makul bir yığın boyutu göz önüne alındığında yok sayılabilir. 2. çıkış sütununun büyük yığın boyutu, yayılmış sürücülere daha çok benzemektedir. 'Minik' yazma, verimin etkisinin ihmal edilebilir olduğu yerdir.

Uygun olmayan şekilde küçük bir yığın boyutuna sahip olmak, aynı zamanda ve sadece tam şeritli durumda değil, okumalar için arama amplifikasyonunun etkisini arttırır.

RAID | read throughput amplification factor | read seek amplification factor
     | full-stripe      | single-chunk      | full-stripe (e.g.) | single-chunk
   0 | 1                | 1                 | n      to n;    12 | 1
   1 | 1                | 1                 | 1      to n;  1–12 | 1
   5 | 1                | 1                 | n - 1  to n; 11–12 | 1
   6 | 1                | 1                 | n - 2  to n; 10–12 | 1
*1+0 | 1                | 1                 | n₀     to n;  4–12 | 1           *
 1+5 | 1                | 1                 | n₅ - 1 to n;  5–12 | 1
*1+6 | 1                | 1                 | n₆ - 2 to n;  4–12 | 1           *

Not: 'to n' aynı anda gerçekleşen yalnızca bir okuma olduğunda, teorik olarak tüm sürücülerin uygun yerlere ulaşmak ve maksimum büyük bitişik okuma verimi için verileri toplu olarak okumak için harekete geçirilmesi mümkündür.

RAID | large contiguous read throughput | concurrent tiny reads throughput
     | full-stripe (e.g.)| single-chunk | full-stripe         | single-chunk
   0 | n×          ; 12× | n×     ; 12× | 1×          ;  1×   | n×     ; 12×
   1 | n×          ; 12× | n×     ; 12× | n×          ; 12×   | n×     ; 12×
   5 | n×          ; 12× | n×     ; 12× | n/(n - 1)×  ; ~1.1× | n×     ; 12×
   6 | n×          ; 12× | n×     ; 12× | n/(n - 2)×  ;  1.2× | n×     ; 12×
*1+0 | n×          ; 12× | n×     ; 12× | n₁×         ;  3×   | n×     ; 12×*
 1+5 | n×          ; 12× | n×     ; 12× | n/(n₅ - 1)× ;  2.4× | n×     ; 12×
*1+6 | n×          ; 12× | n×     ; 12× | n/(n₆ - 2)× ;  3×   | n×     ; 12×*

Not: Yine, makul bir yığın boyutu göz önüne alındığında orta 2 çıkış sütunu göz ardı edilebilir. 3. çıkış sütunu, artıklık oranına tekrar yakından bağlıdır.

Ancak, yeterince büyük bir yığın boyutu, küçük okumaların hiçbir zaman tam şerit olmadığı anlamına gelir. Bu nedenle, verimli bir uygulama ve uygun yığın boyutu göz önüne alındığında, okuma performansı, bozulmadığında aynı sürücü sayısıyla orantılı olmalıdır.

Gerçekten de, 'amplifikasyon faktörü', sadece tam şeritli çıkış amplifikasyonunun dikkate alındığı sorudaki formülden çok daha karmaşıktır. Özellikle, aramaya bağlanacak kadar küçük olan eşzamanlı yazma işlemleri için 6 × 2 RAID 1 + 6 yazma performansı 4 × 3 RAID 1 + 0'dan daha kötü olacaktır. Ve hepsi aranan küçük yazılar için, performans en iyi 4 × 3 RAID 1 + 0'ın sadece üçte biri kadar olabilir (yani mükemmel bir uygulama verilir).

Bu sorunu giderdikten sonra, 12 çekişli karşılaştırmanın kesin bir kazananı yok:

                                  | 4×3 RAID 1+0 | 6×2 RAID 1+6
   number of identical 1TB drives | 12           | 12
                 storage capacity | 4TB          | 4TB
            redundancy proportion | 2/3          | 2/3
large contiguous write throughput | 4×           | 4×
 large contiguous read throughput | 12×          | 12×
concurrent tiny writes throughput |*4×           | 1.5×
 concurrent tiny reads throughput | 12×          | 12×
safe number of random drive loses | 2            |*5
    12 - 1 large write throughput | 4×           | 4×
     12 - 1 large read throughput | 8×           |*11×
    12 - 1 tiny writes throughput |*4×           | ~1.42×
     12 - 1 tiny reads throughput | 8×           |*~9.33×
  can split-off a copy for backup | yes[1]       | yes[1]
                  2-site failover | yes          | yes
    2-copy large write throughput | 4×           | 4×
     2-copy large read throughput |*8×           | 6×
    2-copy tiny writes throughput |*4×           | ~1.28×
     2-copy tiny reads throughput |*8×           | 6×
   2-copy safe random drive loses | 1            |*2
2-copy - 1 large write throughput | 4×           | 4×
 2-copy - 1 large read throughput | 4×           |*5× or 6×[2]
2-copy - 1 tiny writes throughput |*4×           | ~1.46× or 1.2×[2]
 2-copy - 1 tiny reads throughput | 4×           |*3.6x or 6×[2]
can be divided into 3 full copies | yes          | yes
                  3-site failover | yes          | yes
    1-copy large write throughput | 4×           | 4×
     1-copy large read throughput | 4×           | 4×
    1-copy tiny writes throughput |*4×           | ~0.85×
     1-copy tiny reads throughput |*4×           | 2×
   1-copy safe random drive loses | 0            | 0
                       complexity |*simple       | more complex

Not 1: Saklanan verilerin tam bir kopyası sırasıyla bir RAID 0 dörtlü veya 4/6 bozulmuş RAID 6 dizisidir. Not 2: Sürücü arızasının 4 adet bozulmuş RAID 1 çiftinden birini devre dışı bırakma veya 2 normal çiftten birini düşürme ihtimali vardır.

Bununla birlikte, RAID 6 dizilerinin 6 sürücüsünün okuma performansını iki katına çıkarır ve gerekli okumaların RAID 1 çiftleri arasında bölünmesi nedeniyle küçük yazma verimi% 25 daha iyi (1.5 / 1.2) olmalıdır ve açıkça RAID 6 bu nedenle daha fazla yazma performansı daha okuma performansı hakkında endişe daha büyük yazma sahip veya yüksek kullanılabilirlik uygulamalarında uygun uygulamaları var, belki orada olan RAID 1 + 6 afterall için bir niş. Ama hepsi bu değil…

karmaşa

Bu hala şimdiye kadar teoride (çoğunlukla kombinatorik ), pratikte karmaşıklık RAID 1 + 6 uygulamalarının fırsatları kaçıran ve teorik sonuçları elde etmeyen eksikliklere sahip olabileceği anlamına gelecektir. RAID 6 zaten daha karmaşıktır ve yuvalama bunun üstüne biraz daha karmaşıklık katar.

Örneğin, 6 × 2 RAID 1 + 6'nın, her biri 4 × 3 RAID 1 + 0 gibi, her biri 4 × verimde 3 bitişik büyük okumayı aynı anda okuyabilen 3 bağımsız sanal okuma kafasına sahip olacağı hemen anlaşılamaz. Bir yazılım RAID kullanarak 6 RAID 1 çiftini bir RAID 6 dizisine yerleştirmek o kadar zarif olmayabilir; uygulama aptal ve thrash olabilir (bu hipotezi henüz test etmedim).

Karmaşıklık ayrıca uygulamaların ve araçların geliştirme maliyetinin artmasını da sağlar. Böyle bir iç içe yerleştirmeden faydalanabilecek uygulamalar olsa da, iyileştirmeler geliştirme maliyetlerine değmeyebilir.


Lütfen bu bilgi için kaynağınızı belirtin. Büyük veya küçük yazılarla yapılan pratik bir test, önerdiğiniz performansla aynı fikirde değildir.
JamesRyan

@JamesRyan: Bu ikinci elden bilgi değil. Teorik sonuçlar, standart RAID seviyelerinin nasıl çalıştığının temellerinden elde edilir. Teori için gereken tek şey RAID'in nasıl çalıştığını ve mantık ve matematiksel türetmeyi anlamaktır. Bu hesaplamalar başka biri tarafından yapıldıysa, elbette bunu belirtmek ve mümkünse referans için bağlantılar sağlamak istiyorum. Pratik bir RAID 1 + 6 uygulamasının yetersiz olması için birçok yol olduğunu, ancak farklı uygulamaların farklılık göstereceğini unutmayın. Bilmek istediğim şey , pratik testinizin neden uygun olmadığıdır.
James Haigh

@JamesRyan: Lütfen hangi uygulamayı kullandığınız, hangi sürücüleri kullandığınız, hangi yapılandırmalarda, hangi karşılaştırma yöntemleriyle daha fazla ayrıntı verebilir misiniz? Aynı 12 sürücüye ve yığın boyutuna sahip RAID 6 dizi 6 RAID 1 çift ve RAID 0 dizi 4 RAID 1 üçlü denediniz mi? Bir yazılım RAID miydi?
James Haigh

Geleneksel bilgeliğe meydan okuyan denenmemiş bir teori önerdiğiniz için, kurulumunuzu neden işe yaradığını gösterdiğiniz yerde ayrıntılandırmıyorsunuz? Matematiğinizin bu konudaki diğer tüm kaynaklardan ve gerçek dünya testlerinden farklı olduğu için, neden işe yaramadığının sebebi matematiklerinizin yanlış olması olduğunu tahmin ediyorum.
JamesRyan
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.