初始化 Amazon EBS 卷
创建 Amazon EBS 卷时,无论是从 EBS 快照还是从另一个 EBS 卷(卷副本)创建,都必须先将数据块写入卷,然后才能访问它们。对于根据快照创建的卷,必须将数据块从 Amazon S3 下载到新卷。对于卷副本,必须将数据块从源卷复制到卷副本。此过程称为卷初始化。在此期间,正在初始化的卷可能会遭遇 I/O 延迟增加和性能下降的情况。只有在下载所有存储块并将其写入卷后,才能实现卷的全部性能。
注意
空卷在创建后便能实现其最大性能,不需要初始化。
默认卷初始化速率在整个初始化过程中会波动,这可能会导致完成时间无法预测。为了最大限度地减少卷初始化对性能的影响,您可以使用以下选项:
注意
卷副本不支持卷初始化速率和快速快照还原。有关更多信息,请参阅 Volume copy initialization。
使用 Amazon EBS 卷初始化预置速率
根据快照创建 Amazon EBS 卷时,您可以选择指定 Amazon EBS 卷初始化预置速率(卷初始化速率),其范围为 100 到 300 MiB/s。如果指定卷初始化速率,则快照块将在创建后以指定速率从 Amazon S3 下载并写入卷。这样,您就可以创建在可预测的时间内完全初始化并达到完全性能的卷。
当您同时创建多个卷并且需要所有卷在可预测的时间内完成初始化时,使用卷初始化速率尤其有用。
注意
所有 Amazon EBS 卷类型和所有 Amazon EC2 实例类型(包括 Amazon EC2 Mac 实例)都支持 Amazon EBS 卷初始化预置费率。
您可以为以下各项指定卷初始化速率:
-
个人卷创建请求
-
实例启动请求中的 EBS 卷块设备映射
-
启动模板中的 EBS 卷块设备映射
-
根卷替换任务创建的 EBS 卷
-
Amazon EKS 集群(由 EBS CSI 驱动程序创建)和 Amazon ECS 集群上的 EBS 卷
工作方式
当您创建具有卷初始化速率的卷时,快照块将按您指定的速率从 Amazon S3 下载到卷中。
初始化卷所需的时间取决于以下因素:
-
快照数据的大小,而不是所创建卷的大小。
提示
要查找快照的数据大小,请检查 describe-snapshots 命令输出中的
FullSnapshotSizeInBytes字段,或控制台中的完整快照大小字段。 -
您指定的卷初始化速率
例如,如果您使用包含 10 GiB 数据的快照创建 20 GiB 卷,并将卷初始化速率指定为 300 MiB/s,则该卷将在大约 34.1 秒内完全初始化(10 GiB / 300 MiB/s = 34.1 秒)。同样,如果您同时创建 10 个具有相同快照和卷初始化速率的卷,则所有 10 个卷将在 34.1 秒内完全初始化。
注意事项
-
您可以将卷初始化速率指定为 100 到 300 MiB/s。
-
当您指定卷初始化速率时,费用和完成时间取决于快照数据的大小(而不是卷的大小)以及您指定的速率。有关更多信息,请参阅 计费。
-
在 99% 的时间内,Amazon EBS 提供的平均速率在您指定的卷初始化率的 10% 内。
-
如果您指定了卷初始化速率,并且使用已启用快速快照还原的快照,则 Amazon EBS 将使用指定的速率而不是快速快照还原。要改用快速快照还原,请勿指定卷初始化速率。
-
如果由于容量限制或超出配额,Amazon EBS 无法以指定的卷初始化速率初始化卷,则请求将失败。
-
您无法为在 Amazon Outposts、本地区域或 Wavelength 区域中创建的卷指定卷初始化速率。
限额
您可用于在并发卷创建请求中请求的累积卷初始化速率的限制为 5,000 MiB/s。例如,您可以同时发出 50 个卷创建请求,速率为 100 MiB/s(50 个并发请求 * 100 MiB/s 速率),或者同时发出 25 个卷创建请求,速率为 200 MiB/s(25 个并发请求 * 200 MiB/s 速率)。此限制按区域引用。如果请求超过此限制,则会失败。请等待一些正在进行中的请求完成,或者请求提高配额。有关更多信息,请参阅 Amazon EBS 的限额。
计费
创建具有卷初始化速率的卷时,您将按每 GiB 快照数据或每 MiB 指定初始化速率付费。费率因区域而异。有关更多信息,请参阅 Amazon EBS 定价
您将根据快照数据的大小而不是卷的大小付费。例如,如果您为一个大小为 100 GiB 但只包含 50 GiB 数据的卷创建快照,则快照的卷大小为 100 GiB,但快照数据大小为 50 GiB。如果您使用该快照创建卷并指定卷初始化速率,则您的费用将基于 50 GiB 的快照数据。
提示
要查找快照的数据大小,请检查 describe-snapshots 命令输出中的 FullSnapshotSizeInBytes 字段,或控制台中的完整快照大小字段。
公式如下:
rate for Regionxsnapshot data sizexvolume initialization rate
一旦卷进入 active 状态,您需要支付全额费用。失败的请求不会计费。
如果在卷初始化完成之前删除卷,则仍需要按请求的卷初始化速率付费。
使用已启用快速快照还原的快照
如果根据启用了快速快照还原的快照创建卷,则该卷在创建时会完全初始化,并立即发挥其全部性能。有关使用快速快照还原的更多信息,请参阅 Amazon EBS 快速快照还原。
创建后手动初始化卷
创建 Amazon EBS 卷后,您可以手动初始化该卷,以帮助最大限度地降低卷初始化对性能的影响。
创建 Amazon EBS 卷后,您可以使用以下过程手动初始化该卷。
重要
在初始化已从快照创建的 Provisioned IOPS SSD 卷时,该卷的性能可能会下降到预期水平的 50% 以下,这会导致该卷在 I/O 性能状态检查中显示 warning 状态。这是预期行为,并且您可在初始化 Provisioned IOPS SSD 卷时忽略该卷上的 warning 状态。有关更多信息,请参阅 Amazon EBS 卷状态检查。
在 Linux 上初始化从快照创建的卷
-
将新还原的卷附加到您的 Linux 实例。
-
使用 lsblk 命令列出实例上的块储存设备。
$lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 30G 0 disk xvda1 202:1 0 8G 0 disk /在此处可以看到新卷
/dev/xvdf已附加,但是未挂载(因为MOUNTPOINT列下没有列出任何路径)。 -
使用 dd 或 fio 实用程序对设备上的所有数据块进行读取。默认情况下,dd 命令将安装在 Linux 系统上,但 fio 要快得多,因为它允很多线程读取。
注意
此步骤可能需要几分钟到几个小时,具体取决于 EC2 实例带宽、为卷配置的 IOPS 和卷的大小。
[dd] 应将
if(输入文件)参数设置为要初始化的驱动器。应将of(输出文件)参数设置为 Linux 空虚拟设备/dev/null。bs参数设置读取操作的数据块大小;要获得最佳性能,这应设置为 1 MB。重要
不当使用 dd 可能容易损坏卷的数据。请务必严格遵循下面的示例命令。只有
if=/dev/参数将因您要读取的设备的名称而异。xvdf$sudo dd if=/dev/xvdfof=/dev/null bs=1M[fio] 如果您在系统上安装了 fio,请使用以下命令初始化您的卷。应将
--filename(输入文件)参数设置为要初始化的驱动器。$sudo fio --filename=/dev/xvdf--rw=read --bs=1M --iodepth=32 --ioengine=libaio --direct=1 --name=volume-initialize要在 Amazon Linux 上安装 fio,请使用以下命令:
sudo yum install -y fio要在 Ubuntu 上安装 fio,请使用以下命令:
sudo apt-get install -y fio操作完成时,您会看到读取操作的报告。卷现在已准备就绪,可供使用。有关更多信息,请参阅 使 Amazon EBS 卷可供使用。
在使用上述任何一种工具前,请在您的系统上收集有关磁盘的信息,如下所述:
收集有关系统磁盘的信息
-
使用 wmic 命令列出系统上的可用磁盘:
wmic diskdrive get size,deviceid下面是示例输出:
DeviceID Size \\.\PHYSICALDRIVE2 80517265920 \\.\PHYSICALDRIVE1 80517265920 \\.\PHYSICALDRIVE0 128849011200 \\.\PHYSICALDRIVE3 107372805120 -
使用 dd 或 fio 识别要初始化的磁盘。
C:驱动器位于\\.\PHYSICALDRIVE0。如果您不确定要使用的盘符,则可以使用diskmgmt.msc实用工具将驱动器盘符与磁盘盘符进行比较。