在 Linux 上初始化 Amazon EBS 卷

空的 EBS 卷一旦可用便能实现其最高性能,而不需要初始化(以前称为预热)。对于已从快照创建的卷,请使用 dd 或 fio 实用程序读取卷上的所有数据块。卷上的所有现有数据都会保留。

有关在 Windows 上初始化 Amazon EBS 卷的信息,请参阅在 Windows 上初始化 Amazon EBS 卷


在 Linux 上初始化从快照创建的卷

将新还原的卷附加到您的 Linux 实例。

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

1
2
3
4
[ec2-user ~]$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 列下没有列出任何路径)。


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

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


dd命令

应将 if(输入文件)参数设置为要初始化的驱动器。

应将 of (输出文件) 参数设置为 Linux 空虚拟设备 /dev/null

bs 参数设置读取操作的数据块大小;要获得最佳性能,这应设置为 1 MB。

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

1
sudo dd if=/dev/xvdf of=/dev/null bs=1M

fio命令

如果您在系统上安装了 fio,请使用以下命令初始化您的卷。应将 --filename(输入文件)参数设置为要初始化的驱动器。

1
sudo fio --filename=/dev/xvdf --rw=read --bs=1M --iodepth=32 --ioengine=libaio --direct=1 --name=volume-initialize

要在 Amazon Linux 上安装 fio,请使用以下命令:

1
sudo yum install -y fio

要在 Ubuntu 上安装 fio,请使用以下命令:

1
sudo apt-get install -y fio

操作完成时,您会看到读取操作的报告。卷现在已准备就绪,可供使用。有关更多信息,请参阅使 Amazon EBS 卷可在 Linux 上使用