10.2 mdadmによるネストしたRAID 10デバイスの作成

10.2.1 ネストしたRAIDデバイスの理解

ネストしたRAIDデバイスは、物理ディスクを使用する代わりに、その基本エレメントとして別のRAIDアレイを使用するRAIDアレイで構成されます。この構成の目的は、RAIDのパフォーマンスと耐障害性を向上することです。

Linuxは、RAID 1 (ミラーリング)アレイとRAID 0 (ストライピング)アレイのネストをサポートします。一般に、この組み合わせは、RAID 10と呼ばれます。ネストの順序を区別するため、このマニュアルでは、次の用語を使用します。

  • RAID 1+0: まず、RAID 1(ミラー)アレイが構築され、次に、それらのアレイが組み合わされてRAID 0 (ストライプ)アレイを構成します。

  • RAID 0+1: まず、RAID 0(ストライプ)アレイが構築され、次に、それらのアレイが組み合わされてRAID 1(ミラー)アレイを構成します。

次のテーブルでは、RAID 10ネスティングの欠点と利点を、1+0対0+1という形式で説明します。使用するストレージオブジェクトは、それぞれが専用のI/Oを持つ別々のディスクに常駐すると想定しています。

表 10-2 ネストしたRAIDレベル

RAIDレベル

説明

パフォーマンスと耐障害性

10 (1+0)

RAID 1(ミラー)アレイで構築されたRAID(ストライプ)

RAID 1+0は、高レベルのI/Oパフォーマンス、データ冗長性、およびディスク耐障害性を提供します。RAIDの各メンバーデバイスは個々にミラーリングされるので、エラーになったディスクのミラー先が異なる限り、複数ディスクの障害を許容し、データを使用することができます。

オプションとして、ベースをなすミラーリングされたアレイごとにスペアを設定したり、すべてのミラーに対するスペアグループに対応するスペアを設定できます。

10 (0+1)

RAID 0(ストライプ)アレイで構築されたRAID 1(ミラー)

RAID 0+1は、高レベルのI/Oパフォーマンスとデータ冗長性を提供しますが、耐障害性が1+0より若干低くなります。ミラーの一方のサイドで複数のディスクがエラーになると、もう一方のミラーが使用可能になります。ただし、ミラーの両サイドで同時にディスクが失われると、すべてのデータが喪失します。

このソリューションは1+0ソリューションより耐障害性が低いですが、別のサイトで保守を実行したり、ミラーを保持する必要がある場合、ミラーのサイド全体をオフラインにしても、完全に機能するストレージデバイスを保持することができます。また、2つのサイト間の接続が失われた場合は、どちらかのサイトがもう一方のサイトから独立して稼動します。ミラーリングされたセグメントをストライプする場合はこうなりません。ミラーが低レベルで管理されているからです。

デバイスがエラーになると、RAID 0には耐障害性がないので、そのサイドのミラーがエラーになります。新しいRAID 0を作成して、エラーになったサイドに置き換え、次に、ミラーを再同期してください。

10.2.2 mdadmによるネストしたRAID 10 (1+0)デバイスの作成

ネストしたRAID 1+0は、2つ以上のRAID 1(ミラー)デバイスを作成し、それらのRAID 1デバイスをRAID 0のコンポーネントデバイスとして使用することで構築します。

重要: デバイスに対する複数の接続を管理する必要がある場合は、マルチパスI/Oを設定してから、RAIDデバイスを設定する必要があります。詳細については、セクション 7.0, デバイスのマルチパスI/Oの管理を参照してください。

このセクションのプロシージャでは、次のテーブルに示すデバイス名を使用します。それらのデバイス名は、必ず、ご使用のデバイスの名前で変更してください。

表 10-3 ネスティングでRAID 10(1+0)を作成するシナリオ

rawデバイス

RAID 1(ミラー)

RAID 1+0(ストライピングミラー)

  • /dev/sdb1
  • /dev/sdc1

/dev/md0

/dev/md2

  • /dev/sdd1
  • /dev/sde1

