View a markdown version of this page

初始化 Amazon EBS 卷 - Amazon EBS

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

初始化 Amazon EBS 卷

创建 Amazon EBS 卷时,无论是从 EBS 快照还是从另一个 EBS 卷(卷副本)创建,都必须先将数据块写入卷,然后才能访问它们。对于根据快照创建的卷,必须将数据块从 Amazon S3 下载到新卷。对于卷副本,必须将数据块从源卷复制到卷副本。此过程称为卷初始化。在此期间,正在初始化的卷可能会遇到 I/O 延迟增加和性能下降的情况。只有在下载所有存储块并将其写入卷后,才能实现卷的全部性能。

注意

空卷在创建后便能实现其最大性能,不需要初始化。

默认卷初始化速率在整个初始化过程中会波动,这可能会导致完成时间无法预测。为了最大限度地减少卷初始化对性能的影响,您可以使用以下选项:

注意

卷副本不支持 Amazon EBS 卷初始化和快速快照恢复的预置速率。有关更多信息,请参阅 Volume copy initialization

使用 Amazon EBS 卷初始化预置速率

当您根据快照创建 Amazon EBS 卷时,您可以选择指定介于 100 到 300 之间的卷初始化的 Amazon EBS 预置速率(卷初始化率)。 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 无法以指定的卷初始化速率初始化卷,则请求将失败。

  • 您无法为在 “局部区域” 或 “波长区域” 上 AWS Outposts创建的体积指定体积初始化速率。

配额

您可以在并发卷创建请求中请求的累积卷初始化速率 MiB/s 上限为 5,000。例如,您可以发出 50 个并发卷创建请求,速率为 100 MiB/s (50 个并发请求 * 100 个 MiB/s 速率),或以 200 的速率发出 25 个并发请求 MiB/s (25 个同步请求 * 200 个 MiB/s 速率)。此限制按区域引用。如果请求超过此限制,则会失败。请等待一些正在进行中的请求完成,或者请求提高配额。有关更多信息,请参阅 Amazon EBS 的限额

计费

当您使用卷初始化率创建卷时,将根据所选初始化层按每 GiB 费率向您收费。费率因区域而异。要确定所选初始化套餐的费率,请打开 Amazon EBS 定价,选择您所在的地区,然后找到 “批量初始化的预置费率” 部分。

按完整快照数据大小而不是卷大小向您收费。例如,如果您为包含 50 GiB 写入数据的 100 GiB 卷创建快照,则完整的快照数据大小为 50 GiB。如果您使用该快照创建卷并指定卷初始化率,则费用以 50 GiB 为基准。

提示

要查找完整的快照数据大小,请检查 describe-snapshots 命令输出中的FullSnapshotSizeInBytes字段,或控制台中的完整快照大小字段。

公式如下:

Rate for the selected initialization tier in the Region × full snapshot data size

一旦卷进入 active 状态,您需要支付全额费用。失败的请求不会计费。

如果您在初始化完成之前删除卷,则仍需按请求的卷初始化费率向您收费。

指定音量初始化率

使用以下方法之一根据具有卷初始化率的快照创建卷。

Console
创建卷
  1. 打开位于 https://console.aws.amazon.com/ec2/ 的 Amazon EC2 控制台。

  2. 在导航窗格中,选择,然后选择创建卷

  3. 对于 Volume Type(卷类型),选择需要创建的卷类型。

  4. 对于大小,输入等于或大于源快照卷大小的大小。

  5. 对于 Availability Zone,选择要在其中创建卷的可用区。

  6. 对于快照 ID,选择要使用的快照。

  7. 对于音量初始化率,输入速率 100300 MiB/s。指定费率会产生额外费用。要使用默认初始化速率或快速快照还原,如果为所选快照启用了快速还原,请将此字段留空。

    注意

    有关速率和完整快照数据大小如何影响初始化时间的信息,请参阅工作原理。有关定价信息,请参阅 计费

  8. 配置任何其他必需的音量设置并根据需要添加标签。

  9. 选择创建卷

  10. 网格中,查看卷的初始化状态和进度。

