facebook 开源项目 flashcache 初探
2011-01-13 13:44
239 查看
Flashcache是Facebook技术团队的又一力作,最初是为加速MySQL设计的。Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用之。
1. Why Flashcache
随着时间的流逝,网站上的数据一直在不停的积累。如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短)。如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB。
如果将这些数据全部放在大容量的SATA、SAS盘上时,会发现性能(响应时间)不够;如果全放在SSD上时,又会发现成本很高。即使公司能够大气到都放到SSD上,你会发现1TB的数据里面可能只有200G是经常被访问的,300G可能偶尔被访问到,最后剩下的500G可能已经成为历史数据了,几乎不被访问到,如果全部都放在SSD上有略有浪费。于是就有了Flashcache。
Flashcache一个非常不错的软件(准确的说是一个Linux的模块),可以动态加载。Flashcache通过在文件系统(VFS)和设备驱动之间新增了一次缓存层,来实现对热门的缓存。Flashcache是另一种缓存,一般用SSD作为介质的缓存(一般的缓存用的是内存),通过将传统硬盘上的热门数据缓存到SSD上,然后利用SSD优秀的读性能,来加速系统。这个方法较之内存缓存,没有内存快,但是空间可以比内存大很多。
本文是一个关于Flashcache的初步介绍。
2. 谁适合用Flashcache
数据量很大(例如4TB),热门数据也很大(800GB),不必要或者不舍得全部买内存来缓存。
3. 谁不适合用Flashcache
数据量不大的话,一般Flashcache就没什么用武之地了,内存就可以帮你解决问题了;
不差钱,买内存呗;
另外Flashcache的加入也使得系统的复杂度增加了一层,如果你坚持KISS原则(Keep it simple, Stupid!),也可以弃用之。
4. 基本原理图
![](http://images.51cto.com/files/uploadimg/20100928/1113470.jpg)
上图中,Flashcache将普通的SAS盘(/dev/sda)和一个高速的SSD(/dev/sdb)虚拟成一个带缓存的块设备(/dev/mapper/cachedev)。后续还将会有更多关于Flashcache相关的文章出现,敬请期待。
5. Flashcache是否只是一个过渡产品
对于当前,PCI接口的SSD价格还十分昂贵,而随着时间的推移,价格会降;另外,根据摩尔定律,未来会有更快的设备出现,所以Flashcache是一个“持久的”产品,还只是一个过渡软件,这并不好说。
1. Why Flashcache
随着时间的流逝,网站上的数据一直在不停的积累。如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短)。如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB。
如果将这些数据全部放在大容量的SATA、SAS盘上时,会发现性能(响应时间)不够;如果全放在SSD上时,又会发现成本很高。即使公司能够大气到都放到SSD上,你会发现1TB的数据里面可能只有200G是经常被访问的,300G可能偶尔被访问到,最后剩下的500G可能已经成为历史数据了,几乎不被访问到,如果全部都放在SSD上有略有浪费。于是就有了Flashcache。
Flashcache一个非常不错的软件(准确的说是一个Linux的模块),可以动态加载。Flashcache通过在文件系统(VFS)和设备驱动之间新增了一次缓存层,来实现对热门的缓存。Flashcache是另一种缓存,一般用SSD作为介质的缓存(一般的缓存用的是内存),通过将传统硬盘上的热门数据缓存到SSD上,然后利用SSD优秀的读性能,来加速系统。这个方法较之内存缓存,没有内存快,但是空间可以比内存大很多。
本文是一个关于Flashcache的初步介绍。
2. 谁适合用Flashcache
数据量很大(例如4TB),热门数据也很大(800GB),不必要或者不舍得全部买内存来缓存。
3. 谁不适合用Flashcache
数据量不大的话,一般Flashcache就没什么用武之地了,内存就可以帮你解决问题了;
不差钱,买内存呗;
另外Flashcache的加入也使得系统的复杂度增加了一层,如果你坚持KISS原则(Keep it simple, Stupid!),也可以弃用之。
4. 基本原理图
![](http://images.51cto.com/files/uploadimg/20100928/1113470.jpg)
上图中,Flashcache将普通的SAS盘(/dev/sda)和一个高速的SSD(/dev/sdb)虚拟成一个带缓存的块设备(/dev/mapper/cachedev)。后续还将会有更多关于Flashcache相关的文章出现,敬请期待。
5. Flashcache是否只是一个过渡产品
对于当前,PCI接口的SSD价格还十分昂贵,而随着时间的推移,价格会降;另外,根据摩尔定律,未来会有更快的设备出现,所以Flashcache是一个“持久的”产品,还只是一个过渡软件,这并不好说。
相关文章推荐
- react-native (faceBook 开源项目初探)
- Facebook 最热门的开源项目推荐!
- 区块链开源项目Asch源码初探
- 【Android开源项目解析】RecyclerView侧滑删除粒子效果实现——初探Android开源粒子库 Leonids
- Facebook发布开源项目Tweaks,让iOS应用开发更加便捷
- Facebook发布开源项目Tweaks,让iOS应用开发更加便捷(暂时收藏)
- facebook开源前端UI框架React初探
- 利用Facebook开源项目来赚钱不再只是梦
- 关于Facebook的开源项目Keyframes
- Fresco(Facebook开源的android项目)图片缓存框架的eclipse整合与使用探索(较详细配置说明)
- Facebook-开源项目---Thrift框架学习
- facebook 15个你必须知道的开源项目
- 使用Facebook开源项目Stetho 在Chrome上调试Android网络、数据库
- 15个你必须知道的Facebook开源项目
- 谷歌、Facebook等联合开发开源项目“//TODO”
- Facebook 开源项目 Fresco 使用简介
- Facebook 2013年的9个开源项目
- 2015年,Facebook排名前5的开源项目
- Facebook关于react-native开源项目
- facebook开源项目全景投影转换Transform360