すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linuxインスタンス用のRAIDアレイの作成

最終更新日:Aug 27, 2024

RAIDは、複数のディスクをディスクアレイグループに結合します。 単一のディスクと比較して、RAIDアレイは、改善された容量、読み取り /書き込み帯域幅、信頼性、および可用性を提供します。

前提条件

同じサイズとカテゴリの複数のデータディスクが作成され、Elastic Compute Service (ECS) インスタンスにアタッチされます。 データディスクの作成とアタッチの方法については、「ディスクの作成」および「データディスクのアタッチ」をご参照ください。

使用上の注意

RAIDレベル

次の表に、いくつかの一般的なRAIDレベルの利点、欠点、および使用シナリオを示します。

レベル

利点

デメリット

シナリオ

RAID 0 (ストライピング)

データストライピングと並列読み取り /書き込み操作を提供し、パフォーマンスを向上させます。

説明

ディスクストライピングは、データを固定サイズを有するブロック (ストライプ) に分割し、複数のディスクにわたってデータブロックを割り当てるプロセスである。

冗長性はありません。 1つのディスクに障害が発生すると、RAID 0アレイ内のすべてのデータが失われます。

一時的なデータストレージやキャッシュなど、高いパフォーマンスを必要とするがデータの冗長性を必要としないシナリオに適しています。

RAID 1 (ミラーリング)

ミラーデータを使用することで、データの信頼性を高めます。 すべてのデータは複数のディスクにレプリケートされます。 1つのディスクに障害が発生しても、データは引き続き使用できます。

RAID1はミラーデータを保存するために少なくとも2倍のディスク容量を必要とするため、コストが高くなります。

データベースやファイルサーバーなど、高いデータ保護と信頼性を必要とするアプリケーションに適しています。

RAID 10

RAID 1とRAID 0を組み合わせ、データ冗長性と高性能を提供し、信頼性が高く、読み書きパフォーマンスが向上します。

RAID 10はミラーデータを保存するために2倍のディスク容量を必要とするため、コストが高くなります。 少なくとも4つのディスクが必要です。

高いパフォーマンスと冗長性を必要とするアプリケーションに適しています。

RAIDレベルを選択するときは、データ保護要件、パフォーマンス要件、使用可能なディスク容量、およびコストを考慮してください。 さまざまなRAIDレベルの長所と短所を評価し、アプリケーション要件に基づいてRAIDレベルを選択することを推奨します。

次の図は、異なるRAIDレベルのRAIDアレイを使用して、データブロックA、B、C、D、E、およびFを順番に格納する方法を示しています。

image
説明

複数のディスクを使用してRAIDアレイを構成し、ディスク容量と読み取り /書き込み帯域幅を増やす場合は、インスタンスのディスク帯域幅の制限に注意してください。 さまざまなインスタンスタイプのディスク帯域幅制限については、「インスタンスファミリーの概要」をご参照ください。

RAIDストライプサイズ

適切なストライプサイズは、最適なアプリケーション実践を実現するのに役立ちます。 最適なストライプサイズは、環境とアプリケーションによって異なります。 ストライプサイズを使用する前に、テストとパフォーマンス評価を実行して最適なストライプサイズを決定することを推奨します。

ワークロードの種類、I/Oモード、および特定のシステム要件に基づいて、次のストライプサイズを推奨します。

  • ほとんどの汎用ワークロードでは、ストライプサイズを64 KBまたは128 KBに設定することを推奨します。 ほとんどの場合、2つのストライプサイズは、バランスの取れた読み取り /書き込み性能などの良好な性能を提供する。

  • 主にシーケンシャルな読み取り (大きなファイル転送やビデオ編集など) を伴うワークロードでは、より大きなストライプサイズ (256 KBや512 KBなど) でパフォーマンスが向上します。

  • 主にランダムな読み取りを伴うワークロード (データベースアプリケーションなど) の場合、ストライプサイズを小さくすると (32 KBなど) パフォーマンスが向上します。

重要

