闲话SSD
最近在微博上发现淘宝的存储部门一直都很关注SSD部分,最起码说明了SSD在提高存储性能方面确实还是有诱惑力的,价格高是个问题,怎样运用可以让SSD发挥到最高的性价比,这才是关键。分级存储,许多传统厂家都有相应的解决方案,EMC的貌似是叫FASTVP,Netapp、IBM叫什么给忘了,回头查查补上。
2012伊始,EMC闪电计划的曝光又带来了“雷电计划”,都是关于SSD的,我想在存储器有大的飞跃前,SSD还是有前景的,有某些专家说SSD只不过是一个过渡期,在我看来这个过渡期还是很有潜力来挖的,要不为何会引来群雄参与的呢,EMC的闪电计划是关于PCIe接口的EMC闪存卡采用的SIC,想价格也比FusionIO的要高很多吧。有了设备和软件,EMC的这条线规划似乎也很完美了,将会继续关注他的“雷电计划”。
FlashCache呢是Facebook技术团队的又一力作,最初是为加速MySQL设计的。Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用。为什么是用于加速MySqL呢,这个就涉及到数据库的专业知识了,传统磁盘的随机写随机读效率都相当低下,需要进行机械化的寻道读取,尽管很多学术论文对数据库优化中都曾经在这些方面大做文章。那么SSD的存在似乎很好的解决了随机读写的问题,因为SSD是固态存储器,即不存在机械寻道和磁化问题,而是通过电位标注01,随机读写效率都相当优秀。
但是SSD有个先天性缺陷,那就是写入数据之前必须先进行擦除,这是为什么呢,这和SSd的原理有关,电位的转化问题,就是先都空间全部置位,在进行加电变化每个cell的正确电位,那么势必会影响SSd的寿命,相当于一次写转化为了两次写。如果SSD的使用没有进过良好的优化,那么会SSD的使用寿命将会受限,因此损耗均衡算法也是SSD研究关注的重点,貌似现在应都有了成熟的解决方案。
尽管SSd设备都具备了良好的损耗均衡,但是使用者都是熟知SSD的缺陷,所以不得不小心应对,因此SSD在存储中的位置,通常作为读缓存,用于提高系统的IO性能。FlashCache便是以此为目的的使用SSd设备。
FlashCache是Linux的一个模块,可以动态地加载在Linux中,。Flashcache通过在文件系统(VFS)和设备驱动之间新增了一次缓存层,来实现对热点数据的缓存。用SSD作为缓存,通过将传统硬盘上的热门数据缓存到SSD上,然后利用SSD优秀的读性能,来加速系统。这个方法较之内存缓存,没有内存快,但是空间可以比内存大很多。(SSd的价格高于磁盘,低于内存)
示意图如下所示:
/dev/sdb是SSD设备,/dev/sda是传统的磁盘设备,加载了Flashcache之后呢,会将这两个设备虚拟化为一个带有缓存的块设备/dev/mapper/cachedev。
参考:
1.
2.
3.
4.