Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 SUSE Linux Enterprise Server 11 SP4

10 mdadmによるソフトウェアRAID 6および10の管理

このセクションでは、複数デバイス管理(mdadm(8))ツールで、ソフトウェア RAID 6および10のデバイスを作成する方法を説明します。mdadmを使用すると、RAID 0、1、4、および5も作成できます。mdadmツールは、レガシープログラムmdtoolsおよびraidtoolsの機能を提供します。

10.1 RAID 6の作成

10.1.1 RAID 6の理解

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

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

通常モードおよび単一ディスク障害モードでは、RAID 5と比べ、RAID 6のパフォーマンスは若干低いですが、同程度です。デュアルディスク障害モードでは、RAID 6は非常に低速です。

表 10.1: RAID 5とRAID 6の比較

機能

RAID 5

RAID 6

デバイスの数

N+1(最小限3個)

N+2(最小限4個)

パリティ

分散型、シングル

分散型、デュアル

パフォーマンス

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

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

耐障害性

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

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

10.1.2 RAID 6の作成

このセクションのプロシージャでは、RAID 6デバイス/dev/md0を4つのデバイスで作成します(/dev/sda1/dev/sdb1/dev/sdc1/dev/sdd1)。必ず、プロシージャを変更して、実際のデバイスノードを使用するようにしてください。

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

  2. RAID 6デバイスを作成します。コマンドプロンプトで、次のように入力します

    mdadm --create /dev/md0 --run --level=raid6 --chunk=128 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdc1 /dev/sdd1

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

  3. Create a file system on the RAID 6デバイス/dev/md0上でファイルシステム(Reiserファイルシステムなど)を作成します。たとえば、コマンドプロンプトで、次のように入力します。

    mkfs.reiserfs /dev/md0

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

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

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

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

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

  7. RAIDアレイにホットスペアを追加します(オプション)。たとえば、コマンドプロンプトで、次のように入力します。

    mdadm /dev/md0 -a /dev/sde1

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章 「デバイスのマルチパス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章 「デバイスのマルチパス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にマウントされます。

10.3 コンプレックスRAID 10の作成

10.3.1 コンプレックスRAID10の理解

mdadmでは、RAID10レベルで、RAID 0(ストライピング)とRAID 1(ミラーリング)の両方の機能を組み合わせた単一の複雑なソフトウェアRAIDが作成されます。すべてのデータブロックの複数のコピーが、ストライピングの規則に従って、複数のドライブ上に配置されます。コンポーネントデバイスは、すべて同じサイズにする必要があります。

10.3.1.1 コンプレックスRAID10とネストしたRAID 10 (1+0)の比較

コンプレックスRAID は、ネストしたRAID 10 (1+0)と目的は同じですが、次の点で異なります。

表 10.5: コンプレックスRAID 10対ネストしたRAID 10

機能

コンプレックスRAID10

ネストしたRAID 10(1+0)

デバイスの数

偶数個または奇数個のコンポーネントデバイス

偶数個のコンポーネントデバイス

コンポーネントデバイス

単一のRAIDデバイスとして管理されます。

ネストしたRAIDデバイスとして管理されます。

ストライピング

ストライピングは、コンポーネントデバイス上にnearレイアウトまたはfarレイアウトを生じます。

farレイアウトでは、RAID 1ペアの数でなく、ドライブ数で増減するシーケンシャルな読み込みスループットを提供します。

ストライピングは、連続的に、すべてのコンポーネントデバイスをまたぎます。

データの複数コピー

2からアレイ内のデバイス数まで

ミラーリングされたセグメントごとにコピー

ホットスペアデバイス

単一スペアですべてのコンポーネントデバイスに対応できます。

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

10.3.1.2 コンプレックスRAID10のレプリカ数

コンプレックスRAID10アレイの設定時に、データブロックごとに必要なレプリカ数を指定する必要があります。デフォルトのレプリカ数は2ですが、2からアレイ内のデバイス数まで可能です。

10.3.1.3 コンプレックスRAID10のデバイス数

少なくとも、指定のレプリカ数と同数のコンポーネントデバイスを使用する必要があります。ただし、RAID10アレイのコンポーネントデバイス数は各データブロックのレプリカ数の倍数である必要はありません。有効なストレージサイズは、デバイス数をレプリカ数で割った数です。

