での RAID 設定Linux - Amazon Elastic Compute Cloud

での RAID 設定Linux

Amazon EBS では、従来のベアメタルサーバーで使用できる標準的な RAID 設定はすべて使用できます。ただしその RAID 設定が、お使いのインスタンスのオペレーティングシステムでサポートされている必要があります。これは、RAID がすべてソフトウェアレベルで実現されるためです。

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 アレイを作成すると、単一の Amazon EBS ボリュームでプロビジョニングする場合よりも、ファイルシステムで高レベルのパフォーマンスが実現されます。I/O パフォーマンスが最も重要視される場合には、RAID 0 を使用します。RAID 0 では、I/O がストライプ内のボリューム全体に分散されます。ボリュームを追加すると、スループットと IOPS を追加したことになります。ただし、ストライプのパフォーマンスは、セット内で最もパフォーマンスの低いボリュームにより制限されることに留意してください。セット内のボリュームが 1 つ失われた場合でも、結果としてアレイのデータが完全に失われます。

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

重要

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

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

Linux での RAID 0 アレイの作成

このドキュメントでは、RAID 0 のセットアップに関する基本的な例を紹介します。

この手順を実行する前に、構築する RAID 0 アレイのサイズと、プロビジョニングする IOPS 数を決定してください。

次の手順に従って RAID 0 アレイを作成します。Windows インスタンスの手順については、Amazon EC2 Windows インスタンス用ユーザーガイド の「Windows で RAID 0 アレイを作成するには」を参照してください。

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

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

    重要

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

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

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

    注記

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

    RAID 0 アレイを作成するには、次のコマンドを実行します (アレイをストライプ化するには --level=0 オプションをメモしておきます)。

    [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=0 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2
  4. RAID アレイでの初期化と同期に許可された時間です。これらのオペレーションの進行状況は、次のコマンドを使用して追跡できます。

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

    出力例を次に示します。

    Personalities : [raid0] md0 : active raid0 xvdc[1] xvdb[0] 41910272 blocks super 1.2 512k chunks unused devices: <none>

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

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

    出力例を次に示します。

    /dev/md0: Version : 1.2 Creation Time : Wed May 19 11:12:56 2021 Raid Level : raid0 Array Size : 41910272 (39.97 GiB 42.92 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed May 19 11:12:56 2021 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K Consistency Policy : none Name : MY_RAID UUID : 646aa723:db31bbc7:13c43daf:d5c51e0c Events : 0 Number Major Minor RaidDevice State 0 202 16 0 active sync /dev/sdb 1 202 32 1 active sync /dev/sdc
  5. RAID アレイにファイルシステムを作成し、それを後でマウントするときに、使用するラベルをそのファイルシステムに提供します。例えば、ext4 ファイルシステムのラベル MY_RAID で作成するには、次のコマンドを実行します。

    [ec2-user ~]$ sudo mkfs.ext4 -L MY_RAID /dev/md0

    アプリケーションの要件またはオペレーティングシステムの制限によって、ext3 や XFS などの異なるファイルシステムタイプを使用できます (対応するファイルシステム作成コマンドについては、ファイルシステムの資料を参照してください)。

  6. RAID アレイがブート時に自動的に再編成されることを確認するには、RAID 情報を含むように設定ファイルを作成します。

    [ec2-user ~]$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
    注記

    Amazon Linux 以外の Linux ディストリビューションを使用している場合は、このコマンドを変更する必要が生じることがあります。たとえば、ファイルを別の場所に配置することや、--examine パラメータを追加することが必要な場合があります。詳細については、Linux インスタンスで man mdadm.conf を実行します。

  7. 新しい RAID 設定のブロックデバイスモジュールを適切に事前ロードする新しいラムディスクイメージを作成する:

    [ec2-user ~]$ sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  8. RAID アレイのマウントポイントを作成します。

    [ec2-user ~]$ sudo mkdir -p /mnt/raid
  9. 最後に、作成したマウントポイントに RAID デバイスをマウントします。

    [ec2-user ~]$ sudo mount LABEL=MY_RAID /mnt/raid

    これで RAID デバイスを使用する準備ができました。

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

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

      [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
    2. お好みのテキストエディタ (/etc/fstabnano など) を使用して、vim ファイルを開きます。

    3. UUID=」で始まる行にコメントして、ファイルの最後に次の形式で RAID ボリュームの新しい行を追加します。

      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 マウントオプションも追加する必要があります。

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

      [ec2-user ~]$ sudo mount -a

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

      警告

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

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

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

RAID アレイでのボリュームのスナップショットの作成

スナップショットを使用して、RAID 配列で EBS ボリュームのデータをバックアップする場合には、そのスナップショットが一貫していることを確認する必要があります。これは、ボリュームのスナップショットが個別に作成されるためです。同期されていないスナップショットから RAID 配列の EBS ボリュームを復元すると、配列の整合性は低下します。

RAID 配列の一貫性のあるスナップショットを作成するには、「EBS マルチボリュームスナップショット」を使用します。マルチボリュームスナップショットを使用すると、EC2 インスタンスにアタッチされている複数の EBS ボリュームにわたって、ポイントインタイムで、データ調整済みのクラッシュ整合性スナップショットを取得できます。スナップショットは複数の EBS ボリュームにわたって自動的に作成されるため、一貫性を保証できるように、ボリューム間で調整してインスタンスを停止する必要はありません。詳細については、「Amazon EBS スナップショットの作成」のマルチボリュームスナップショットを作成するステップを参照してください。