EBS ボリュームのサイズと設定の制限 - Amazon EBS

EBS ボリュームのサイズと設定の制限

Amazon EBS ボリュームのサイズ変更は、ブロックデータストレージの物理とアリスメティック、オペレーティングシステム (OS) とファイルシステムの設計者の実装に関する意思決定によって制限されます。AWS では、サービスの信頼性を保護するためにボリュームサイズの制約を追加しています。

次のセクションでは、EBS ボリュームの使用可能サイズを制限する最も重要な要素と、EBS ボリュームを設定するための推奨事項について説明します。

ストレージキャパシティ

次の表は、Amazon EBS で最も一般的に使用されているファイルシステムに実装された理論的なストレージ容量の概要を示しています (4,096 バイトのブロックサイズと仮定)。

パーティションスキーム アドレス可能な最大ブロック 理論的な最大サイズ (ブロック x ブロックサイズ) Ext4 に実装される最大サイズ* XFS に実装される最大サイズ** NTFS に実装される最大サイズ EBS による最大サポート数
MBR 232 2 TiB 2 TiB 2 TiB 2 TiB 2 TiB
GPT 264

64 ZiB

1 EiB =

1024 2TiB

(RHEL7 で認証されている 50 TiB)

500 TiB

(RHEL7 で認証)

256 TiB 64 TiB†

: https://ext4.wiki.kernel.org/index.php/Ext4_Howto、および https://access.redhat.com/solutions/1532

** https://access.redhat.com/solutions/1532

io2 Block Express ボリュームは、最大 64 TiB のGPT パーティションをサポートします。詳細については、プロビジョンド IOPS SSD (io2) Block Express ボリュームを参照してください。

サービスの制約事項

Amazon EBS では、データセンターの大規模な分散ストレージを仮想ハードディスクドライブに抽象化しています。EC2 インスタンスにインストールされたオペレーティングシステムにとって、アタッチされた EBS ボリュームは、512 バイトのディスクセクタを含む物理ハードディスクドライブのように見えます。OS は、ストレージ管理ユーティリティを使用して、データブロック (またはクラスター) をその仮想セクタに割り当てます。この割り当ては、マスターブートレコード (MBR) または GUID パーティションテーブル (GPT) などのボリュームパーティションスキームに準拠しており、インストールされているファイルシステム (ext4、NTFS など) の機能の範囲内で行うことができます。

EBS では、仮想ディスクセクタ内のデータは認識されません。セクタの整合性の保護のみ行われます。そのため、AWS アクションと OS アクションは、お互いに独立していることになります。ボリュームサイズを選択する場合は、次のように機能と制限の両方に注意してください。

  • EBS では現在、最大 64 TiB のボリュームサイズがサポートされています。つまり、最大 64 TiB の EBS ボリュームを作成することはできますが、OS でその容量が認識されるかどうかは、そのOS自体の設計特性と、ボリュームのパーティションスキームによって異なります。

  • ブートボリュームは、MBR または GPT パーティションスキームのいずれかを使用する必要があります。インスタンスを起動する AMI はブートモードを決定し、その後はブートボリュームに使用するパーティションスキームを決定します。

    MBR を使用すると、ブートボリュームのサイズは 2 TiB に制限されます。

    GPT を使用すると、GRUB2 (Linux) または UEFI ブートモード (Windows) と使用した場合、ブートボリュームは最大 64 TiB のサイズにすることができます。

    詳細については、「Amazon EBS ボリュームを使用できるようにする」を参照してください。

  • 2 TiB (2048 GiB) 以上の非ブートボリュームは、ボリューム全体にアクセスするには GPT パーティションテーブルを使用する必要があります。

パーティションスキーム

他にも影響がある中で、このパーティションスキームは、単一ボリュームで一意にアドレス解決できる論理データブロックの数を決定します。詳細については、データブロックサイズを参照してください。使用されている一般的なパーティショニングスキームは、[Master Boot Record] マスターブートレコード (MBR) と GUID パーティションテーブル (GPT) です。これらのパーティションスキームの重要な違いは次のようにまとめることができます。

MBR

MBR では、32 ビットのデータ構造を使用して、ブロックアドレスを格納します。これは、各データブロックが、正の整数 232 のいずれかにマッピングされることを意味します。アドレス可能なボリュームの最大サイズは、次の式により得られます。

232 × Block size

MBR ボリュームのブロックサイズは、通常 512 バイトに制限されています。したがって、

232 × 512 bytes = 2 TiB

この MBR ボリュームの 2 TiB の制限を増やすための回避策は、一般的に広く普及していません。したがって、AWS で大きな値が示されていたとしても、Linux や Windows で、2 TiB 以上の MBR が検知されることはありません。

GPT

GPT では、64 ビットのデータ構造を使用して、ブロックアドレスを格納します。これは、各データブロックが、正の整数 264 のいずれかにマッピングされることを意味します。アドレス可能なボリュームの最大サイズは、次の式により得られます。

264 × Block size

GPT ボリュームのブロックサイズは、一般的に 4,096 バイトです。したがって、

264 × 4,096 bytes
   = 264 × 212 bytes
   = 270 × 26 bytes
   = 64 ZiB

実際のコンピュータシステムでは、この理論上の最大値のような大きな値はサポートされていません。実装されたファイルシステムのサイズは現在、ext4 では 50 TiB、NTFS では 256 TiB に制限されています。

データブロックサイズ

現代のハードドライブ上のデータストレージは、論理ブロックアドレスや、オペレーティングシステムで基礎となるハードウェアをほとんど把握することなく論理ブロック内のデータを読み書きできる抽象化レイヤーによって管理されています。OS は、ストレージデバイスを使用して、このブロックを物理セクタにマッピングしています。EBS は 512 バイトのセクタをオペレーティングシステムに割り当てます。これにより、セクタサイズの倍数であるデータブロックを使用してディスクへのデータの読み書きを行うことができます。

論理データブロックの一般的なデフォルトサイズは、現在 4,096 バイト (4 KiB) です。ワークロードによっては、ブロックサイズが小さいまたは大きい方がメリットを得られるため、ファイルシステムはデフォルト以外のブロックサイズをサポートしています。このサイズはフォーマット時に指定できます。デフォルト以外のブロックサイズのシナリオは、このトピックの対象外ですが、指定したブロックサイズによっては、ボリュームのストレージキャパシティーに影響を及ぼす場合があります。次の表に、ブロックサイズの機能としてストレージキャパシティーを示します。

ブロックサイズ 最大ボリュームサイズ
4 KiB (デフォルト) 16 TiB
8 KiB 32 TiB
16 KiB 64 TiB
32 KiB 128 TiB
64 KiB (最大) 256 TiB

EBS で指定されているボリュームサイズ (64 TiB) の制限は、現在 16 KiB のデータブロックで使用できる最大サイズと同等です。