たとえば、5個のコンポーネントデバイスで作成したアレイに2つのレプリカを指定した場合は、各ブロックのコピーが2つの異なるデバイスに保存されます。したがって、すべてのデータの1コピーの有効なストレージサイズは、5/2(つまり、コンポーネントデバイスのサイズの2.5倍)となります。

10.3.1.4 nearレイアウト

nearレイアウトでは、異なるコンポーネントデバイス上で、データブロックのコピーが互いに接近してストライプされます。つまり、あるデータブロックの複数のコピーが異なるデバイス内で同様にオフセットされます。nearは、RAID10のデフォルトレイアウトです。たとえば、奇数個のコンポーネントデバイスとデータの2コピーを使用する場合は、一部のコピーが、1チャンク分、デバイス内を前進します。

mdadm RAID 10のnearレイアウトは、半数のドライブ上のRAID 0と同様の読み書きパフォーマンスを提供します。

偶数個のディスクと2つのレプリカを使用したnearレイアウト

sda1 sdb1 sdc1 sde1
  0    0    1    1
  2    2    3    3
  4    4    5    5
  6    6    7    7
  8    8    9    9

奇数個のディスクと2つのレプリカを使用したnearレイアウト

sda1 sdb1 sdc1 sde1 sdf1
  0    0    1    1    2
  2    3    3    4    4
  5    5    6    6    7
  7    8    8    9    9
  10   10   11   11   12

10.3.1.5 farレイアウト

farレイアウトは、すべてのドライブの前半部分にデータをストライプし、次に、2つ目のデータコピーをすべてのドライブの後半部分にストライプして、ブロックのすべてのコピーが異なるドライブに配置されるようにします。値の2つ目のセットは、コンポーネントドライブの中ほどから開始します。

farレイアウトでは、mdadm RAID10の読み込みパフォーマンスは、すべてのドライブを使用したRAID 0と同様ですが、書き込みパフォーマンスは、ドライブヘッドのシーク回数が増えるので、RAID 0よりかなり遅くなります。このレイアウトは、 読み込み専用ファイルサーバなどの、読み込み集約型操作に最適です。

raid10の書き込み速度は、付近のレイアウトを使用しているraid1やraid0などの他のミラーリングRAIDの種類と同等です。これは、ファイルシステムのエレベータが生の書き込みよりも効率のよい書き込みのスケジュールを行うためです。Raid10をfarレイアウトで使用する方法は、ミラーリングによる書き込みアプリケーションに適しています。

偶数個のディスクと2つのレプリカを使用したfarレイアウト

sda1 sdb1 sdc1 sde1
  0    1    2    3
  4    5    6    7       
  . . .
  3    0    1    2
  7    4    5    6

奇数個のディスクと2つのレプリカを使用したfarレイアウト

sda1 sdb1 sdc1 sde1 sdf1
  0    1    2    3    4
  5    6    7    8    9
  . . .
  4    0    1    2    3
  9    5    6    7    8

10.3.1.6 offsetレイアウト

offsetレイアウトでは、あるチャンクの複数のコピーが連続したドライブ上で連続したオフセットにレイアウトされるよう、ストライプが複製されます。実際は、それぞれのストライプが複製され、コピーが1つのデバイスでオフセットされます。これにより、適度な大きさのチャンクサイズを使用している場合は、farレイアウトと同様の読み込み特性が得られますが、書き込みのシーク回数は少なくなります。

偶数個のディスクと2つのレプリカを使用したoffsetレイアウト

sda1 sdb1 sdc1 sde1
  0    1    2    3
  3    0    1    2       
  4    5    6    7
  7    4    5    6
  8    9   10   11
 11    8    9   10

奇数個のディスクと2つのレプリカを使用したoffsetレイアウト

sda1 sdb1 sdc1 sde1 sdf1
  0    1    2    3    4
  4    0    1    2    3
  5    6    7    8    9
  9    5    6    7    8
 10   11   12   13   14
 14   10   11   12   13

10.3.2 mdadmによるコンプレックスRAID 10の作成

mdadmのRAID10オプションでは、ネストなしのRAID 10デバイスが作成されます。RAID10については、10.3.1項 「コンプレックスRAID10の理解」を参照してください。

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

