MD'nin baskını açıklar10, f2


14

Çeşitli RAID'lerin çoğunun nasıl çalıştığını biliyorum. Ama linux yazılım baskını araştırırken önerilen raid10, f2 modunda tökezledim . 2 veya 3 diskte nasıl çalıştığını gerçekten anlamıyorum. Birisi bana açıklayabilir mi? ya da beni açıklayan gerçekten iyi bir makaleye yönlendiriyor musun?

Yanıtlar:


17

aslında bence Wikipedia'nın bunu gerçek dokümanlardan daha iyi açıkladığını . İşte makaledeki metin.

Linux çekirdeği yazılımı RAID sürücüsü ("çoklu aygıt" için md olarak adlandırılır) klasik bir RAID 1 + 0 dizisi oluşturmak için kullanılabilir, ancak aynı zamanda (2.6.9'dan beri) bazı ilginç uzantılarla [4] tek bir seviye olarak kullanılabilir [ 5]. Her parçanın bir k-yollu şerit dizisinde n kez tekrarlandığı standart "yakın" düzen, standart RAID-10 düzenlemesine eşdeğerdir, ancak bu n bölü k'yi gerektirmez. Örneğin, 2, 3 ve 4 sürücülerdeki bir n2 düzeni şöyle görünür:

2 drives         3 drives            4 drives
--------         ----------        --------------
A1  A1           A1  A1  A2        A1  A1  A2  A2
A2  A2           A2  A3  A3        A3  A3  A4  A4
A3  A3           A4  A4  A5        A5  A5  A6  A6
A4  A4           A5  A6  A6        A7  A7  A8  A8
..  ..           ..  ..  ..        ..  ..  ..  ..

4 sürücülü örnek standart bir RAID-1 + 0 dizisiyle özdeşken, 3 sürücülü örnek RAID-1E'nin yazılım uygulamasıdır. 2-sürücü örneği eşdeğer RAID 1'dir. Sürücü ayrıca tüm sürücülerin f bölümlerine ayrıldığı "uzak" bir düzeni de destekler. Tüm parçalar her bölümde tekrarlanır, ancak bir cihaz tarafından dengelenir. Örneğin, 2 ve 3 sürücü dizilerindeki f2 düzenleri şöyle görünür:

2 drives             3 drives
--------             --------------
A1  A2               A1   A2   A3
A3  A4               A4   A5   A6
A5  A6               A7   A8   A9
..  ..               ..   ..   ..
A2  A1               A3   A1   A2
A4  A3               A6   A4   A5
A6  A5               A9   A7   A8
..  ..               ..   ..   ..

Bu, yansıtılmış bir dizinin şerit performansı için tasarlanmıştır; RAID-0'da olduğu gibi sıralı okumalar çizgili olabilir, rastgele okumalar biraz daha hızlıdır (disklerin daha hızlı dış sektörleri ve daha küçük ortalama arama süreleri kullanıldığından belki% 10-20) ve sıralı ve rasgele yazma işlemleri eşit performans hakkındadır aynalı diğer baskınlara. Düzen, okumaların daha sık yazıldığı sistemler için iyi performans gösterir, bu da birçok sistemde çok yaygın bir durumdur. Her sürücünün ilk 1 / f'si standart bir RAID-0 dizisidir. Böylece, yalnızca 2 sürücünün yansıtılmış setinde şeritleme performansı elde edebilirsiniz. Yakın ve uzak seçeneklerin her ikisi de aynı anda kullanılabilir. Her bölümdeki parçalar n cihaz (lar) tarafından kaydırılır. Örneğin n2 f2 düzeni, her sektörün 2 × 2 = 4 kopyasını depolar, bu nedenle en az 4 sürücü gerektirir:

A1  A1  A2  A2        A1  A1  A2  A2  A3
A3  A3  A4  A4        A3  A4  A4  A5  A5
A5  A5  A6  A6        A6  A6  A7  A7  A8
A7  A7  A8  A8        A8  A9  A9  A10 A10
..  ..  ..  ..        ..  ..  ..  ..  ..
A2  A2  A1  A1        A2  A3  A1  A1  A2
A4  A4  A3  A3        A5  A5  A3  A4  A4
A6  A6  A5  A5        A7  A8  A6  A6  A7
A8  A8  A7  A7        A10 A10 A8  A9  A9
..  ..  ..  ..        ..  ..  ..  ..  ..

Linux 2.6.18'den itibaren sürücü, her şeridin defalarca tekrarlandığı bir ofset düzenini de destekler. Örneğin, 2 ve 3 sürücülü dizilerdeki o2 düzenleri şu şekilde düzenlenir:

2 drives       3 drives
--------       --------
A1  A2         A1  A2  A3
A2  A1         A3  A1  A2
A3  A4         A4  A5  A6
A4  A3         A6  A4  A5
A5  A6         A7  A8  A9
A6  A5         A9  A7  A8
..  ..         ..  ..  ..

Not: k sürücü sayısıdır, n #, f # ve o # mdadm --layout seçeneğindeki parametrelerdir. Linux ayrıca md sürücüsünü (0, 1, 4, 5, 6) kullanarak başka standart RAID yapılandırmaları da oluşturabilir.


6

Ne okuduğumdan f2 RAID10 dizisi her bloğun en az 2 kopya tutar ve birbirlerinden uzakta saklanırlar.

İşte man sayfalarından ilgili bölümler.

mdadm (8)

-p, --layout = Bu seçenek raid5 ve raid10 dizileri için veri düzeninin ince ayrıntılarını yapılandırır
...
Son olarak, RAID10 için düzen seçenekleri 'n', 'o' veya 'p' 'nin ardından küçük bir numara. Varsayılan 'n2'dir.

n 'yakın' kopyaları gösterir. Bir veri bloğunun birden çok kopyası, farklı cihazlardaki benzer ofsetlerde bulunur.

o 'ofset' kopyalarını işaret eder. Bir şerit içinde parçaların çoğaltılmasından ziyade, tüm şeritler çoğaltılır, ancak bir cihaz tarafından döndürülür, böylece yinelenen bloklar farklı cihazlarda bulunur. Bu nedenle, bir bloğun sonraki kopyaları bir sonraki sürücüde bulunur ve bir parça daha aşağıdadır.

f ' uzak ' kopyaları işaret eder (birden fazla kopyanın çok farklı ofsetleri vardır). 'Yakın' ve 'uzak' hakkında daha fazla ayrıntı için bkz. Md (4).

md (4)

RAID10, RAID1 ve RAID0 ve bazen RAID1 + 0 olarak bilinen bir kombinasyon sağlar. Her veri tabanı kilidi birkaç kez çoğaltılır ve sonuçta ortaya çıkan veri tabanı koleksiyonu birden fazla sürücüye dağıtılır. Bir RAID10 dizisini yapılandırırken, gerekli olan her veri bloğunun kopya sayısını (normalde 2 olur) ve kopyaların 'yakın', 'ofset' veya 'uzak' olması gerektiğini belirtmek gerekir. ('Ofset' düzeninin yalnızca 2.6.18'den itibaren mevcut olduğunu unutmayın).

' Yakın ' kopyalar seçildiğinde, belirli bir parçanın birden çok kopyası ardışık olarak dizinin çizgileri boyunca düzenlenir, bu nedenle bir veri bloğunun iki kopyası iki bitişik cihazda aynı ofsette olur.

' Uzak ' kopyalar seçildiğinde, belirli bir yığının çoklu kopyaları birbirinden oldukça uzakta düzenlenir. Tüm veri bloklarının ilk kopyası RAID0 tarzında tüm sürücülerin ilk kısmında şeritlenecek ve daha sonra tüm blokların bir sonraki kopyası tüm sürücülerin daha sonraki bir bölümünde şeritlenecek ve her zaman belirli bir bloğun tüm kopyalarının farklı sürücülerde.

' Uzak ' düzenleme, RAID0 dizisininkine eşit, ancak düşük yazma performansı pahasına sıralı okuma performansı verebilir.

'Ofset' kopyaları seçildiğinde, belirli bir yığının çoklu kopyaları ardışık sürücülere ve ardışık ofsetlere yerleştirilir. Etkili olarak her şerit çoğaltılır ve kopyalar bir aygıt tarafından ofsetlenir. Bu, uygun büyüklükte bir yığın boyutu kullanılıyorsa, ancak yazma için çok fazla arama yapmadan 'uzak'a benzer okuma özellikleri vermelidir.

Bir RAID10 dizisindeki cihaz sayısının, her veri bloğunun çoğaltma sayısının katları olması gerekmediğine dikkat edilmelidir, bunların en az çoğaltma kadar cihaz olması gerekir.

Örneğin, 5 cihaz ve 2 replika ile bir dizi oluşturulursa, cihazların 2.5'ine denk alan kullanılabilir ve her blok iki farklı cihazda saklanır.


ofset gibi geliyor ...
xenoterracide

Bence Wikipedia'nın daha görsel açıklaması daha net ... bu yüzden buraya gönderdim.
xenoterracide

2

Bu ilginç ve iyi açıklanmış. Bununla birlikte, düz RAID1, en azından Linux yazılımı RAID'de, çok iyi performansla birden fazla okuyucuyu paralel olarak sürdürme özelliğine de sahiptir:

Veriler herhangi bir cihazdan okunur. Sürücü, performansı en üst düzeye çıkarmak için okuma isteklerini tüm aygıtlara dağıtmaya çalışır.
[...] Teorik olarak, bir N-disk RAID1'e sahip olmak N sıralı dizilerin tüm disklerden okunmasına izin verecektir. (adam 4 md, RAID1 bölümü)

Yakın düzeninde RAID10'un bu davranış için daha uygun olduğu görülüyor (RAID0 gibi tek iş parçacıklı G / Ç değil, çok iş parçacıklı G / Ç'yi hızlandırma). 4 diskli n2f2, 4 diskli RAID1'e benzer.

4 diskli n2 düzeni her ikisini de yapacaktır: tek bir iş parçacığı için okuma performansını ikiye katlar ve iki iş parçacığı için okuma performansını dört katına çıkarır (Linux md RAID10 zamanlayıcı iyi uygulanmışsa, bir iş parçacığı bir çiftte diğeri diğer çift).

Hepsi ihtiyacınız olana bağlıdır! Ben henüz kıyaslama yapmadım.

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.