

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EBS および RAID の構成
<a name="raid-config"></a>

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

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

**Topics**
+ [RAID 設定オプション](#raid-config-options)
+ [RAID 0 アレイの作成](#create-raid-array)
+ [RAID アレイでのボリュームのスナップショットの作成](#ebs-snapshots-raid-array)

## RAID 設定オプション
<a name="raid-config-options"></a>

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/秒の、1,000 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 は書き込みパフォーマンスの向上をもたらしません。

## RAID 0 アレイの作成
<a name="create-raid-array"></a>

次の手順に従って RAID 0 アレイを作成します。

**考慮事項**
+ この手順を実行する前に、RAID 0 アレイのサイズおよびプロビジョニングする IOPS 数を決定してください。
+ アレイに作成するボリュームのサイズと IOPS パフォーマンス値は同一にしてください。EC2 インスタンスで利用可能な帯域幅を超えるアレイを作成しないよう注意してください。
+ RAID ボリュームからの起動は避ける必要があります。デバイスの 1 つが失敗した場合、オペレーティングシステムを起動できなくなる場合があります。

### Linux インスタンス
<a name="create-raid-array-linux"></a>

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

1. アレイに Amazon EBS ボリュームを作成します。詳細については、「[Amazon EBS ボリュームの作成](ebs-creating-volume.md)」を参照してください。

1. アレイをホストするインスタンスに Amazon EBS ボリュームをアタッチします。詳細については、[Amazon EBS ボリュームを Amazon EC2 インスタンスにアタッチ](ebs-attaching-volume.md)を参照してください。

1. **mdadm** コマンドを使用して、新しくアタッチした Amazon EBS ボリュームから論理 RAID デバイスを作成します。[*number\$1of\$1volumes*] に、構成するアレイ内のボリュームの数を入れ、*device\$1name* に、アレイ内の各ボリュームのデバイス名 (`/dev/xvdf` など) を入れます。*MY\$1RAID* を、配列の一意の名前で置き換えることもできます。
**注記**  
インスタンスのデバイス名を見つけるには、**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
   ```
**ヒント**  
`mdadm: command not found` エラーが発生した場合は、`sudo yum install mdadm` コマンドを使用して mdadm をインストールします。

1.  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
   ```

1. RAID アレイにファイルシステムを作成し、それを後でマウントするときに、使用するラベルをそのファイルシステムに提供します。例えば、ext4 ファイルシステムのラベル *MY\$1RAID* で作成するには、次のコマンドを実行します。

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

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

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

   ```
   [ec2-user ~]$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
   ```
**注記**  
Amazon Linux 以外の Linux ディストリビューションを使用している場合は、このコマンドを変更する必要が生じることがあります。例えば、ファイルを別の場所に配置することや、`--examine` パラメータを追加することが必要な場合があります。詳細については、Linux インスタンスで **man mdadm.conf** を実行します。

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

   ```
   [ec2-user ~]$ sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
   ```

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

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

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

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

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

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

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

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

   1. お好みのテキストエディタ (`/etc/fstab` や **nano** など) を使用して、**vim** ファイルを開きます。

   1. 「`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\$1RAID を持つデバイスに ext4 ファイルシステムをマウントするには、`/etc/fstab` に次のエントリを追加します。
**注記**  
このボリュームをアタッチしないでインスタンスを起動することを目的としている場合 (例えば、このボリュームが異なるインスタンス間で移動される可能性がある場合)、`nofail` マウントオプションを追加し、ボリュームのマウントでエラーが発生してもインスタンスが起動できるようにしてください。Debian から派生した OS (Ubuntu など) では、`nobootwait` マウントオプションも追加する必要があります。

      ```
      LABEL=MY_RAID       /mnt/raid   ext4    defaults,nofail        0       2
      ```

   1. 新しいエントリを `/etc/fstab` に追加した後、エントリが正しく動作するかを確認する必要があります。**sudo mount -a** コマンドを使用して、すべてのファイルシステムを `/etc/fstab` にマウントします。

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

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

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

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

### Windows インスタンス
<a name="create-raid-array-windows"></a>

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

1. アレイに Amazon EBS ボリュームを作成します。詳細については、「[Amazon EBS ボリュームの作成](ebs-creating-volume.md)」を参照してください。

1. アレイをホストするインスタンスに Amazon EBS ボリュームをアタッチします。詳細については、[Amazon EBS ボリュームを Amazon EC2 インスタンスにアタッチ](ebs-attaching-volume.md)を参照してください。

1. Windows インスタンスに接続します。詳細については、「[Windows インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)」を参照してください。

1. コマンドプロンプトを開いて、**diskpart** コマンドを入力します。

   ```
   diskpart
   
   Microsoft DiskPart version 6.1.7601
   Copyright (C) 1999-2008 Microsoft Corporation.
   On computer: WIN-BM6QPPL51CO
   ```

1. `DISKPART` プロンプトで、次のコマンドを使用して、利用できるディスクの一覧を表示できます。

   ```
   DISKPART> list disk
   
     Disk ###  Status         Size     Free     Dyn  Gpt
     --------  -------------  -------  -------  ---  ---
     Disk 0    Online           30 GB      0 B
     Disk 1    Online            8 GB      0 B
     Disk 2    Online            8 GB      0 B
   ```

   アレイで使用するディスクを確認し、ディスクの番号を書き留めます。

1. <a name="windows_raid_disk_step"></a>アレイで使用する各ディスクは、既存のボリュームを含まないオンラインの動的なディスクである必要があります。ベーシックディスクを動的なディスクに変換する手順と既存のボリュームを削除する手順は以下のとおりです。

   1. 次のコマンドを使用して、アレイで利用するディスクを選択します。*n* を利用するディスクの番号に置き換えます。

      ```
      DISKPART> select disk n
      
      Disk n is now the selected disk.
      ```

   1. 選択したディスクが `Offline` と表示されている場合は、**online disk** コマンドを実行してオンラインにします。

   1. 選択したディスクにおいて、前述の`Dyn` コマンドの出力の **list disk** 列にアスタリスクが付いていない場合、動的なディスクに変換する必要があります。

      ```
      DISKPART> convert dynamic
      ```
**注記**  
ディスクが書き込み禁止であることを示すエラーが表示された場合は、**ATTRIBUTE DISK CLEAR READONLY** コマンドを使って読み取り専用フラグをクリアしてから、動的ディスク変換をもう一度試してください。

   1. **detail disk** コマンドを使用して、選択したディスクの既存のボリュームを確認します。

      ```
      DISKPART> detail disk
      
      XENSRC PVDISK SCSI Disk Device
      Disk ID: 2D8BF659
      Type   : SCSI
      Status : Online
      Path   : 0
      Target : 1
      LUN ID : 0
      Location Path : PCIROOT(0)#PCI(0300)#SCSI(P00T01L00)
      Current Read-only State : No
      Read-only  : No
      Boot Disk  : No
      Pagefile Disk  : No
      Hibernation File Disk  : No
      Crashdump Disk  : No
      Clustered Disk  : No
      
        Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
        ----------  ---  -----------  -----  ----------  -------  ---------  --------
        Volume 2     D   NEW VOLUME   FAT32  Simple      8189 MB  Healthy
      ```

      ディスクのボリュームの番号を書き留めます。この例では、ボリュームの番号は 2 です。ボリュームがない場合、次の手順は省略できます。

   1. (前の手順でボリュームの存在が確認された場合のみ) 前の手順で確認したディスクで既存のボリュームを選択して削除します。
**警告**  
この手順により、ボリュームの既存データがすべて失われます。

      1. ボリュームを選択します。*n* をボリュームの番号と置き換えてください。

         ```
         DISKPART> select volume n
         Volume n is the selected volume.
         ```

      1. ボリュームを削除します。

         ```
         DISKPART> delete volume
         
         DiskPart successfully deleted the volume.
         ```

      1. 選択したディスクで削除する必要があるボリュームごとに以下の手順を繰り返します。

   1. アレイで使用するディスクごとに[Step 6](#windows_raid_disk_step)を繰り返します。

1. 使用するディスクが動的なディスクであるかどうかを確認します。このケースでは、ディスク 1 と 2 を RAID ボリュームのために使用しています。

   ```
   DISKPART> list disk
   
     Disk ###  Status         Size     Free     Dyn  Gpt
     --------  -------------  -------  -------  ---  ---
     Disk 0    Online           30 GB      0 B
     Disk 1    Online            8 GB      0 B   *
     Disk 2    Online            8 GB      0 B   *
   ```

1. RAID アレイを作成します。Windows では、RAID 0 ボリュームはストライプ化されたボリュームとして参照されます。

   次のコマンドにより、ディスク 1 とディスク 2 上にストライプ化されたボリュームアレイを作成します (アレイをストライプ化するには `stripe` オプションをメモしてください)。

   ```
   DISKPART> create volume stripe disk=1,2
   DiskPart successfully created the volume.
   ```

1. 新しいボリュームを確認します。

   ```
   DISKPART> list volume
   
     DISKPART> list volume
   
     Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
     ----------  ---  -----------  -----  ----------  -------  ---------  --------
     Volume 0     C                NTFS   Partition     29 GB  Healthy    System
     Volume 1                      RAW    Stripe        15 GB  Healthy
   ```

   `Type` 列には、Volume 1 が `stripe` ボリュームであることが示されていることに注意してください。

1. ボリュームを選択してフォーマットし、ボリュームの使用を開始できるようにします。

   1. フォーマットするボリュームを選択します。*n* をボリュームの番号に置き換えます。

      ```
      DISKPART> select volume n
      
      Volume n is the selected volume.
      ```

   1. ボリュームをフォーマットします。
**注記**  
完全フォーマットを実行するには、`quick` オプションを省略します。

      ```
      DISKPART> format quick recommended label="My new volume"
      
        100 percent completed
      
      DiskPart successfully formatted the volume.
      ```

   1. ボリュームに使用可能な任意のドライブ文字を割り当てます。

      ```
      DISKPART> assign letter f
      
      DiskPart successfully assigned the drive letter or mount point.
      ```

   新しいボリュームを使用する準備ができました。

## RAID アレイでのボリュームのスナップショットの作成
<a name="ebs-snapshots-raid-array"></a>

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

RAID 配列の一貫性のあるスナップショットを作成するには、[EBS マルチボリュームスナップショット](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html)を使用します。マルチボリュームスナップショットを使用すると、EC2 インスタンスにアタッチされている複数の EBS ボリュームにわたって、ポイントインタイムで、データ調整済みの Crash-consistent スナップショットを取得できます。スナップショットは複数の EBS ボリュームにわたって自動的に作成されるため、一貫性を保証できるように、ボリューム間で調整してインスタンスを停止する必要はありません。詳細については、「[Create Amazon EBS snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-snapshot.html)」のマルチボリュームスナップショットを作成するステップを参照してください。