目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Serverマニュアル / ストレージ管理ガイド / ソフトウェアRAID / ソフトウェアRAIDの設定
適用項目 SUSE Linux Enterprise Server 15 SP6

7 ソフトウェアRAIDの設定

RAID (Redundant Array of Independent Disks)の目的は、複数のハードディスクパーティションを1つの大きい仮想ハードディスクに結合し、パフォーマンスとデータのセキュリティを最適化することです。ほとんどのRAIDコントローラはSCSIプロトコルを使用します。これは、IDEプロトコルよりも効率的な方法で多数のハードディスクのアドレスを指定でき、コマンドのパラレル処理に適しているからです。一方、IDEハードディスクやSATAハードディスクをサポートしているRAIDコントローラもあります。ソフトウェアRAIDは、ハードウェアRAIDコントローラ購入による追加コストなしで、RAIDシステムの利点を提供します。ただし、これにはいくらかのCPU時間を要し、高性能なコンピュータには適さないメモリ要件があります。

重要
重要: クラスタファイルシステムのRAID

クラスタファイルシステムのソフトウェアRAIDはクラスタマルチデバイス(Cluster MD)を使用して設定する必要があります。を参照してください。 Administration Guide for SUSE Linux Enterprise High Availability

SUSE Linux Enterpriseには、いくつかのハードディスクを1つのソフトウェアRAIDシステムに統合するオプションがあります。RAIDには、それぞれが異なる目標、利点、および属性をもついくつかのハードディスクを1つのRAIDシステムに結合するためのいくつかの戦略が含まれています。これらは通常、RAIDレベルと呼ばれます。

7.1 RAIDレベルの理解

本項では、通常のRAIDレベル(0、1、2、3、4、5)とネストしたRAIDレベルについて説明します。

7.1.1 RAID 0

このレベルでは、各ファイルのブロックが複数のディスクに分散されるので、データアクセスのパフォーマンスが向上します。このレベルはデータのバックアップを提供しないため、実際にはRAIDではありませんが、この種のシステムでは「RAID 0」という名前が一般的です。RAID 0では、2つ以上のハードディスクが互いにプールします。高いパフォーマンスが得られます。ただし、1つのハードディスクに障害が発生しただけで、RAIDシステムが破壊され、データは失われます。

7.1.2 RAID 1

このレベルは、データが別のハードディスク1.1にコピーされるため、データに十分なセキュリティを提供します。これは「ハードディスクミラーリング」と呼ばれます。ディスクが破壊された場合は、ディスクの内容のコピーをミラー先のもう1つのディスクで利用できます。したがって、1つのディスク以外のすべてのディスクが損なわれても、データを保全できます。ただし、損傷が検出されない場合は、正しいディスクに損傷したデータがミラーリングされる可能性があり、その場合はデータが壊れます。単一ディスクアクセスの使用時と比較すると、コピープロセスで書き込みのパフォーマンスが若干低下しますが(10~ 20%遅くなる)、読み取りアクセスは、通常の物理ハードディスクのどれと比べても、著しく高速です。これは、データが複製されているので、それらを並行してスキャンできるためです。RAID 1では、一般に、読み取りトランザクションの速度が単一ディスクのほぼ2倍、書き込みトランザクションの速度が単一ディスクと同じです。

7.1.3 RAID 2およびRAID 3

これらは、一般的なRAID実装ではありません。レベル2では、データは、ブロックレベルではなく、ビットレベルでストライプ化されます。レベル3は、専用パリティディスクによってバイトレベルのストライプ化を提供しますが、複数の要求を同時にサービスすることはできません。両レベルとも、まれにしか使用されません。

7.1.4 RAID 4

レベル 4は、専用パリティディスクと結合されたレベル 0と同様に、ブロックレベルのストライピングを提供します。データディスクがエラーになると、パリティデータで置き換え用のディスクが作成されます。ただし、書き込みアクセスでパリティディスクがボトルネックになることがあります。にもかかわらず、レベル4は時々使用されます。

7.1.5 RAID 5