/dev/md1

  1. 端末コンソールを開いて、rootユーザまたは同等の権限でログインします。

  2. RAID 1デバイスごとに2つの異なるデバイスを使用して、2つのソフトウェアRAID 1デバイスを作成します。コマンドプロンプトで、次の2つのコマンドを入力します。

    mdadm --create /dev/md0 --run --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
    
    mdadm --create /dev/md1 --run --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
    
  3. ネストしたRAID 1+0デバイスを作成します。コマンドプロンプトで、「ステップ 2」で作成したソフトウェアRAID 1デバイスを使用して、次のコマンドを入力します。

    mdadm --create /dev/md2 --run --level=0 --chunk=64 --raid-devices=2 /dev/md0 /dev/md1
    

    デフォルトのチャンクサイズは 64KBです。

  4. RAID 1+0デバイス/dev/md2上で、Reiser(reiserfs)などのファイルシステムを作成します。たとえば、コマンドプロンプトで、次のように入力します。

    mkfs.reiserfs /dev/md2
    

    これとは別のファイルシステムを使用したい場合は、コマンドを変更します。

  5. /etc/mdadm.confファイルを編集して、コンポーネントデバイスとRAIDデバイス/dev/md2のエントリを追加します。

  6. /etc/fstabファイルを編集して、RAID 1+0デバイス /dev/md2のエントリを追加します。

  7. サーバを再起動します。

    RAID 1+0デバイスが/localにマウントされます。

10.2.3 mdadmによるネストしたRAID 10 (0+1)デバイスの作成

ネストしたRAID 0+1は、2個から4個のRAID 0(ストライプ)デバイスで構築され、それらのRAID 0デバイスをミラーリングしてRAID 1のコンポーネントデバイスとします。

重要: デバイスに対する複数の接続を管理する必要がある場合は、マルチパスI/Oを設定してから、RAIDデバイスを設定する必要があります。詳細については、セクション 7.0, デバイスのマルチパスI/Oの管理を参照してください。

この構成では、RAID 0がデバイスの喪失に耐えられないので、ベースのRAID 0デバイスにスペアデバイスを指定できません。デバイスがミラーの1つのサイドでエラーになった場合は、置き換え用のRAID 0デバイスを作成して、ミラーに追加します。

このセクションのプロシージャでは、次のテーブルに示すデバイス名を使用します。それらのデバイス名は、必ず、ご使用のデバイスの名前で変更してください。

表 10-4 ネストによるRAID 10 (0+1)作成のシナリオ

rawデバイス

RAID 0 (ストライプ)

RAID 0+1 (ミラー化ストライピング)

  • /dev/sdb1
  • /dev/sdc1

/dev/md0

/dev/md2

  • /dev/sdd1
  • /dev/sde1

/dev/md1

  1. 端末コンソールを開いて、rootユーザまたは同等の権限で、ログインします。

  2. RAID 0デバイスごとに2つの異なるデバイスを使用して、2つのソフトウェアRAID 0デバイスを作成します。コマンドプロンプトで、次の2つのコマンドを入力します。

    mdadm --create /dev/md0 --run --level=0 --chunk=64 --raid-devices=2 /dev/sdb1 /dev/sdc1
    
    mdadm --create /dev/md1 --run --level=0 --chunk=64 --raid-devices=2 /dev/sdd1 /dev/sde1
    

    デフォルトのチャンクサイズは 64KBです。

  3. ネストしたRAID 0+1デバイスの作成コマンドプロンプトで、「ステップ 2」で作成したソフトウェアRAID 0デバイスを使用して、次のコマンドを入力します。

    mdadm --create /dev/md2 --run --level=1 --raid-devices=2 /dev/md0 /dev/md1
    
  4. RAID 0+1デバイス/dev/md2上で、Reiser(reiserfs)などのファイルシステムを作成します。たとえば、コマンドプロンプトで、次のように入力します。

    mkfs.reiserfs /dev/md2
    

    これとは別のファイルシステムを使用したい場合は、コマンドを変更します。

  5. /etc/mdadm.confファイルを編集して、コンポーネントデバイスとRAIDデバイス/dev/md2のエントリを追加します。

  6. /etc/fstabファイルを編集して、RAID 0+1デバイス/dev/md2のエントリを追加します。

  7. サーバを再起動します。

    RAID 0+1デバイスが/localにマウントされます。