メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Linux での RAID 構成

Amazon EBS では、従来のベアメタルサーバーで使用できる標準的な RAID 設定はすべて使用できます。ただしその RAID 設定が、お使いのインスタンスのオペレーティングシステムでサポートされている必要があります。これは、RAID がすべてソフトウェアレベルで実現されるためです。単一のボリュームで実現できる以上の I/O パフォーマンスを実現するため、RAID 0 では複数のボリュームをともにストライピングできます。インスタンスでの冗長性確保のため、RAID 1 では 2 つのボリュームを同時にミラーリングできます。

Amazon EBS ボリュームのデータは、同じアベイラビリティーゾーン内の複数のサーバーにレプリケートされます。これは、コンポーネントの 1 つに障害が発生したことが原因でデータが失われるのを防ぐためです。このレプリケーションにより、一般的なコモディティディスクドライブに比べて Amazon EBS ボリュームの信頼性が 10 倍に高まります。詳細については、Amazon EBS 製品の詳細ページの「Amazon EBS の可用性と耐久性」を参照してください。

注記

RAID ボリュームからの起動は避ける必要があります。GRUB は通常 RAID アレイの 1 つのデバイスのみにインストールされ、ミラーリングされたデバイスの 1 つに障害が発生した場合、オペレーティングシステムを起動できなくなる場合があります。

Windows インスタンスで RAID アレイを作成する必要がある場合は、Windows インスタンスの Amazon EC2 ユーザーガイド の「Windows での RAID 設定」を参照してください。

RAID 設定オプション

次の表では、一般的な RAID 0 と RAID 1 のオプションを比較しています。

設定 使用アイテム 利点 欠点

RAID 0

(データレプリケーションが既に別にセットアップされている) 使用頻度が高いデータベースなど、I/O パフォーマンスが耐障害性よりも重要な場合。

I/O がストライプ内のボリュームにわたって分散されます。ボリュームを追加すると、スループットも追加されます。

ストライプのパフォーマンスは、セット内で最もパフォーマンスが良くないボリュームに制限されます。単一ボリュームの損失により、アレイのデータが完全に失われます。

RAID 1

クリティカルなアプリケーション内など、耐障害性が I/O パフォーマンスより重要な場合。

データ堅牢性の観点から見て、より安全です。

書き込みパフォーマンスの向上は得られません。データが同時に複数のボリュームに書き込まれるため、非 RAID 構成と比較して Amazon EC2 と Amazon EBS の間に大きな帯域幅が必要となります。

重要

RAID 5 と RAID 6 ではボリュームに使用できる IOPS の一部がパリティ書き込み操作によって消費されるため、Amazon EBS にはこれらの RAID モードをお勧めしません。RAID アレイの構成によっては、これらの RAID モードで使用できる IOPS が RAID 0 構成と比較して 20 ~ 30% 少なくなる場合があります。これらの RAID モードにはコストの増加も伴います。ボリュームサイズとスピードが同じ 2 ボリュームの RAID 0 アレイの方が、コストが 2 倍の 4 ボリュームの RAID 6 アレイよりも優れたパフォーマンスが得られる場合があります。

RAID 0 アレイを作成すると、単一の Amazon EBS ボリュームでプロビジョニングする場合よりも、ファイルシステムで高レベルのパフォーマンスが実現されます。RAID 1 アレイは、冗長性を向上させるため、データのミラーリングを可能にします。この手順を実行する前に、RAID アレイで必要となるサイズと、プロビジョニングする IOPS の数を決定してください。

RAID 0 アレイの最終的なサイズは、アレイ内のボリュームサイズの合計です。帯域幅は、アレイ内のボリュームで利用可能な帯域幅の合計です。RAID 1 アレイの最終的なサイズと帯域幅は、アレイ内にあるボリュームのサイズと帯域幅に等しくなります。たとえば、それぞれ 4,000 のプロビジョンド IOPS が設定された 2 つの 500 GiB Amazon EBS ボリュームがある場合、使用可能な帯域幅が 8,000 IOPS、スループットが 256 MB/秒の 1,000 GiB の RAID 0 アレイか、または使用可能な帯域幅が 4,000 IOPS、スループットが 128 MB/秒の 500 GiB の RAID 1 アレイを構築できます。

