

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EBS 卷限制
<a name="volume_constraints"></a>

Amazon EBS 卷的大小受块数据存储的物理和算术以及操作系统 (OS) 和文件系统设计者的实施决策的限制。 Amazon 对卷大小施加了额外的限制，以保障其服务的可靠性。

以下部分介绍了限制 EBS 卷的可用大小并提供配置 EBS 卷的建议的最重要因素。

**Topics**
+ [存储容量](#ebs-storage-capacity)
+ [服务限制](#aws_limits)
+ [分区方案](#partitioning)
+ [数据块大小](#block_size)

## 存储容量
<a name="ebs-storage-capacity"></a>

下表总结了 Amazon EBS 上的最常用文件系统的理论和实现存储容量（假定 4096 字节块大小）。


| 分区方案 | 最大可寻址块数  | 理论最大大小（块数 x 块大小） | Ext4 实现的最大大小\$1 | XFS 实现的最大大小\$1\$1 | NTFS 实现的最大大小 | EBS 支持的最大大小 | 
| --- | --- | --- | --- | --- | --- | --- | 
| MBR | 232 | 2 TiB | 2 TiB | 2 TiB | 2 TiB | 2 TiB | 
| GPT | 264 |  64 ZiB  | 1 EiB =242 10TiB （已通过 50 TiB 认证） RHEL7 |  500 TiB （已通过认证 RHEL7）  | 256 TiB | 64 TiB † | 

\$1 [Ext4 Howto](https://archive.kernel.org/oldwiki/ext4.wiki.kernel.org/index.php/Ext4_Howto.html) 和 [Red Hat Enterprise Linux 对文件和文件系统的大小有什么限制？](https://access.redhat.com/solutions/1532)

\$1\$1 [Red Hat Enterprise Linux 对文件和文件系统的大小有什么限制？](https://access.redhat.com/solutions/1532)

† `io2` Block Express 卷最高支持 64TiB 的 GPT 分区。有关更多信息，请参阅 [预调配 IOPS SSD（`io2`）Block Express 卷](provisioned-iops.md#io2-block-express)。

## 服务限制
<a name="aws_limits"></a>

Amazon EBS 将数据中心的大规模分布式存储提取到虚拟硬盘中。对安装在 EC2 实例上的操作系统而言，附加的 EBS 卷似乎是包含 512 字节磁盘扇区的物理硬盘驱动器。操作系统通过其存储管理实用程序对数据块（或集群）分配到这些虚拟扇区进行管理。分配与卷分区方案（例如主启动记录 [MBR] 或 GUID 分区表 [GPT]）一致，并且属于已安装文件系统（ext4、NTFS 等）的功能。

EBS 不知道其虚拟磁盘扇区中包含的数据；它只会确保扇区的完整性。这意味着 Amazon 操作和操作系统操作是相互独立的。在您选择卷大小时，请注意二者的功能和限制，如以下情况中所示：
+ EBS 当前支持最大卷大小 64 TiB。这意味着您可以创建一个大小为 64 TiB 的 EBS 卷，但操作系统是否能够识别该容量的全部取决于其自身的设计特征以及该卷的分区方式。
+ 启动卷必须使用 MBR 或 GPT 分区方案。您从中启动实例的 AMI 决定了启动模式以及随后用于启动卷的分区方案。

  使用 **MBR** 时，启动卷的大小限制为 2 TiB。

  使用 **GPT**，与 (Linux) 或 UEFI 启动模式 (Windows) GRUB2 一起使用时，启动卷的大小可以高达 64 TiB。

  有关更多信息，请参阅 [使 Amazon EBS 卷可供使用](ebs-using-volumes.md)。
+ 2 TiB（2048 GiB）或更大的非启动卷必须使用 GPT 分区表才能访问整个卷。

## 分区方案
<a name="partitioning"></a>

除其他影响之外，分区方案还确定了可以在单个卷中唯一寻址的逻辑数据块的数量。有关更多信息，请参阅[数据块大小](#block_size)。正在使用的常见分区方案是*主启动记录*（MBR）和 *GUID 分区表*（GPT）。这两个方案之间的重要差别可归纳如下。

### MBR
<a name="mbr-partitioning"></a>

MBR 使用 32 位数据结构来存储块地址。这意味着，每个数据块会映射到 232 个可能整数之一。卷的最大可寻址大小由以下公式给出：

```
232 × Block size
```

MBR 卷的块大小通常限制为 512 字节。因此：

```
232 × 512 bytes = 2 TiB
```

工程解决办法是提高 MBR 卷的这个 2 TiB 限制，但还没有被行业广泛采用。因此，Linux 和 Windows 永远不会检测到 MBR 体积大于 2 TiB， Amazon 即使显示其大小更大。

### GPT
<a name="gpt-partitioning"></a>

GPT 使用 64 位数据结构来存储块地址。这意味着，每个数据块会映射到 264 个可能整数之一。卷的最大可寻址大小由以下公式给出：

```
264 × Block size
```

GPT 卷的块大小通常限制为 4,096 字节。因此：

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

现实世界中的计算机系统不支持任何接近这个理论最大值的值。实施的文件系统大小目前上限为 50TiB（对于 ext4）和 256TiB（对于 NTFS）。

## 数据块大小
<a name="block_size"></a>

现代硬盘驱动器上的数据存储是通过*逻辑块寻址* 来管理的，逻辑块寻址是一个抽象层，它允许操作系统在逻辑块中读取和写入数据，而无需详细了解底层硬件。操作系统依靠存储设备将块映射到其物理扇区，并使用是扇区大小数倍的数据块将数据读写到磁盘。

Amazon EBS 根据以下因素向操作系统公布 512 字节或 4,096 字节（4 KiB）物理扇区。

1. Amazon EC2 实例类型

1. 操作系统

1.  NVMe 驱动程序版本

仅在所有因素都支持的情况下，Amazon EBS 才会公布 4KiB 物理扇区。如果其中任何一个因素不支持 4 KiB 物理扇区，Amazon EBS 将公布 512 字节物理扇区。

**Amazon EC2 实例类型支持**  
下表显示了 Amazon EBS 针对不同 Amazon EC2 实例类型公布的扇区大小。


| 实例类型 | Linux | Windows | 
| --- | --- | --- | 
| 所有基于 Xen 的实例类型 | Amazon EBS 始终公告 512 字节物理扇区 | 
| A1 \$1 c5 \$1 c5a \$1 c5ad \$1 c5d \$1 c5n \$1 c6g \$1 c6gD \$1 c6gD \$1 \$1 d3 \$1 d3en \$1 g4ad \$1 g4dN \$1 G5 \$1 g5g \$1 i3 DL1 \$1 i3en \$1 Inf1 \$1 m5 \$1 m5a \$1 m5ad \$1 m5d \$1 m5d \$1 m5n \$1 m6gD \$1 m5zn \$1 m6gD \$1 p3dn \$1 p4d \$1 p4de \$1 R5 \$1 r5a \$1 r5ad \$1 r5ad \$1 r5d \$1 r5dn \$1 r5n \$1 r6g \$1 r6gD \$1 t3 \$1 t3a \$1 t4g \$1 u-12tb1 \$1 u-18tb1 \$1 u-3tb1 \$1 u-9tb1 \$1 x2gd \$1 z1d VT1  | Amazon EBS 始终公告 512 字节物理扇区 | Amazon EBS 公告 512 字节或 4 KiB 物理扇区 1 | 
| 所有其他基于 Nitro 的实例 | Amazon EBS 公告 512 字节或 4 KiB 物理扇区 1 | 

1 取决于操作系统支持情况。参阅以下 部分。

**操作系统支持**  
下表提供了示例操作系统以及 Amazon EBS 公告的相应物理扇区大小。这**并非是详尽的列表**。我们建议您在操作系统中验证 Amazon EBS 公布的物理扇区大小。




| 操作系统 | 公布的物理扇区大小 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/ebs/latest/userguide/volume_constraints.html)  | 512 字节 | 
|  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/ebs/latest/userguide/volume_constraints.html)  | 4 KiB | 

1 对于 Windows 工作负载，请确保使用的是最新版本的[Amazon NVMe 驱动程序](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。Amazon EBS 宣传的 Amazon NVMe 驱动程序版本为 1.4.1 及更高版本的 4 KiB 物理扇区。

### 非默认块大小
<a name="block-size-additional"></a>

逻辑数据块的行业默认大小当前为 4 KiB。由于某些工作负载受益于较小或较大的块大小，因此文件系统支持可在格式化期间指定的非默认块大小。应使用非默认块大小的情况（如优化）不在本主题的范围内，但块大小的选择会对卷的存储容量产生影响。下表显示了理论存储容量随不同块大小的变化。但是，请注意，EBS 对卷大小的限制（io2 Block Express 为 64 TiB）当前等于 16 KiB 数据块支持的最大大小。


| 块大小 | 最大卷大小 | 
| --- | --- | 
| 4KiB（默认） | 16 TiB | 
| 8 KiB | 32 TiB | 
| 16 KiB | 64 TiB | 
| 32 KiB | 128 TiB | 
| 64KiB（最大） | 256 TiB | 