ストライプサイズは、過度に小さくすることはできない。 ストライプサイズが小さすぎると、次の問題が発生する可能性があります。

  • ファイルの断片化はディスク上で発生する可能性があります。 その結果、ディスクスペースが無駄になります。

  • スループット帯域幅の制限に達する前に、ディスクのIOPS容量が制限に達する可能性があります。 ストライプサイズが大きいほど、シーケンシャル読み取りワークロードのスループットが高くなります。

ディスクスナップショットの制限

スナップショットを使用してRAIDアレイ内のディスク上のデータをバックアップする場合は、スナップショットの一貫性を確認してください。 複数の非同期スナップショットからRAIDアレイを復元すると、アレイの整合性に影響します。

RAIDシナリオでは、スナップショット一貫性のあるグループを使用することを推奨します。 このようにして、複数のディスクからのデータを同じ時点に復元して、データの一貫性と信頼性を確保できます。 詳細については、「スナップショット一貫性のあるグループ」をご参照ください。

手順

このセクションでは、Linuxで構築されたmdadmコマンドを使用して、Ubuntu 22.04を実行するECSインスタンスに接続されたデータディスク用に /dev/md0という名前のRAIDアレイを作成する方法について説明します。

  1. ECSインスタンスに接続します。

    接続方法の詳細については、「接続方法の概要」をご参照ください。

  2. 次のコマンドを実行して、インスタンス上のすべてのディスクの情報を表示します。

    lsblk

    以下のようなコマンド出力が返されます。

    image.png

  3. mdadmコマンドを実行し、/dev/md0 RAIDアレイを作成します。

    ビジネス要件に基づいて、RAID 0、RAID 1、またはRAID 10レベルのRAIDアレイを作成できます。

    説明

    mdadmツールがインストールされていないことを確認された場合は、sudo apt-get install mdadmコマンドを実行してmdadmツールをインストールします。

    RAID 0レベル

    sudo mdadm -- create /dev/md0 -- level=0 -- raid-devices=5 -- chunk=512 /dev/vd[bcdef]
    • -- level=0: RAID0レベルを指定します。

    • -- raid-devices=5: RAIDアレイが5つのディスクで構成されていることを指定します。

    • -- chunk=512: RAIDアレイのストライプサイズが512 KBであることを指定します。 ビジネス要件に基づいてストライプサイズを指定します。

    • /dev/vd[bcdef]: RAIDアレイ内の5つのディスク /dev/vdb、/dev/vdc、/dev/vdd、/dev/vde、および /dev/vdfを指定します。

    以下のようなコマンド出力が返されます。

    image.png

    RAID 1レベル

    sudo mdadm -- create /dev/md0 -- level=1 -- raid-devices=2 /dev/vd[bc]
    • -- level=1: RAID1レベルを指定します。

    • -- raid-devices=2: RAIDアレイが2つのディスクで構成されていることを指定します。

    • /dev/vd[bc]: RAIDアレイ内の2つのディスク /dev/vdbと /dev/vdcを指定します。

    RAID 10レベル

    sudo mdadm -- create /dev/md0 -- level=10 -- raid-devices=4 -- chunk=512 /dev/vd[bcde]
    • -- level=10: RAID10レベルを指定します。

    • -- raid-devices=4: RAIDアレイが4つのディスクで構成されていることを指定します。

    • -- chunk=512: RAIDアレイのストライプサイズが512 KBであることを指定します。 ビジネス要件に基づいてストライプサイズを指定します。

    • /dev/vd[bcde]: RAIDアレイ内の4つのディスク /dev/vdb、/dev/vdc、/dev/vdd、/dev/vdeを指定します。

  4. 次のコマンドを実行して、/dev/md0 RAIDアレイの情報を表示します。

    sudo mdadm -- detail /dev/md0

    以下のようなコマンド出力が返されます。

    image.png

  5. 次のコマンドを実行して、RAIDアレイ上にファイルシステムを作成します。 この例では、ext4ファイルシステムが作成されます。

    別のタイプのファイルシステムを作成できます。

    sudo mkfs.ext4 /dev/md0

    以下のようなコマンド出力が返されます。

    image.png

  6. 次のコマンドを実行して、RAIDアレイの情報を含む構成ファイルを作成し、インスタンスの起動時に自動的に再アセンブルされるようにRAIDアレイを構成します。

    sudo mdadm -- detail -- scan | sudo tee -a /etc/mdadm/mdadm.conf
  7. ファイルシステムをマウントします。

    1. (オプション) 次のコマンドを実行して、マウントポイントを作成します。 この例では、/media/raid0という名前のマウントポイントが作成されます。

      sudo mkdir /media/raid0
      説明

      または、/mntなどの既存のディレクトリにファイルシステムをマウントすることもできます。

    2. ファイルシステムをマウントします。 この例では、/dev/md0ファイルシステムが /media/raid0マウントポイントにマウントされています。

      mountコマンドを実行してファイルシステムをマウントする場合は、対応するマウントパラメーターを指定して、データセキュリティとファイルシステムのパフォーマンスの要件を満たします。 詳細については、「マウントコマンドを実行してExt4ファイルシステムをマウントする」をご参照ください。

      • (推奨) ファイルシステムのデータセキュリティとパフォーマンスに中程度の要件がある場合は、マウントパラメーターを指定しないでください。

        sudo mount /dev/md0 /media/raid0
      • ファイルシステムのデータセキュリティに対する要件が高く、ファイルシステムのパフォーマンスに対する要件が低い場合は、次のマウントパラメーターを指定します。

        sudo mount -o rw,atime,sync,barrier,data=journal /dev/md0 /media/raid0
      • ファイルシステムのパフォーマンスに対する要件が高く、ファイルシステムのデータセキュリティに対する要件が低い場合は、次のマウントパラメーターを指定します。

        sudo mount -o defaults,noatime,nodiratime,nobarrier,nodelalloc,data=writeback /dev/md0 /media/raid0
    3. 次のコマンドを実行して、RAIDアレイのマウント情報を表示します。

      df -h

      次のコマンド出力は、ファイルシステムが指定されたマウントポイントにマウントされていることを示します。

      image.png

  8. システム起動時に自動的にマウントされるようにRAIDアレイを設定します。

    すべてのシステムブートでRAIDアレイをマウントするには、RAIDアレイのエントリを /etc/fstabファイルに追加します。

    1. 次のコマンドを実行して、RAIDアレイのマウントエントリを /etc/fstabファイルに追加します。

      sudo sh -c "echo `blkid /dev/md0 | awk '{print $2}' | sed 's/\"//g'` /media/raid0 ext4 defaults 0 0 >> /etc/fstab"
      • /dev/md0: RAIDアレイの名前を指定します。

      • /media/raid0: マウントポイントを指定します。 RAIDアレイを別のマウントポイントにマウントする場合は、/media/raid0をマウントポイントに置き換えます。

      • ext4: RAIDアレイのファイルシステムタイプを指定します。 ext4を実際のファイルシステムタイプに置き換えます。

      • defaults: ファイルシステムのマウントパラメーターを指定します。 データセキュリティとファイルシステムのパフォーマンスの要件を満たすように、対応するマウントパラメーターを指定します。 詳細については、「マウントコマンドを実行してExt4ファイルシステムをマウントする」をご参照ください。

      説明

      RAIDアレイをマウントせずにインスタンスを起動する場合は、nofailマウントオプションを追加します。 nofailマウントオプションを使用すると、ディスクのインストール中にエラーが発生した場合でもインスタンスを起動できます。 インスタンスがUbuntuオペレーティングシステムを実行している場合は、nobootwaitマウントオプションも追加する必要があります。

    2. 次のコマンドを実行して、RAIDアレイのマウントエントリが追加されているかどうかを確認します。

      cat /etc/fstab

      以下のようなコマンド出力が返されます。 マウントエントリを /etc/fstabファイルに追加すると、コマンド出力に /media/raid0が表示されます。

      image.png

    3. 次のコマンドを実行して、/etc/fstabファイル内のすべてのファイルシステムをマウントします。エラーが報告されていない場合、/etc/fstabファイルはOKであり、RAIDアレイのファイルシステムは次回の起動時に自動的にマウントされます。

      sudo mount -a
    4. 次のコマンドを実行して、ファイルシステムが期待どおりにマウントされているかどうかを確認します。

      df -Th

      以下のようなコマンド出力が返されます。 ファイルシステムがマウントされている場合は、ファイルシステムの情報が表示されます。

      image.png