Amazon EBS 卷限制
Amazon EBS 卷的大小受制于块数据存储的物理和算术特性,以及操作系统(OS)和文件系统设计者的实现决策。AWS 对卷大小施加了额外的限制,以保证其服务的可靠性。
以下部分介绍了限制 EBS 卷的可用大小并提供配置 EBS 卷的建议的最重要因素。
存储容量
下表总结了 Amazon EBS 上的最常用文件系统的理论和实现存储容量(假定 4096 字节块大小)。
分区方案 | 最大可寻址块数 | 理论最大大小(块数 x 块大小) | Ext4 实现的最大大小* | XFS 实现的最大大小** | NTFS 实现的最大大小 | EBS 支持的最大大小 |
---|---|---|---|---|---|---|
MBR | 232 | 2 TiB | 2 TiB | 2 TiB | 2 TiB | 2 TiB |
GPT | 264 |
64 ZiB |
1 EiB = 242 10TiB(在 RHEL7 上认证的 50TiB) |
500 TiB (在 RHEL7 上认证) |
256 TiB | 64 TiB † |
、https://ext4.wiki.kernel.org/index.php/Ext4_Howto
** https://access.redhat.com/solutions/1532
† io2
Block Express 卷最高支持 64TiB 的 GPT 分区。有关更多信息,请参阅 预调配 IOPS SSD(io2)Block Express 卷。
服务限制
Amazon EBS 将数据中心的大规模分布式存储提取到虚拟硬盘中。对安装在 EC2 实例上的操作系统而言,附加的 EBS 卷似乎是包含 512 字节磁盘扇区的物理硬盘驱动器。操作系统通过其存储管理实用程序对数据块(或集群)分配到这些虚拟扇区进行管理。分配与卷分区方案(例如主启动记录 [MBR] 或 GUID 分区表 [GPT])一致,并且属于已安装文件系统(ext4、NTFS 等)的功能。
EBS 不知道其虚拟磁盘扇区中包含的数据;它只会确保扇区的完整性。这意味着 AWS 操作和操作系统操作是彼此独立的。在您选择卷大小时,请注意二者的功能和限制,如以下情况中所示:
-
EBS 当前支持最大卷大小 64 TiB。这意味着您可以创建一个大小为 64 TiB 的 EBS 卷,但操作系统是否能够识别该容量的全部取决于其自身的设计特征以及该卷的分区方式。
-
启动卷必须使用 MBR 或 GPT 分区方案。您从中启动实例的 AMI 决定了启动模式以及随后用于启动卷的分区方案。
使用 MBR 时,启动卷的大小限制为 2 TiB。
使用 GPT 时,如与 GRUB2(Linux)或 UEFI 启动模式(Windows)配合使用,启动卷的大小最多可达 64 TiB。
有关更多信息,请参阅 使 Amazon EBS 卷可供使用。
-
2 TiB(2048 GiB)或更大的非启动卷必须使用 GPT 分区表才能访问整个卷。
分区方案
除其他影响之外,分区方案还确定了可以在单个卷中唯一寻址的逻辑数据块的数量。有关更多信息,请参阅数据块大小。正在使用的常见分区方案是主启动记录(MBR)和 GUID 分区表(GPT)。这两个方案之间的重要差别可归纳如下。
MBR
MBR 使用 32 位数据结构来存储块地址。这意味着,每个数据块会映射到 232 个可能整数之一。卷的最大可寻址大小由以下公式给出:
232 × Block size
MBR 卷的块大小通常限制为 512 字节。因此:
232 × 512 bytes = 2 TiB
工程解决办法是提高 MBR 卷的这个 2 TiB 限制,但还没有被行业广泛采用。因此,即使 AWS 显示 MBR 卷的大小大于 2 TiB,Linux 和 Windows 也绝不会检测到它。
GPT
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)。
数据块大小
现代硬盘驱动器上的数据存储是通过逻辑块寻址 来管理的,逻辑块寻址是一个抽象层,它允许操作系统在逻辑块中读取和写入数据,而无需详细了解底层硬件。操作系统依靠存储设备将块映射到其物理扇区,并使用是扇区大小数倍的数据块将数据读写到磁盘。
Amazon EBS 向操作系统公布 512 字节或 4,096 字节(4 KiB)的物理扇区。只有当 Amazon EC2 实例类型、操作系统和 AWS NVMe 驱动程序支持 4 KiB 物理扇区时,Amazon EBS 才会公布 4 KiB 物理扇区。如果实例类型、操作系统或 AWS NVMe 驱动程序不支持 4 KiB 物理扇区,Amazon EBS 将改为公布 512 字节物理扇区。
Amazon EC2 实例类型支持
下表显示了 Amazon EBS 针对不同 Amazon EC2 实例类型公布的扇区大小。
公布的物理扇区大小 | 实例类型 |
---|---|
512 字节 | 所有基于 Xen 的实例以及以下基于 Nitro 的实例:
|
4 KiB | 所有其他基于 Nitro 的实例 |
操作系统支持
下表显示了 Amazon EBS 针对某些常见操作系统公布的扇区大小。
注意
该列表并不完整。我们建议您在操作系统中验证 Amazon EBS 公布的物理扇区大小。
公布的物理扇区大小 | 操作系统 |
---|---|
512 字节 |
|
4 KiB |
|
AWS NVMe 驱动程序支持
Amazon EBS 使用 AWS NVMe 驱动程序版本 1.5.1 及更高版本公布 4 KiB 物理扇区。始终确保您使用的是最新版本的 AWS NVMe 驱动程序。
非默认块大小
逻辑数据块的行业默认大小当前为 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 |