このドキュメントでは、基本的な RAID のセットアップの例を紹介します。RAID 設定、パフォーマンス、および復旧の詳細については、Linux RAID Wiki (https://raid.wiki.kernel.org/index.php/Linux_Raid) を参照してください。

Linux での RAID アレイの作成

次の手順に従って RAID アレイを作成します。Windows インスタンスに関する手順は、Windows インスタンスの Amazon EC2 ユーザーガイド の「Windows での RAID アレイの作成」で入手できます。

Linux で RAID アレイを作成するには

  1. アレイに Amazon EBS ボリュームを作成します。詳細については、「Amazon EBS ボリュームの作成」を参照してください。

    重要

    アレイに作成するボリュームのサイズと IOPS パフォーマンス値は同一にしてください。EC2 インスタンスで利用可能な帯域幅を超えるアレイを作成しないよう注意してください。詳細については、「Amazon EC2 インスタンスの構成」を参照してください。

  2. アレイをホストするインスタンスに Amazon EBS ボリュームをアタッチします。詳細については、「インスタンスへの Amazon EBS ボリュームのアタッチ」を参照してください。

  3. mdadm コマンドを使用して、新しくアタッチした Amazon EBS ボリュームから論理 RAID デバイスを作成します。number_of_volumes に、構成するアレイ内のボリュームの数を入れ、device_name に、アレイ内の各ボリュームのデバイス名 (/dev/xvdf など) を入れます。MY_RAID を、配列の一意の名前で置き換えることもできます。

    注記

    インスタンスのデバイス名を見つけるには、lsblk コマンドを使用してデバイスのリストを表示します。

    (RAID 0 の場合のみ) RAID 0 アレイを作成するには、以下のコマンドを実行します (--level=0 オプションでアレイをストライピングしている点に注意してください)。
    Copy
    [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=0 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2
    (RAID 1 の場合のみ) RAID 1 アレイを作成するには、以下のコマンドを実行します (--level=1 オプションでアレイをミラーリングしている点に注意してください)。
    Copy
    [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2

  4. RAID アレイでの初期化と同期に許可された時間です。これらのオペレーションの進行状況は、次のコマンドを使用して追跡できます。

    Copy
    [ec2-user ~]$ sudo cat /proc/mdstat

    これにより、次のような出力が得られます。

    Copy
    Personalities : [raid1] md0 : active raid1 xvdg[1] xvdf[0] 20955008 blocks super 1.2 [2/2] [UU] [=========>...........] resync = 46.8% (9826112/20955008) finish=2.9min speed=63016K/sec

    一般的に、次のコマンドで RAID アレイに関する詳細情報を表示できます。

    Copy
    [ec2-user ~]$ sudo mdadm --detail /dev/md0

    これにより、次のような情報が得られます。

    Copy
    /dev/md0: Version : 1.2 Creation Time : Mon Jun 27 11:31:28 2016 Raid Level : raid1 Array Size : 20955008 (19.98 GiB 21.46 GB) Used Dev Size : 20955008 (19.98 GiB 21.46 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Mon Jun 27 11:37:02 2016 State : clean ... ... ... Number Major Minor RaidDevice State 0 202 80 0 active sync /dev/sdf 1 202 96 1 active sync /dev/sdg

  5. RAID アレイにファイルシステムを作成し、それを後でマウントするときに、使用するラベルをそのファイルシステムに提供します。たとえば、MY_RAIDext4 ファイルシステムを作成するには、

    Copy
    [ec2-user ~]$ sudo mkfs.ext4 -L MY_RAID /dev/md0
    コマンドを実行します。アプリケーションの要件またはオペレーティングシステムの制限により、ext3 や XFS など、異なるファイルシステムタイプを使用できます (対応するファイルシステム作成コマンドについては、ファイルシステムのドキュメントを参照してください)。

  6. RAID アレイのマウントポイントを作成します。

    Copy
    [ec2-user ~]$ sudo mkdir -p /mnt/raid

  7. 最後に、作成したマウントポイントに RAID デバイスをマウントします。

    Copy
    [ec2-user ~]$ sudo mount LABEL=MY_RAID /mnt/raid
    これで RAID デバイスを使用できるようになりました。

  8. (オプション) システムブート時に常に、この Amazon EBS ボリュームをマウントするには、/etc/fstab ファイルにデバイス用のエントリを追加します。

    1. /etc/fstab ファイルのバックアップコピーを作成すると、編集中に誤って破壊/削除してしまった場合にこのコピーを使用できます。

      Copy
      [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig

    2. お好みのテキストエディタ (nanovimなど) を使って /etc/fstab ファイルを開きます。

    3. 次のフォーマットを使って、ボリュームのファイルの最後に新しい行を追加します。

      Copy
      device_label mount_point file_system_type fs_mntops fs_freq fs_passno
      この行の最後の 3 つのフィールドは、ファイルシステムのマウントオプション、ファイルシステムのダンプ頻度、ブート時に実行されるファイルシステムチェックの順番です。これらの値がわからない場合、以下の例の値を使用してください (defaults,nofail 0 2))。/etc/fstab エントリの詳細については、fstab マニュアルページを参照してください (コマンドラインで man fstab と入力します)。たとえば、マウントポイント /mnt/raid にラベル MY_RAID を持つデバイスに ext4 ファイルシステムをマウントするには、/etc/fstab に次のエントリを追加します。

      注記

      このボリュームをアタッチしないでインスタンスを起動することを目的としている場合 (たとえば、このボリュームが異なるインスタンス間で移動される可能性がある場合)、nofail マウントオプションを追加し、ボリュームのマウントでエラーが発生してもインスタンスが起動できるようにしてください。Debian から派生した OS (Ubuntu など) では、nobootwait マウントオプションも追加する必要があります。

      Copy
      LABEL=MY_RAID /mnt/raid ext4 defaults,nofail 0 2
    4. 新しいエントリを /etc/fstab に追加した後、エントリが正しく動作するかを確認する必要があります。sudo mount -a コマンドを実行すると、/etc/fstab にすべてのファイルシステムがマウントされます。

      Copy
      [ec2-user ~]$ sudo mount -a

      前のコマンドを実行してもエラーが発生しない場合、/etc/fstab ファイルに問題はありません。次回ブート時にファイルシステムは自動的にマウントされます。このコマンドを実行してエラーが発生した場合、エラーを調べて、/etc/fstab を修正してください。

      警告

      /etc/fstab ファイルにエラーがあると、システムがブート不能になる可能性があります。/etc/fstab ファイルにエラーがあるシステムをシャットダウンしないでください。

    5. (オプション) /etc/fstab のエラーの修正方法が不明な場合、次のコマンドを使って、いつでもバックアップの /etc/fstab ファイルを復元することができます。

      Copy
      [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab