预热EBS卷Pre-Warming Amazon EBS Volumes
来源:互联网 发布:java中nio流详解 编辑:程序博客网 时间:2024/04/29 09:44
为什么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读的方式 $ dd if=/dev/xvdf of=/dev/null bs=1MB
但是这样做快照之前没被利用的部分用这种方式是没法预热的,不过还有下面一种方法
(3)完全预热基于快照创建的EBS卷:将数据块原地读取并写入原地 $ dd if=/dev/xvdf of=/dev/xvdf conv=notrunc bs=1MB
这种方式的弊端是,下次做快照,需要复制的数据就是整个卷的大小,无论是否被利用,因为已经被dd写入过无效数据了,这种快照叫完全快照(full snapshot)
对于Windows实例,预热也可采用dd命令,不过语法略有不同
windows版dd下载网址http://www.chrysocome.net/dd C:\> dd if=/dev/zero of=\.\drive-letter: bs=1M --progress
写入预热 C:\> dd if=\.\drive-letter: of=/dev/null bs=1M --progress
预读预热
- 预热EBS卷Pre-Warming Amazon EBS Volumes
- 使 Amazon EBS 卷可用
- Amazon EBS Enables Live Volume Modifications with Elastic Volumes
- Amazon EBS新功能——弹性卷
- amazon aws EBS
- 对Amazon EBS 的测试
- Amazon EBS的功能更新
- EBS
- ebs
- Amazon EBS弹性块存储服务初探
- Amazon EBS 特性、故障和设计
- Amazon EBS弹性块存储服务初探
- Amazon EBS弹性块存储服务初探
- 如何扩展EBS卷的容量
- Running MySQL on Amazon EC2 with EBS (Elastic Block
- 在Amazon EC2中挂载EBS作为永久存储
- 提问:从EBS卷中删除Marketplace代码
- Amazon Elastic Block Storage Volumes
- 关于EBS磁盘的IOPS,以及IOPS是如何测量的
- Qt学习之QMainWindow(一)QMainWindow简介
- Android中相册的数据结构
- eclipse下ruby调试环境整理
- 2.1 Socket系统调用
- 预热EBS卷Pre-Warming Amazon EBS Volumes
- Android下强制显示ActionBar的overflow按钮
- hust1384---The value of F[n]
- 【高效程序设计——贪心】UVa 10954 优先队列
- Swift from Scratch: Collections and Tuples
- Ajax缓存解决办法
- 字符串类型间的转化
- 《乐者为王——自由软件Linux之父李纳斯·托沃兹自述》
- 7款Android开发者常用的Android UI组件