Ubuntu工作机使用FlashCache技术加速(SSD缓存加速)

对笔记本含16G SSD+HDD双硬盘的朋友们可以看下。

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

Flashcache是facebook的一个开源项目,用于数据库加速中.大致结构,在传统磁盘前面放置一个ssd装置,充当缓存,把热的数据保持在缓存中,写的过程也是在先写ssd然后由ssd同步到传统磁盘.真正的数据最终还是保持在传统磁盘中.这样ssd杯掉也不用担心数据丢失.同时又可以有大容量,高性能的体验.

现在ssd也挺便宜的,新一点的笔记本里都有ssd磁盘.那么这里简介绍一下,怎么用ssd加速home及其它分区,引导这块不涉及.缺点: ssd只是用来做cache不能存入实质的东西.

前提:
ssd有空余的分区或是有个ssd盘不使用.操作系统是ubuntu或是其它linux

大致步骤:
1. 安装git
[table]
[tr][td]$sudo apt-get install git-core[/td][/tr]
[/table]

  1. 下载flashcache源码:
    [table]
    [tr][td]#git clone https://github.com/facebook/flashcache.git[/td][/tr]
    [/table]

  2. 进入目录编辑
    [table]
    [tr][td]#make#make install[/td][/tr]
    [/table]

//如果失败看提示,一般是内核源码没安装的原因
4. 加载flashcache模块
[table]
[tr][td]#modprobe flashcache[/td][/tr]
[/table]

确定加载完成:
[table]
[tr][td]#dmesg |tail…flashcache: flashcache-1.0 initialized[/td][/tr]
[/table]

表示成功
另外还可以:
[table]
[tr][td]lsmod |grep flashcache[/td][/tr]
[/table]

看到相应的信息即成功.

为了开机能加载这个模块,需要这个模块名写入/etc/modules中
[table]
[tr][td]#echo “flashcache” >> /etc/modules[/td][/tr]
[/table]

好这里完成了基本环境的安装.下面以/home分区加速设制为,其它一样.
我的ssd分了/dev/sda1 用于/ , /dev/sda2用于了swap 还有/dev/sda3 ,/dev/sda4分区出没使用.我在传统磁盘里划出来100G /dev/sdb1用于/home目前还没挂载.
5. 格式化/dev/sdb1 如果原来/home节点已经划分有分区, 只用umount掉即可,然后在fstab去掉自动挂载(flashcache目前不能自动挂载)
#mkfs.ext4 /dev/sdb1
把原来/home的数据复制或是移到动/dev/sdb1上.
#mount /dev/sdb1 /mnt
#cp -r /home/* /mnt
#umount /mnt
需在注意cp过去后权限是不是和原来的一样.

  1. 初始化flashcache
    #ls -la /dev/disk/by-uuid/
    找到/dev/sdb1 对应的uuid
    [table]
    [tr][td]#flashcache_create -v -p back home_flashcache /dev/sda3 /dev/disk/by-uuid/4b75b04e-5930-4042-89b8-40894067dac6[/td][/tr]
    [/table]

这样即创建完毕.
7. 挂载那个flash设备
[table]
[tr][td]#mount /dev/mapper/home_flashcache /home[/td][/tr]
[/table]

即可以体验flashcache加载的东西了.
8. 收尾工作,开机自动挂载flashcache加速的设备,利用rc.local完成
在rc.local里添加:
[table]
[tr][td]flashcache_load /dev/sda3mount /dev/mapper/home_flashcache /home[/td][/tr]
[/table]

这样即可开始挂载/home节点了.

如果不想使用flashcache技术,可以通过如下命令删除该功能:
umount /home
dmsetup remove cachedev
flashcache_destory
mount 相应的节点即可

说明: 以# 开头的操作表示以root权限进行的操作,以$开头的表始以普通用做的操作.

开机几秒?之前看到个老外说开机能进7秒:5_114:

7秒?直接装在SSD了吧?如果SSD当缓存加速用,也太夸张了。等正式版发布后,我也尝试下.正好本子带16G SSD。现在是win8+虚拟机使用

做缓存的话 为什么不直接用内存:7_137: