3 ソフトウェアRAIDの操作
この章では、ストレージの冗長性のためのソフトウェアRAIDの使用に特に焦点を当てて、RAID機能について説明します。
ソフトウェアRAIDについて
Redundant Array of Independent Disks (RAID)機能を使用すると、データを複数のドライブに分散して、容量を増やし、データの冗長性を実装し、パフォーマンスを向上させることができます。通常、RAIDは、RAIDボリュームをLUNとしてエクスポートするインテリジェント・ディスク・ストレージのハードウェア、またはオペレーティング・システムによるソフトウェアのいずれかで実装されます。Oracle Linuxカーネルは、マルチディスク(MD)ドライバを使用し、2つ以上の物理ストレージ・デバイスから仮想デバイスを作成することでソフトウェアRAIDをサポートします。MDを使用して、ディスク・ドライブをRAIDデバイスに編成したり、様々なRAIDレベルを実装できます。
Oracle Linuxでは、次のソフトウェアRAIDレベルが一般的に使用されます。
- リニアRAID (スパンニング)
-
複数のドライブをより大きい仮想ドライブに一体化します。データ冗長性またはパフォーマンス上のメリットはありません。1つのドライブの障害で配列が使用できなくなるため、リジリエンスは低下します。
- RAID-0 (ストライプ化)
-
パフォーマンスは向上しますが、データ冗長性は提供されません。データはユニット(ストライプ)に分解され、すべてのドライブに配列で書き込まれます。1つのドライブの障害で配列が使用できなくなるため、リジリエンスは低下します。
- RAID-1 (ミラーリング)
-
各ドライブに同一のデータを配列で書き込み、データ冗長性およびリジリエンスを提供します。1つのドライブに障害が発生した場合も、ミラーによりI/Oリクエストに対応できます。ミラーリングは、同じ情報がすべてのディスクに配列で書き込まれるため、高コストなソリューションです。
- RAID-5 (分散パリティ付きストライプ化)
-
ストライプ化を使用することで読取りパフォーマンスを向上し、データ冗長性を提供します。パリティはすべてのドライブ全体に配列で分散されますが、完全なミラーリングほど多くの領域は使用しません。パリティ情報を計算し、データに加えてこの情報を書き込む必要があるため、書込みパフォーマンスはRAID-0と比較してある程度低下します。配列のディスクの1つに障害が発生した場合は、パリティ情報を使用してデータが再構築され、I/Oリクエストに対応します。このモードでは、障害が発生したドライブを交換してデータおよびパリティ情報を再移入するまで、読取りパフォーマンスおよびリジリエンスは低下します。コスト面では、RAID-5はRAID-0とRAID-1の中間です。
- RAID-6 (ダブル分散パリティ付きストライプ化)
-
RAID-5の改良型で、よりリジリエンスがあり、配列内の2つのドライブの損失から回復できます。RAID-6は、データ冗長性とリジリエンスが重要で、パフォーマンスはそれほど重要視しない場合に使用します。コスト面では、RAID-6はRAID-5とRAID-1の中間です。
- RAID 0+1 (ストライプ化したディスクのミラーリング)
-
パフォーマンスの向上とデータ冗長性の両方を提供するように、ストライプ化した配列をミラーリングしてRAID-0とRAID-1を組み合せたものです。1つのディスクに障害が発生すると、そのディスクを交換してデータを再移入するまで、ミラーの1つは使用不可になります。1つのミラーのみが使用可能な間は、リジリエンスが低下します。多くの場合、コスト面ではRAID 0+1はRAID-1と同等か若干高くなります。
- RAID 1+0 (ミラーリングしたディスクのストライプ化、またはRAID-10)
-
パフォーマンスの向上とデータ冗長性の両方を提供するように、ミラーリングした配列をストライプ化してRAID-0とRAID-1を組み合せたものです。1つのディスクに障害が発生すると、そのディスクを交換してデータを再移入するまで、1つのミラーは部分的に使用不可になります。1つのミラーのみがデータの完全なコピーを保持している間は、リジリエンスが低下します。多くの場合、コスト面ではRAID 1+0はRAID-1と同等か若干高くなります。
ソフトウェアRAIDデバイスの作成
ソフトウェアRAIDデバイスを作成するには:
-
mdadmコマンドを使用して、MD RAIDデバイスを作成します。
sudo mdadm --create md_device --level=RAID_level [options] --raid-devices=N device ...
たとえば、
/dev/sdf
および/dev/sdg
からRAID-1デバイス/dev/md0
を作成するには、次のようにします。sudo mdadm --create /dev/md0 --level=1 -raid-devices=2 /dev/sd[fg]
/dev/sdb
、/dev/sdc
およびdev/sdd
からRAID-5デバイス/dev/md1
を作成するには、次のようにします。sudo mdadm --create /dev/md1 --level=5 -raid-devices=3 /dev/sd[bcd]
拡張、再構成または障害が発生したデバイスの交換に使用可能な予備デバイスを組み込む場合は、--spare-devicesオプションを使用して、その数を指定します。たとえば:
sudo mdadm --create /dev/md1 --level=5 -raid-devices=3 --spare-devices=1 /dev/sd[bcde]
ノート:
RAIDおよび予備デバイスの数は、指定するデバイスの数と等しい必要があります。
-
RAID構成を
/etc/mdadm.conf
に追加します。# mdadm --examine --scan >> /etc/mdadm.conf
ノート:
このステップはオプションです。これは、ブート時にmdadmが配列を組み立てるのに役立ちます。
たとえば、
/etc/mdadm.conf
の次のエントリは、デバイスおよび/dev/md0
および/dev/md1
に相当する配列を定義します。DEVICE /dev/sd[c-g] ARRAY /dev/md0 devices=/dev/sdf,/dev/sdg ARRAY /dev/md1 spares=1 devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde
その他の例は、サンプル構成ファイル
/usr/share/doc/mdadm-3.2.1/mdadm.conf-example
を参照してください。
MD RAIDデバイスを作成したら、物理ストレージ・デバイスと同じように構成して使用できます。たとえば、LVM物理ボリューム、ファイル・システム、スワップ・パーティション、自動ストレージ管理(ASM)ディスクまたはRAWデバイスとして構成できます。
MD RAIDデバイスのステータスをチェックするには、/proc/mdstat
を表示します。たとえば:
cat /proc/mdstat
Personalities : [raid1] mdo : active raid1 sdg[1] sdf[0]
MD RAIDデバイスに関する要約情報および詳細情報を表示するには、mdadmを--queryおよび--detailオプションを付けて使用できます。
詳細は、md(4)
、mdadm(8)
およびmdadm.conf(5)
の各マニュアル・ページを参照してください。