AWS CLI
创建卷

使用 create-volume 命令。以下示例根据指定可用区中的快照创建gp3卷,卷初始化率为300 MiB/s。将示例区域、可用区域和快照 ID 替换为您的资源值:

aws ec2 create-volume \ --region us-east-1 \ --availability-zone us-east-1a \ --volume-type gp3 \ --snapshot-id snap-0abcdef1234567890 \ --volume-initialization-rate 300

如果省略--size,则卷使用源快照的卷大小。如果指定--size,则该值必须等于或大于源快照的卷大小。

PowerShell
创建卷

使用 New-EC2Volume cmdlet。以下示例根据指定可用区中的快照创建gp3卷,卷初始化率为300 MiB/s。该命令将返回的卷对象存储在中$volume。将示例区域、可用区域和快照 ID 替换为您的资源值:

$volume = New-EC2Volume ` -Region us-east-1 ` -AvailabilityZone us-east-1a ` -VolumeType gp3 ` -SnapshotId snap-0abcdef1234567890 ` -VolumeInitializationRate 300

监控器初始化

卷初始化信息最多可能需要 5 分钟才能更新。有关监控初始化的说明,请参见监控 Amazon EBS 卷初始化状态

使用已启用快速快照还原的快照

如果根据启用了快速快照还原的快照创建卷,则该卷在创建时会完全初始化,并立即发挥其全部性能。有关使用快速快照还原的更多信息,请参阅 Amazon EBS 快速快照还原

创建后手动初始化卷

创建 Amazon EBS 卷后,您可以手动初始化该卷,以帮助最大限度地降低卷初始化对性能的影响。

创建 Amazon EBS 卷后,您可以使用以下过程手动初始化该卷。

重要

初始化根据快照创建的预配置 IOPS SSD 卷时,卷的性能可能会降至预期水平的 50% 以下,这会导致卷在I/O 性能warning状态检查中显示状态。这是预期行为,并且您可在初始化 Provisioned IOPS SSD 卷时忽略该卷上的 warning 状态。有关更多信息,请参阅 Amazon EBS 卷状态检查

在 Linux 上初始化从快照创建的卷
  1. 将新还原的卷附加到您的 Linux 实例。

  2. 使用 lsblk 命令列出实例上的块储存设备。

    $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 30G 0 disk xvda1 202:1 0 8G 0 disk /

    在此处可以看到新卷 /dev/xvdf 已附加,但是未挂载(因为 MOUNTPOINT 列下没有列出任何路径)。

  3. 使用 ddfio 实用程序对设备上的所有数据块进行读取。默认情况下,dd 命令将安装在 Linux 系统上,但 fio 要快得多,因为它允很多线程读取。

    注意

    此步骤可能需要几分钟到几个小时,具体取决于 EC2 实例带宽、为卷配置的 IOPS 和卷的大小。

    [dd] 应将 if(输入文件)参数设置为要初始化的驱动器。应将 of(输出文件)参数设置为 Linux 空虚拟设备 /dev/nullbs 参数设置读取操作的数据块大小;要获得最佳性能,这应设置为 1 MB。

    重要

    不当使用 dd 可能容易损坏卷的数据。请务必严格遵循下面的示例命令。只有 if=/dev/xvdf 参数将因您要读取的设备的名称而异。

    $ sudo dd if=/dev/xvdf of=/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 卷可供使用

在使用上述任何一种工具前,请在您的系统上收集有关磁盘的信息,如下所述:

收集有关系统磁盘的信息
  1. 使用 wmic 命令列出系统上的可用磁盘:

    wmic diskdrive get size,deviceid

    下面是示例输出:

    DeviceID Size \\.\PHYSICALDRIVE2 80517265920 \\.\PHYSICALDRIVE1 80517265920 \\.\PHYSICALDRIVE0 128849011200 \\.\PHYSICALDRIVE3 107372805120
  2. 使用 ddfio 识别要初始化的磁盘。C: 驱动器位于 \\.\PHYSICALDRIVE0。如果您不确定要使用的盘符,则可以使用 diskmgmt.msc 实用工具将驱动器盘符与磁盘盘符进行比较。

Use the dd utility

完成以下过程,以安装并使用 dd 来初始化卷。

重要注意事项
  • 初始化卷可能需要几分钟到几个小时,取决于 EC2 实例带宽、为卷预置的 IOPS 和卷的大小。

  • 不当使用 dd 可能容易损坏卷的数据。一定要准确地遵循此程序。

安装适用于 Windows 的 dd

适用于 Windows 程序的 dd 的使用体验类似于 Linux 和 Unix 系统中常用的 dd 程序,通过它您可以初始化已从快照创建的 Amazon EBS 卷。最新的测试版支持 /dev/null 虚拟设备。如果安装早期版本,则可以使用 nul 虚拟设备。完整文档可在以下网址获得http://www.chrysocome.net/dd

  1. 从下载适用于 Windows 的最新二进dd制版本http://www.chrysocome.net/dd

  2. (可选)为命令行实用工具创建易于查找和记住的文件夹,例如 C:\bin。如果您已拥有用于命令行实用工具的指定文件夹,则可以在以下步骤中改用该文件夹。

  3. 解压缩二进制程序包并将 dd.exe 文件复制到命令行实用工具文件夹(例如 C:\bin)。

  4. 将命令行实用工具文件夹添加到 Path 环境变量,以便您可以从任何位置运行该文件夹中的程序。

    1. 选择开始,打开计算机的上下文(右键单击)菜单,然后选择属性

    2. 依次选择高级系统设置环境变量

    3. 对于系统变量,选择变量 Path,然后选择编辑

    4. 变量值中,将一个分号和命令行实用工具文件夹的位置(;C:\bin\) 附加到现有值末尾)。

    5. 选择确定关闭编辑系统变量窗口。

  5. 打开新的命令提示符窗口。上一步不会在您当前的“命令提示符”窗口中更新环境变量。完成上一步后打开的命令提示符窗口将更新。

使用适用于 Windows 的 dd 来初始化卷

运行以下命令可读取指定设备上的所有数据块(并将输出发送到 /dev/null 虚拟设备)。该命令可安全初始化现有数据。

dd if=\\.\PHYSICALDRIVEn of=/dev/null bs=1M --progress --size

如果 dd 尝试读取卷末尾以外的空间,您可能会收到一个错误。您可以放心地忽略此错误。

如果您使用的是早期版本的 dd 命令,则不支持 /dev/null 设备。相反,您可以按如下方式使用 nul 设备。

dd if=\\.\PHYSICALDRIVEn of=nul bs=1M --progress --size
Use the fio utility

完成以下过程,以安装并使用 fio 来初始化卷。

要安装 fio 适用于 Windows

适用于 Windows 的 fio 程序的使用体验类似于 Linux 和 Unix 系统中常用的 fio 程序,允许您初始化已从快照创建的 Amazon EBS 卷。有关更多信息,请参阅 https://github.com/axboe/fio

  1. 可通过展开最新版本的资产并选择 MSI 安装程序来下载 fio MSI 安装程序。

  2. 安装 fio

使用初始化音量 fio 适用于 Windows
  1. 运行类似如下的命令来初始化卷:

    fio --filename=\\.\PHYSICALDRIVEn --rw=read --bs=1M --iodepth=32 --direct=1 --name=volume-initialize
  2. 操作完成时,您即准备就绪,可使用新卷。有关更多信息,请参阅 使 Amazon EBS 卷可供使用