预热EBS卷Pre-Warming Amazon EBS Volumes

EBS卷在首次读写时可能会遭遇IOPS性能损失,预热过程能避免这种损失。预热包括对新EBS卷的全盘擦除和基于快照恢复卷的全盘读取。通过dd命令在Linux和Windows系统中实现预热,但完全预热可能导致下次快照成为完全快照,增加存储需求。预热应在卷未挂载时进行。

为什么EBS卷使用前需要预热(Pre-Warm)?
当你创建一块EBS磁盘卷的时候,无论你是创建一块全新的空磁盘还是基于某个snapshot恢复创建的一块包含数据的磁盘,存储块是立即分配的,而当你第一次读写某个块(block)的时候,他要么擦除之后再写入数据(对于新EBS卷)要么从snapshot(存储在S3中的)中恢复数据到块再供你读(对于基于快照恢复的EBS卷),这些预备操作会导致在首次读写时造成5%~50%的IOPS损失。对于大多数应用,首次的这点损失可以接受,毕竟很快整个EBS卷就会恢复IOPS性能。但如果想避免这种首次读写块时的IOPS性能损失,我们可以预热磁盘,是空磁盘,首次使用前就预先将其全部快擦除(wiped clean),如果是基于快照恢复的EBS卷,就预先全部读取一遍,使数据全部从快照中恢复到EBS卷中的块,或者将这种卷的所有块内容全部读取,并原地写入,这样基于快照恢复的卷中未被利用的部分也被预热了,但是一旦这样操作后,下次在快照这个卷的时候,就得创建完全快照(full snapshot),官网文档中的这句话的言外之意就是说: 如果没有预热的卷做快照,实际上只有被写入数据的部分被复制到S3中(快照是存在S3中)。另外,为什么基于快照创建的卷数据并没有一次性全部恢复到卷,官网文档解释说这样做可以加快快照恢复时间(restore time),然后数据根据读写频繁大小做为先后顺序逐步恢复到存储块。

下面介绍预热的方法:
Linux系统下,使用dd命令预热。
预热前,首先得确保被预热的EBS卷没有被mount。
(1)对于新的空EBS卷,我们采用dd写入数据,直到写满:
$ dd if=/dev/zero of=/dev/xvdf bs=1MB  直到出现磁盘写满的提示:
dd: writing `/dev/xvdf': No space left on device
6441+0 records in
6440+0 records out
6440878080 bytes (6.4 GB) copied, 26.3707 s, 244 MB/s

(2)对于基于快照恢复的EBS卷,采用dd读的方式

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值