当通过快照创建卷时,必须先从 S3 下载快照中的存储块并将其写入卷,然后才能访问它们。此过程称为卷初始化。在此期间,卷的 I/O 延迟可能会增加,性能可能会下降。只有在所有存储块都下载并写入卷后,才能达到最佳卷性能。
空卷在创建后即可立即发挥其最大性能,无需初始化。
预置初始化速率( Provisioned Rate for Volume Initialization
)是解决上面问题的一个方案,
通过 EBS 预置初始化速率功能,我们可以在可预测的时间内创建完全性能的 EBS 卷。
这项新功能通过以指定的一致速率(在 100 MiB/s 到 300 MiB/s 之间)从 EBS 快照获取数据到 EBS 卷,从而加快卷初始化过程。我们可以指定将快照块从 Amazon S3 下载到卷的初始化速率。
通过指定卷初始化速率,可以在可预测的时间内创建完全性能的卷,提高运营效率并清晰了解预期完成时间。如果我们运行诸如 fio
/dd
之类的实用程序来加速应用程序恢复和测试开发卷复制等工作流的卷初始化,它将消除管理此类脚本的运营负担,为我们的工作流提供一致性和可预测性。
先查找快照的数据大小,请检查 describe-snapshots
命令输出中的 FullSnapshotSizeInBytes
字段,或控制台中的“完整快照大小”字段。
根据指定的卷初始化速率来计算。
例如,如果使用包含 10 GiB 数据的快照创建一个 20 GiB 的卷,并指定 300 MiB/s 的卷初始化速率,则该卷将在大约 34.1 秒内完全初始化(10 GiB / 300 MiB/s = 34.1 秒)。同样,如果同时创建 10 个具有相同快照和卷初始化速率的卷,则所有 10 个卷将在 34.1 秒内完全初始化。
对于并发卷创建请求,可以请求的累计卷初始化速率限制为 5,000 MiB/s。例如,可以发出 50 个并发卷创建请求,速率为 100 MiB/s(50 个并发请求 * 100 MiB/s),或者发出 25 个并发请求,速率为 200 MiB/s(25 个并发请求 * 200 MiB/s)。此限制适用于每个区域。如果请求超出此限制,则会失败。
解决方法是申请增加配额。
创建具有卷初始化速率的卷时,系统将按每 GiB 快照数据(每 MiB 指定初始化速率)收取费用。该费率因区域而异。
用户将根据快照数据的大小而非卷的大小付费。
价格如下:
卷初始化速率 | 价格 |
---|---|
100 MB/s - 200 MB/s | USD 0.00240/GB |
201 MB/s - 300 MB/s | USD 0.00360/GB |
1. 在 EC2 启动向导中创建卷 在EC2 控制台的启动向导中启动新的 EC2 实例时,我们可以在存储(卷)部分输入所需的卷初始化速率。
我们还可以在创建和修改EC2 启动模板时设置卷初始化速率。
2. 从快照创建卷 从快照创建卷时,我们可以在 EC2 控制台 中选择创建卷并指定卷初始化速率。
确认带有初始化速率的新卷。
对应的CLI命令:
aws ec2 create-volume --region us-east-1 --cli-input-json '{
"AvailabilityZone": "us-east-1a",
"VolumeType": "gp3",
"SnapshotId": "snap-07f411eed12ef613a",
"VolumeInitializationRate": 300
}'
参考: https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html#volume-initialization-rate
https://aws.amazon.com/cn/about-aws/whats-new/2025/05/ebs-provisioned-rate-volume-initialization/