表 10.6: mdadm RAID10オプションでRAID 10を作成するシナリオ

rawデバイス

RAID10(near/farストライピングスキーム)

/dev/sdf1

/dev/sdg1

/dev/sdh1

/dev/sdi1

/dev/md3

  1. YaSTで、RAIDで使用したいデバイス(/dev/sdf1/dev/sdg1/dev/sdh1/dev/sdi1など)に0xFD Linux RAIDパーティションを作成します。

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

  3. RAID 10 コマンドを作成します。コマンドプロンプトで、次のように入力します(すべて同じ行)。

    mdadm --create /dev/md3 --run --level=10 --chunk=4 --raid-devices=4 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
  4. RAID 10デバイス /dev/md3上にReiserファイルシステムを作成します。コマンドプロンプトで、次のように入力します

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

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

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

    RAID 10デバイスが/raid10にマウントされます。

10.3.3 YaSTパーティショナ付きコンプレックスRAID 10の作成

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

  2. ハードディスクを選択して、利用可能なディスク(sdab、sdc、sdd、sdeなど)を確認します。

  3. ソフトウェアRAIDで使用する予定の各ディスクについて、RAIDパーティションをデバイス上に作成します。それぞれのパーティションは、同じサイズである必要があります。RAID 10デバイスに対して、以下を行う必要があります。

    1. ハードディスクで、デバイスを選択し、次に右側のパネルでパーティションを選択します。

    2. 追加をクリックして、パーティションを追加ウィザードを開きます。

    3. 新しいパーティションの種類で、プライマリパーティションを選択し、次に次へをクリックします。

    4. 新しいパーティションのサイズで、このディスク上のRAIDパーティションの希望のサイズを指定し、次に次へをクリックします。

    5. フォーマットオプションで、パーティションをフォーマットしないを選択し、次にファイルシステムIDドロップダウンリストから0xFD Linux RAIDを選択します。

    6. マウントオプションで、パーティションマウントしないを選択し、次に完了をクリックします。

    7. 上記の手順を、RAID 10デバイスで使用する予定のディスク上のRAIDパーティションを定義し終わるまで、繰り返します。

  4. RAID 10デバイスを作成します。

    1. RAIDを選択し、次に右側のパネルでRAIDを追加を選択して、RAIDの追加ウィザードを開きます。

    2. RAIDタイプで、RAID 10 (ミラーリングおよびストライピング)を選択します。

    3. 利用可能なデバイスリストで、希望のLinux RAIDパーティションを選択し、次に追加をクリックして、それらを選択したデバイスリストに移動します。

    4. (オプション)Classifyをクリックして、RAIDアレイ内でのディスクの好みの順番を指定します。

      追加したディスクの順番が重要となるRAIDタイプの場合は、アレイの半分が1つのディスクサブシステムに、もう半分が別のディスクサブシステムに置かれるよう、デバイスが使用される順番を指定することができます。たとえば、1つのディスクサブシステムに障害が発生した場合、システムは2番目のディスクサブシステムから稼働し続けます。

      1. 各ディスクを順番に選択して、Class Xボタンのいずれかをクリックします。ここで、Xは、そのディスクに割り当てる文字です。用意されているクラスはA、B、C、DおよびEですが、多くの場合必要なクラスはそれより少ないです(たとえばAとBのみ)。 このようにして、すべての利用可能なRAIDディスクを割り当てます。

        複数の を選択するには、CtrlキーまたはShiftキーを押します。選択したデバイスを右クリックして、コンテキストメニューから適切なクラスを選択することもできます。

      2. 次のソートオプションのいずれかを選択して、デバイスの順序を指定します。

        Sorted: クラスAのすべてのデバイスを、クラスBのすべてのデバイスより前に、というように並べます。例: AABBCC

        Interleaved: クラスAの最初のデバイス、次にクラスBの最初のデバイス、次にデバイスが割り当てられたすべての後続のクラスの順に、デバイスを並べます。次にクラスAの2番目のデバイス、クラスBの2番目のデバイス、というように続きます。クラスを持たないデバイスはすべて、デバイスリストの最後に並べられます。例: ABCABC

        Pattern File: それぞれが正規表現とクラス名である、複数の行を含む既存のファイルを選択します("sda.* A")。その正規表現に合致するすべてのデバイスが、その行に指定されたクラスに割り当てられます。正規表現は、カーネル名(/dev/sda1)、udevパス名(/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1)、次にudev ID (/dev/disk/by-id/ata-ST3500418AS_9VMN8X8L-part1)に対して照合されます。デバイスの名前が、2つ以上の正規表現に合致する場合は、最初に合致したものでクラスが決定されます。

      3. ダイアログボックスの下で、OKをクリックして、順番を確定します。

    5. 次へをクリックします。

    6. RAIDオプションで、チャンクサイズパリティアルゴリズムを指定し、次に次へをクリックします。

      RAID 10の場合、パリティオプションは、n (near)、f (far)、およびo (offset)です。数字は、必要となる各データブロックのレプリカの数を示します。2がデフォルトの設定です。詳細については、10.3.1項 「コンプレックスRAID10の理解」を参照してください。

    7. ファイルシステムとマウントオプションをRAIDデバイスに追加して、完了をクリックします。

  5. RAIDを選択し、新たに作成されたRAIDデバイスを選択してから、使用するデバイスをクリックして、そのパーティションを確認します。

  6. 次へをクリックします。

  7. 変更する内容を確認して、完了をクリックすると、RAIDが作成されます。

