SLE Micro上でのソフトウェアRAID
- 概要
ソフトウェアRAIDに関する基本的な情報。
- 目的
RAIDレベルに関する情報を必要とし、RAIDを管理または監視する必要があります。
- 所要時間
理解に15分ほどを要します。
- 目標
mdadm
を使用してソフトウェアRAIDを管理できるようにします。- 要件
必要なRAIDを形成する、対応する数のディスク/パーティション。
1 SLE Micro上でのソフトウェアRAID #
RAID (Redundant Array of Independent Disks)の目的は、複数のハードディスクパーティションを1つの大きい仮想ハードディスクに結合し、パフォーマンスとデータのセキュリティを最適化することです。ほとんどのRAIDコントローラはSCSIプロトコルを使用します。これは、IDEプロトコルよりも効率的な方法で多数のハードディスクを処理でき、コマンドのパラレル処理に適しているからです。一方、IDEハードディスクやSATAハードディスクをサポートしているRAIDコントローラもあります。ソフトウェアRAIDは、ハードウェアRAIDコントローラ購入による追加コストなしで、RAIDシステムの利点を提供します。ただし、これにはいくらかのCPU時間を要し、高性能なコンピュータには適さないメモリ要件があります。
2 RAIDレベル #
RAIDには、それぞれが異なる目標、利点、および属性を持ついくつかのハードディスクを1つのRAIDシステムに結合するためのいくつかの戦略が含まれています。一般的にこのような手法をRAIDレベルと呼びます。
RAIDレベルは以下のカテゴリに分類できます。
- 標準レベル
これらのレベルと関連するデータフォーマットは、Storage Networking Industry Association (SNIA)によりCommon RAID Disk Drive Format (DDF)標準で標準化されています。標準のRAIDレベルは、RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5、およびRAID 6です。詳細については、2.1項 「標準のRAIDレベル」を参照してください。
- ネストしたレベル
既存のディスクアレイを新しいディスクアレイに結合します。たとえば、RAID 0+1やRAID 1+0があります。
- 非標準レベル
通常、Linux MD RAID 10などの特定のニーズに対応するために設計された独自のRAID設定です。
2.1 標準のRAIDレベル #
当初、RAIDの標準レベルは5種類のみでしたが、次のセクションで説明するように、その後に他のレベルも開発され、追加されました。
2.1.1 RAID 0 #
RAID 0では、各ファイルのブロックが複数のディスクに分散されることによってデータ操作のパフォーマンスが向上します。このデータ分散はストライピングと呼ばれます。RAIDとしての総容量は、RAIDを構成するディスク容量の合計です。RAID 0の利点は、読み込みと書き込みが同時に行われるため、どのようなファイルに対する読み込みおよび書き込み操作であっても、ドライブの数だけスループットが増加することです。
RAID 0の欠点は、データのバックアップが提供されないため、ディスクに障害が発生するとRAID全体が破壊されてデータが失われることです。
2.1.2 RAID 1 #
RAID 1は、データが別のハードディスクにそのままコピーされるので、データに十分なセキュリティが得られます。これは「ハードディスクミラーリング」と呼ばれます。このレベルはストライピングを提供しないので、読み込みや書き込みに高いスループットは得られません。一方、少なくとも1台のドライブが機能している限り、ディスクアレイは動作を継続します。
RAID 1では2台以上のディスクデバイスが必要です。
2.1.3 RAID 2 #
RAID 2では、ストライピングがビットレベルで実行されます。現在、このRAIDレベルが実際に使用されることはありません。
2.1.4 RAID 3 #
RAID 3では、専用のパリティドライブを使用してストライピングがバイトレベルで実行されます。一般的に、RAID 3が実際に使用されることはありません。
2.1.5 RAID 4 #
RAID 4は、専用のパリティドライブを使用してブロックレベルでストライピングが提供されます。データディスクがエラーになると、パリティデータで置き換え用のディスクが作成されます。ただし、書き込みアクセスでパリティディスクがボトルネックになることがあります。このレベルでは3台以上のディスクデバイスが必要です。
一般的に、RAID 4が実際に使用されることはありません。
2.1.6 RAID 5 #
RAID 5は、パフォーマンスと冗長性の面で、レベル0とレベル1を最適に調整したものです。ハードディスクスペースは、使用する合計ディスク台数から1を減算した台数分に等しくなります。データは、パリティデータも含めて、RAID 0と同様にハードディスク上に分散されます。パリティブロックはセキュリティ上の理由から設けられています。各パーティションはXORによって互いにリンクされているので、システム障害が発生すると、対応するパリティブロックによってディスクの内容が再構築されます。
RAID 5の場合、複数のハードディスクに障害が同時に発生することはありません。1つのハードディスクに障害がある場合は、可能であればそのハードディスクを交換して、データ消失の危険性をなくす必要があります。
RAID 5では3台以上のディスクデバイスが必要です。
2.1.7 RAID 6 #
RAID 6は、二重分散パリティを使用したブロックレベルのストライピングで構成されます。RAID 6は、複数のドライブに障害が同時に発生した場合でも、データにきわめて高い耐障害性を提供します。2台のハードディスクに障害が発生しても、データを失うことなく動作を継続できます。
通常モードおよび単一ディスク障害モードでは、RAID 5と比べ、RAID 6のパフォーマンスは若干低いですが、同程度です。2台のディスクに障害が発生するとRAID 6はきわめて低速になります。RAID 6設定では、書き込み操作のためにかなりのCPU時間とメモリが必要です。
RAID 6では4台以上のディスクデバイスが必要です。一般に、N+2台のディスクが必要です。ここで、Nはデータを保存するために必要なディスクの数で、2はデュアルパリティ用です。
2.2 ネストしたRAID #
2.2.1 RAID 0+1 #
RAID 0+1はRAID 01とも呼ばれ、ストライピングされたディスクをミラーリングします。そのため、データの複製と共有が同時に行われます。最小限必要なディスクは4台です。
2.2.2 RAID 1+0 #
RAID 1+0はRAID 10とも呼ばれ、ストライピングとミラーリングを組み合わせたものです。データを複数のディスクに分散し、各ディスクを別のディスクにミラーリングします。
3 ソフトウェアRAIDの管理 #
RAIDを設定済みであれば追加の管理タスクを実行できます。次に例を示します。
3.1項 「ソフトウェアRAIDの命名」の説明に従ってデフォルトのRAID名を変更します。
3.3項 「ソフトウェアRAIDの監視」の説明に従ってRAIDを監視します。
3.2項 「AArch64のRAID 5のストライプサイズの設定」の説明に従って、AArch64アーキテクチャのストライプサイズを設定します。
3.1 ソフトウェアRAIDの命名 #
3.1.1 デフォルト名 #
デフォルトでは、ソフトウェアRAIDデバイスにはmdN
(N
は数字)のパターンによる名前が割り当てられます。たとえば、/dev/md127
としてアクセスでき、/proc/mdstat
および/proc/partitions
ではmd127
として一覧にされます。
3.1.2 デフォルト以外の名前の指定 #
デフォルト名を使用した作業は扱いにくいことがあるので、この命名を回避する方法が2つあります。
- デバイスへの名前付きリンクを指定する
オプションで、YaSTでRAIDデバイスを作成する際、または
mdadm --create '/dev/md/
NAME'を使用してコマンドラインで、RAIDデバイスの名前を指定できます。デバイス名はmdN
のままで、リンク/dev/md/NAME
が作成されます。>
ls -og /dev/md total 0 lrwxrwxrwx 1 8 Dec 9 15:11 myRAID -> ../md127デバイスは
/proc
には引き続きmd127
としてリストされます。- 名前付きデバイスを指定する
実際のセットアップでデバイスへの名前付きリンクが不十分な場合、次のコマンドを実行して
/etc/mdadm.conf
に行CREATE names=yes
を追加します。>
echo "CREATE names=yes" | sudo tee -a /etc/mdadm.confこれにより、
myRAID
のような名前が「実際の」デバイス名として使用されるようになります。このデバイスに/dev/myRAID
でアクセスできるだけでなく、/proc
にmyRAID
としてこのデバイスが表示されます。これは、設定ファイルの変更後に設定したRAIDにのみ適用される点に注意してください。アクティブなRAIDでは、停止して再アセンブルするまで引き続きmdN
形式の名前が使用されます。警告: 非互換のツール一部のツールは、名前付きRAIDデバイスをサポートしていません。RAIDデバイスの名前が
mdN
形式であることを想定しているツールでは、前記のようなRAIDデバイスを識別できません。
3.2 AArch64のRAID 5のストライプサイズの設定 #
デフォルトでは、ストライプサイズは4KBに設定されています。デフォルトのストライプサイズを変更する必要がある場合、たとえば、AArch64の一般的なページサイズの64KBに合わせるには、CLIを使用してストライプサイズを手動で設定できます。
>
sudo
echo 16384 > /sys/block/md1/md/stripe_size
上記のコマンドを実行すると、ストライプサイズは16KBに設定されます。4096や8192などの値も設定できますが、2のべき乗とする必要があります。
3.3 ソフトウェアRAIDの監視 #
monitor
モードでデーモンとしてmdadm
を実行し、ソフトウェアRAIDを監視することができます。monitor
モードでは、mdadm
はアレイのディスク障害を定期的に確認します。障害が発生すると、mdadm
から管理者に電子メールが送信されます。チェックの時間間隔を定義するには、次のコマンドを実行します。
mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2
先に示したコマンドは1800秒間隔で/dev/md2
アレイの監視をオンにします。障害が発生すると、root@localhost
に電子メールが送信されます。
デフォルトでは、RAIDチェックが有効化されています。各チェックの間隔が十分でなく、警告が表示される場合があります。このように、delay
オプションでより高い値を設定することにより、間隔を増やすことができます。
4 法的事項 #
Copyright © 2006–2025 SUSE LLC and contributors. All rights reserved.
この文書は、GNUフリー文書ライセンスのバージョン1.2または(オプションとして)バージョン1.3の条項に従って、複製、頒布、および/または改変が許可されています。ただし、この著作権表示およびライセンスは変更せずに記載すること。ライセンスバージョン1.2のコピーは、「GNUフリー文書ライセンス」セクションに含まれています。
SUSEの商標については、https://www.suse.com/company/legal/を参照してください。その他の第三者のすべての商標は、各社の所有に帰属します。商標記号(®、™など)は、SUSEおよび関連会社の商標を示します。アスタリスク(*)は、第三者の商標を示します。
本書のすべての情報は、細心の注意を払って編集されています。しかし、このことは正確性を完全に保証するものではありません。SUSE LLC、その関係者、著者、翻訳者のいずれも誤りまたはその結果に対して一切責任を負いかねます。