mdadmでは、RAID10レベルで、RAID 0(ストライピング)とRAID 1(ミラーリング)の両方の機能を組み合わせた単一の複雑なソフトウェアRAIDが作成されます。すべてのデータブロックの複数のコピーが、ストライピングの規則に従って、複数のドライブ上に配置されます。コンポーネントデバイスは、すべて同じサイズにする必要があります。
コンプレックスRAID ¯、ネストしたRAID 10 (1+0)と目的は同じですが、次の点で異なります。
表 10-5 コンプレックスRAID 10対ネストしたRAID 10
mdadm RAID10アレイの設定時に、データブロックごとに必要なレプリカ数を指定する必要があります。デフォルトのレプリカ数は2ですが、2からアレイ内のデバイス数まで可能です。
少なくとも、指定のレプリカ数と同数のコンポーネントデバイスを使用する必要があります。ただし、RAID10アレイのコンポーネントデバイス数は各データブロックのレプリカ数の倍数である必要はありません。有効なストレージサイズは、デバイス数をレプリカ数で割った数です。
たとえば、5個のコンポーネントデバイスで作成したアレイに2つのレプリカを指定した場合は、各ブロックのコピーが2つの異なるデバイスに保存されます。したがって、すべてのデータの1コピーの有効なストレージサイズは、5/2(つまり、コンポーネントデバイスのサイズの2.5倍)となります。
nearレイアウトでは、異なるコンポーネントデバイス上で、データブロックのコピーが互いに接近してストライプされます。つまり、あるデータブロックの複数のコピーが異なるデバイス内で同様にオフセットされます。nearは、RAID10のデフォルトレイアウトです。たとえば、奇数個のコンポーネントデバイスとデータの2コピーを使用する場合は、一部のコピーが、1チャンク分、デバイス内を前進します。
mdadm RAID 10のnearレイアウトは、半数のドライブ上のRAID 0と同様の読み書きパフォーマンスを提供します。
偶数個のディスクと2つのレプリカを使用したnearレイアウト
sda1 sdb1 sdc1 sde1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9
奇数個のディスクと2つのレプリカを使用したnearレイアウト
sda1 sdb1 sdc1 sde1 sdf1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12
farレイアウトは、すべてのドライブの前半部分にデータをストライプし、次に、2つ目のデータコピーをすべてのドライブの後半部分にストライプして、ブロックのすべてのコピーが異なるドライブに配置されるようにします。値の2つ目のセットは、コンポーネントドライブの中ほどから開始します。
farレイアウトでは、mdadm RAID10の読み込みパフォーマンスは、すべてのドライブを使用したRAID 0と同様ですが、書き込みパフォーマンスは、ドライブヘッドのシーク回数が増えるので、RAID 0よりかなり遅くなります。このレイアウトは、 読み込み専用ファイルサーバなどの、読み込み集約型操作に最適です。
raid10の書き込み速度は、付近のレイアウトを使用しているraid1やraid0などの他のミラーリングRAIDの種類と同等です。これは、ファイルシステムのエレベータが生の書き込みよりも効率のよい書き込みのスケジュールを行うためです。Raid10をfarレイアウトで使用する方法は、ミラーリングによる書き込みアプリケーションに適しています。
偶数個のディスクと2つのレプリカを使用したfarレイアウト
sda1 sdb1 sdc1 sde1 0 1 2 3 3 5 6 7 . . . 3 1 2 3 7 4 5 6
奇数個のディスクと2つのレプリカを使用したfarレイアウト
sda1 sdb1 sdc1 sde1 sdf1 0 1 2 3 4 5 6 7 8 9 . . . 4 0 1 2 3 9 5 6 7 8
mdadmのRAID10オプションでは、ネストなしのRAID 10デバイスが作成されます。RAID10-については、「セクション 10.3, mdadmによるコンプレックスRAID 10の作成」を参照してください。
このセクションのプロシージャでは、次のテーブルに示すデバイス名を使用します。それらのデバイス名は、必ず、ご使用のデバイスの名前で変更してください。
表 10-6 mdadm RAID10オプションでRAID 10を作成するシナリオ
|
rawデバイス |
RAID10(near/farストライピングスキーム) |
|---|---|
|
/dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 |
/dev/md3 |
YaSTで、RAIDで使用したいデバイス(/dev/sdf1、/dev/sdg1、/dev/sdh1、/dev/sdi1など)に0xFD Linux RAIDパーティションを作成します。
端末コンソールを開いて、rootユーザまたは同等の権限で、ログインします。
RAID 10 コマンドを作成します。コマンドプロンプトで、次のように入力します(すべて同じ行)。
mdadm --create /dev/md3 --run --level=10 --chunk=4 --raid-devices=4 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
RAID 10デバイス /dev/md3上にReiserファイルシステムを作成します。コマンドプロンプトで、次のように入力します
mkfs.reiserfs /dev/md3
/etc/mdadm.confファイルを編集して、コンポーネントデバイスとRAIDデバイス/dev/md3のエントリを追加します。次に例を示します。
DEVICE /dev/md3
/etc/fstabファイルを編集して、RAID 10デバイス /dev/md3のエントリを追加します。
サーバを再起動します。
RAID 10デバイスが/raid10にマウントされます。