10.4 ディグレードアレイの作成

ディグレードアレイは、一部のデバイスが欠けたアレイです。ディグレードアレイは、RAID 1、RAID 4、RAID 5、およびRAID 6に対してのみサポートされています。これらのRAIDタイプは、その耐障害性機能として、一部のデバイスの欠落に耐えるように設計されています。通常、デバイスに障害が発生すると、ディグレードアレイが生成されます。ディグレードアレイは、意図的に作成するすることもできます。

RAIDの種類

許容可能な欠落スロット数

 

RAID 1

1つ以外の全スロット

 

RAID 4

1スロット

 

RAID 5

1スロット

 

RAID 6

1個または2個のスロット

 

一部のデバイスが欠落したディグレードアレイを作成するには、単に、デバイス名の代わりにmissingというワードを指定します。この指定により、mdadmは、アレイ内の対応するスロットを空のまま残します。

RAID 5アレイの作成時に、mdadmによって、余分なスペアドライブをもつディグレードアレイが自動的に作成されます。これは、一般に、ディグレードアレイ内にスペアを構築した方が、ディグレードアレイではないが正常でないアレイ上でパリティを再同期するより高速なためです。この機能は、--forceオプションで無効にできます。

RAIDを作成したいが、使用するデバイスの1つに既にデータが入っている場合は、ディグレードアレイを作成すると便利なことがあります。その場合は、他のデバイスでディグレードアレイを作成し、その使用中のデバイスからのデータをディグレードモードで実行中のRAIDにコピーし、デバイスをRAIDに追加して、RAIDの再構築まで待機すると、データがすべてのデバイスに行き渡ります。このプロセスの例を、次のプロシージャで示します。

  1. ディグレードRAID 1デバイス/dev/md0を単一ドライブ/dev/sd1で作成します。コマンドプロンプトで、次のように入力してください。

    mdadm --create /dev/md0 -l 1 -n 2 /dev/sda1 missing

    追加先のデバイスは、追加するデバイスと同じか、またはそれ以上のサイズをもつ必要があります。

  2. ミラーに追加したいデバイスに、RAIDアレイに移動したいデータが含まれている場合は、この時点で、そのデータを、ディグレードモードで実行中のRAIDアレイにコピーします。

  3. デバイスをミラーに追加します。たとえば、add /dev/sdb1をRAIDに追加するには、コマンドプロンプトで、次のように入力します。

    mdadm /dev/md0 -a /dev/sdb1

    一度に1つのデバイスのみ追加できます。カーネルがミラーを構築し、完全にオンラインにした後、別のミラーを追加できます。

  4. 構築の進捗状況を監視するには、コマンドプロンプトで、次のように入力します。

    cat /proc/mdstat

    毎秒更新されている間に再構築の進捗を確認するには、次のように入力します。

    watch -n 1 cat /proc/mdstat
このページを印刷