RAIDD 5は、レベル0とレベル1の間をパフォーマンスおよび冗長性の面で調整して、最適化したものです。ハードディスクスペースは、使用する合計ディスク台数から1を減算した台数分に等しくなります。データは、RAID 0の場合と同様に、ハードディスク間に配布されます。パーティションの1つで作成される「パリティブロック」は、セキュリティ上の理由で存在します。各パーティションはXORによって互いにリンクされているので、システム障害が発生すると、対応するパリティブロックによってディスクの内容が再構築されます。RAIDD 5の場合、同時に複数のハードディスクが障害を起こすことはありません。1つのハードディスクに障害がある場合は、可能であればそのハードディスクを交換して、データ消失の危険性をなくす必要があります。

7.1.6 RAID 6

RAID 6は、RAID 5の拡張であり、2つ目の独立した分散パリティスキーム(デュアルパリティ)の使用により、耐障害性をさらに追加します。データ回復プロセスで、2つのハードディスクに障害が発生しても、システムは稼動し続け、データが失われることはありません。

RAID 6は、複数の同時ドライブエラーに耐えることで、非常に高いデータ耐障害性を提供します。RAID 6は、データを失うことなく、2つのデバイスの喪失を処理します。したがって、N個のドライブのデータを保存するには、N+2個のドライブが必要です。その結果、最低限4個のデバイスが必要となります。

通常モードおよび単一ディスク障害モードでは、RAID 5と比べ、RAID 6のパフォーマンスは若干低いですが、同程度です。2台のディスクに障害が発生するとRAID 6はきわめて低速になります。RAID 6設定では、書き込み操作のためにかなりのCPU時間とメモリが必要です。

表 7.1: RAID 5とRAID 6の比較

機能

RAID 5

RAID 6

デバイス数

N+1(最小限3個)

N+2(最小限4個)

パリティ

分散型、シングル

分散型、デュアル

パフォーマンス

書き込みおよび再構築に中程度の影響

シーケンシャルな書き込みでは、RAID 5より影響大

耐障害性

1つのコンポーネントデバイスの障害

2つのコンポーネントデバイスの障害

7.1.7 ネストしたコンプレックスRAIDレベル

他にもRAIDレベルが開発されています(RAIDn、RAID 10、RAID 0+1、RAID 30、RAID 50など)。これらの一部は、ハードウェアベンダーによって作成された専有インプリメンテーションです。RAID 10設定の作成例については、第9章 「ソフトウェアRAID 10デバイスの作成を参照してください。

7.2 YaSTによるソフトウェアRAID設定

YaSTソフトRAID設定には、YaST Expert Partitionerからアクセスできます。このパーティション設定ツールを使用すると、既存のパーティションを編集および削除したり、ソフトウェアRAIDで使用する新規パーティションを作成したりすることもできます。これらの方法は、RAIDレベル0、1、5、および6の設定に適用されます。RAID 10の設定については、第9章 「ソフトウェアRAID 10デバイスの作成で説明されています。

  1. YaSTを起動してパーティショナを開きます。

  2. 必要に応じて、RAID設定で使用するパーティションを作成します。パーティションをフォーマットしたり、パーティションタイプを0xFD Linux RAIDに設定したりしないでください。既存のパーティションを使用する場合、パーティションタイプを変更する必要はありません。YaSTによって自動的に変更されます。詳細については、11.1項 「熟練者向けパーティション設定の使用」を参照してください。

    ハードディスクのどれかに障害が発生した場合にデータを失うリスクを減らすため(RAID 1、RAID 5)、およびRAID 0のパフォーマンスを最適化するため、異なるハードディスクに保存されているパーティションを使用することを強くお勧めします。

    RAID 0の場合は、少なくとも2つのパーティションが必要です。RAID 1に必要なパーティションは2つだけですが、RAID 5の場合は少なくとも3つのパーティションが必要です。RAID 6セットアップでは、少なくとも4つのパーティションが必要です。各パーティションのサイズを同じにすることをお勧めします。パーティションサイズが異なると、各セグメントが提供するサイズは最小のパーティションサイズにとどまるからです。

  3. 左のパネルで、RAIDを選択します。

    既存のRAID設定のリストが右のパネルに表示されます。

  4. [RAID]ページの左下で、RAIDの追加をクリックします。

  5. RAID種類を選択し、追加をクリックして、使用可能なデバイスダイアログから適切な数のパーティションを追加します。

    オプションで、RAID名でRAIDに名前を割り当てることができます。この名前は、/dev/md/NAMEとして利用可能になります。詳細については、7.2.1項 「RAIDの名前」を参照してください。

    RAID 5設定の例
    図 7.1: RAID 5設定の例

    次へで続行します。

  6. チャンクサイズを選択し、該当する場合はパリティアルゴリズムを選択します。最適なチャンクサイズは、データのタイプとRAIDのタイプによって変わります。詳細については、https://raid.wiki.kernel.org/index.php/RAID_setup#Chunk_sizesを参照してください。パリティアルゴリズムの詳細については、--layoutオプションの検索時にman 8 mdadmを使用して参照できます。わからない場合は、デフォルト値を使用してください。

  7. 役割でボリュームの役割を選択します。ここで選択した内容は、次のダイアログのデフォルト値にのみ影響します。値は次の手順で変更可能です。わからない場合は、RAWボリューム(未フォーマット)を選択します。

  8. フォーマットオプションで、パーティションをフォーマットするを選択し、ファイルシステムを選択します。オプションメニューの内容は、ファイルシステムによって異なります。通常は、デフォルト値を変更する必要はありません。

    マウントのオプションの下で、パーティションをマウントするを選択してから、マウントポイントを選択します。Fstabオプションをクリックして、このボリュームの特別なマウントオプションを追加します。

  9. 完了をクリックします。

  10. 次へをクリックし、変更が一覧されることを確認してから、完了をクリックします。

重要
重要: ディスク上のRAID

パーティショナはパーティションの代わりにディスクの上にRAIDを作成することを可能にしますが、いくつかの理由のため、このアプローチは推奨されません。このようなRAIDにブートローダをインストールすることはサポートされていないため、ブート用に別のデバイスを使用する必要があります。fdiskpartedなどのツールは当該RAIDでは適切に機能しないため、RAIDの特定のセットアップを知らない人によって誤った診断やアクションが行われる可能性があります。

7.2.1 RAIDの名前

デフォルトでは、ソフトウェアRAIDデバイスには、mdN (Nは数字)というパターンに従った数字の名前が付いています。そのため、たとえば、/dev/md127としてアクセスでき、/proc/mdstat/proc/partitionsではmd127としてリストされます。このような名前では作業しづらい場合があります。SUSE Linux Enterprise Serverでは、この問題を回避する方法を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.confCREATE names=yesという行を追加します。

> echo "CREATE names=yes" | sudo tee -a  /etc/mdadm.conf

これにより、myRAIDのような名前が実際のデバイス名として使用されるようになります。このデバイスは/dev/myRAIDでアクセスできるだけでなく、/procにもmyRAIDとしてリストされます。これは、設定ファイルの変更後に設定したRAIDにのみ適用される点に注意してください。アクティブなRAIDでは、停止して再アセンブルするまで引き続きmdN形式の名前が使用されます。

警告
警告: 非互換のツール

一部のツールは、名前付きRAIDデバイスをサポートしていません。ツールがRAIDデバイスにmdN形式の名前が付いていることを予期している場合、そのツールはデバイスを特定できません。

7.3 AArch64のRAID 5のストライプサイズの設定

デフォルトでは、ストライプサイズは4KBに設定されています。デフォルトのストライプサイズを変更する必要がある場合、たとえば、AArch64の一般的なページサイズの64KBに合わせるには、CLIを使用してストライプサイズを手動で設定できます。

> sudo echo 16384  > /sys/block/md1/md/stripe_size

上記のコマンドを実行すると、ストライプサイズは16KBに設定されます。4096、8192など他の値を設定できますが、値は2のべき乗である必要があります。

7.4 ソフトウェアRAIDの監視

monitorモードでデーモンとしてmdadmを実行し、ソフトウェアRAIDを監視することができます。monitorモードでは、mdadmはアレイのディスク障害を定期的に確認します。障害が発生した場合、mdadmは管理者に電子メールを送信します。チェックの時間間隔を定義するには、次のコマンドを実行します。

mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2

先に示したコマンドは1800秒間隔で/dev/md2アレイの監視をオンにします。障害が発生した場合、電子メールがroot@localhostに送信されます。

注記
注記: デフォルトでは、RAIDチェックが有効化されています

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

7.5 詳細情報

ソフトウェアRAIDの設定方法と詳細情報が、次のHOWTOにあります。

linux-raid」(https://marc.info/?l=linux-raid)などのLinux RAIDメーリングリストもあります。