メニュー
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 アレイの作成」で入手できます。

To create a RAID array on Linux

  1. Create the Amazon EBS volumes for your array. For more information, see Amazon EBS ボリュームの作成.

    重要

    Create volumes with identical size and IOPS performance values for your array. Make sure you do not create an array that exceeds the available bandwidth of your EC2 instance. For more information, see Amazon EC2 インスタンスの構成.

  2. Attach the Amazon EBS volumes to the instance that you want to host the array. For more information, see インスタンスへの Amazon EBS ボリュームのアタッチ.

  3. Use the mdadm command to create a logical RAID device from the newly attached Amazon EBS volumes. Substitute the number of volumes in your array for number_of_volumes and the device names for each volume in the array (such as /dev/xvdf) for device_name. You can also substitute MY_RAID with your own unique name for the array.

    注記

    You can list the devices on your instance with the lsblk command to find the device names.

    (RAID 0 only) To create a RAID 0 array, execute the following command (note the --level=0 option to stripe the array):

    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 only) To create a RAID 1 array, execute the following command (note the --level=1 option to mirror the array):

    Copy
    [ec2-user ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --name=MY_RAID --raid-devices=number_of_volumes device_name1 device_name2
  4. Allow time for the RAID array to initialize and synchronize. You can track the progress of these operations with the following command:

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

    The following is example output:

    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

    In general, you can display detailed information about your RAID array with the following command:

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

    The following is example output:

    /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. Create a file system on your RAID array, and give that file system a label to use when you mount it later. For example, to create an ext4 file system with the label MY_RAID, execute the following command:

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

    Depending on the requirements of your application or the limitations of your operating system, you can use a different file system type, such as ext3 or XFS (consult your file system documentation for the corresponding file system creation command).

  6. Create a mount point for your RAID array.

    Copy
    [ec2-user ~]$ sudo mkdir -p /mnt/raid
  7. Finally, mount the RAID device on the mount point that you created:

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

    Your RAID device is now ready for use.

  8. (Optional) To mount this Amazon EBS volume on every system reboot, add an entry for the device to the /etc/fstab file.

    1. Create a backup of your /etc/fstab file that you can use if you accidentally destroy or delete this file while you are editing it.

      Copy
      [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
    2. Open the /etc/fstab file using your favorite text editor, such as nano or vim.

    3. Comment out any lines starting with "UUID=" and, at the end of the file, add a new line for your RAID volume using the following format:

      device_label mount_point file_system_type fs_mntops fs_freq fs_passno

      The last three fields on this line are the file system mount options, the dump frequency of the file system, and the order of file system checks done at boot time. If you don't know what these values should be, then use the values in the example below for them (defaults,nofail 0 2). For more information about /etc/fstab entries, see the fstab manual page (by entering man fstab on the command line). For example, to mount the ext4 file system on the device with the label MY_RAID at the mount point /mnt/raid, add the following entry to /etc/fstab.

      注記

      If you ever intend to boot your instance without this volume attached (for example, so this volume could move back and forth between different instances), you should add the nofail mount option that allows the instance to boot even if there are errors in mounting the volume. Debian derivatives, such as Ubuntu, must also add the nobootwait mount option.

      Copy
      LABEL=MY_RAID /mnt/raid ext4 defaults,nofail 0 2
    4. After you've added the new entry to /etc/fstab, you need to check that your entry works. Run the sudo mount -a command to mount all file systems in /etc/fstab.

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

      If the previous command does not produce an error, then your /etc/fstab file is OK and your file system will mount automatically at the next boot. If the command does produce any errors, examine the errors and try to correct your /etc/fstab.

      警告

      Errors in the /etc/fstab file can render a system unbootable. Do not shut down a system that has errors in the /etc/fstab file.

    5. (Optional) If you are unsure how to correct /etc/fstab errors, you can always restore your backup /etc/fstab file with the following command.

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