目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SLE Micro上でのソフトウェアRAID

SLE Micro上でのソフトウェアRAID

発行日: 06/03/2025
概要

ソフトウェア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の命名

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でアクセスできるだけでなく、/procmyRAIDとしてこのデバイスが表示されます。これは、設定ファイルの変更後に設定した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チェックが有効化されています

デフォルトでは、RAIDチェックが有効化されています。各チェックの間隔が十分でなく、警告が表示される場合があります。このように、delayオプションでより高い値を設定することにより、間隔を増やすことができます。