Amazon EBS および RAID の構成 - Amazon EBS

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

Amazon EBS および RAID の構成

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

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

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

RAID 0 アレイの作成

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

考慮事項
  • この手順を実行する前に、RAID 0 アレイのサイズおよびプロビジョニングする IOPS 数を決定してください。

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

  • RAID ボリュームからの起動は避ける必要があります。デバイスの 1 つが失敗した場合、オペレーティングシステムを起動できなくなる場合があります。

Linux で RAID 0 アレイを作成するには
  1. アレイに Amazon EBS ボリュームを作成します。詳細については、「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
    ヒント

    mdadm: command not found エラーが発生した場合は、sudo yum install mdadm コマンドを使用して mdadm をインストールします。

  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
Windows で RAID 0 アレイを作成するには
  1. アレイに Amazon EBS ボリュームを作成します。詳細については、「Amazon EBSボリュームを作成する」を参照してください。

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

  3. Windows インスタンスに接続します。詳細については、「Windows インスタンスに接続する」を参照してください。

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

    diskpart Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. On computer: WIN-BM6QPPL51CO
  5. 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

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

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

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

      DISKPART> select disk n Disk n is now the selected disk.
    2. 選択したディスクが Offline と表示されている場合は、online disk コマンドを実行してオンラインにします。

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

      DISKPART> convert dynamic
      注記

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

    4. 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 です。ボリュームがない場合、次の手順は省略できます。

    5. (前の手順でボリュームの存在が確認された場合のみ) 前の手順で確認したディスクで既存のボリュームを選択して削除します。

      警告

      この手順により、ボリュームの既存データがすべて失われます。

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

        DISKPART> select volume n Volume n is the selected volume.
      2. ボリュームを削除します。

        DISKPART> delete volume DiskPart successfully deleted the volume.
      3. 選択したディスクで削除する必要があるボリュームごとに以下の手順を繰り返します。

    6. アレイで使用するディスクごとにステップ 6を繰り返します。

  7. 使用するディスクが動的なディスクであるかどうかを確認します。このケースでは、ディスク 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 *
  8. RAID アレイを作成します。Windows では、RAID 0 ボリュームはストライプ化されたボリュームとして参照されます。

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

    DISKPART> create volume stripe disk=1,2 DiskPart successfully created the volume.
  9. 新しいボリュームを確認します。

    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 ボリュームであることが示されていることに注意してください。

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

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

      DISKPART> select volume n Volume n is the selected volume.
    2. ボリュームをフォーマットします。

      注記

      完全フォーマットを実行するには、quick オプションを省略します。

      DISKPART> format quick recommended label="My new volume" 100 percent completed DiskPart successfully formatted the volume.
    3. ボリュームに使用可能な任意のドライブ文字を割り当てます。

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

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

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

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

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