Flashcache是Facebook技术团队开发的一个内核模块,通过在文件系统(VFS)和设备驱动之间新增一次缓存层,可以用SSD作为介质的缓存,通过将传统硬盘上的热门数据缓存到SSD上,加速服务器磁盘读写性能。最初是为加速MySQL设计的,Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用。
Flashcache将普通的SAS/SATA盘和一个高速的SSD盘虚拟成一个带缓存的块设备。
安装Flashcache
1 Flashcache编译时需要指定源码树
apt-get install linux-source-2.6.32 git
2 下载源码包
git clone https://github.com/facebook/flashcache.git
3 编译安装
cd flashcache/
make KERNEL_TREE=/usr/src/linux-headers-2.6.32-5-amd64
make install
4 初始化FlashCache
modprobe flashcache
#flashcache_create -h 查看命令帮助
#sdb是ssd sda是hdd sda6是卸载状态
flashcache_create -p back cachedev /dev/sdb1 /dev/sda6
mkfs.xfs /dev/mapper/cachedev
mount /dev/mapper/cachedev /fcache
5
FlashCache不能在开机时自动挂载,所以写在/etc/rc.local中
flashcache_load cachedev /dev/sdb1 /dev/sda6
mount /dev/mapper/cachedev /fcache
6 取消FlashCache
umount /fcache
dmsetup remove cachedev
flashcache_destroy /dev/sdb1
7 在源码flashcache/utils目录下有两个
FlashCache的管理
脚本可供使用。flashcache、flashstat。
flashcache
可以放在/etc/init.d目录下,不过需要根据你的实际情况修改脚本的一些变量。
参考:https://github.com/facebook/flashcache
http://blog.yufeng.info/archives/1768
http://blog.hackroad.com/read.php/410.htm