java shell Ubuntu centos linux命令 HTML5 开源 linux google Windows php mysql nginx Android Python 程序员 apache Firefox 微软 wordpress

使用FlashCache技术加速

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

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

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

大致步骤:

1. 安装git

$sudo apt-get install git-core

2. 下载flashcache源码:

#git clone https://github.com/facebook/flashcache.git

3. 进入目录编辑

#make
#make install

//如果失败看提示,一般是内核源码没安装的原因

4. 加载flashcache模块

#modprobe flashcache

确定加载完成:

#dmesg |tail
......flashcache: flashcache-1.0 initialized

表示成功

另外还可以:

lsmod |grep flashcache

看到相应的信息即成功.

为了开机能加载这个模块,需要这个模块名写入/etc/modules中

#echo "flashcache" >> /etc/modules

好这里完成了基本环境的安装.下面以/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过去后权限是不是和原来的一样.

6. 初始化flashcache

#ls -la /dev/disk/by-uuid/

找到/dev/sdb1 对应的uuid

#flashcache_create -v -p back home_flashcache /dev/sda3 /dev/disk/by-uuid/4b75b04e-5930-4042-89b8-40894067dac6

这样即创建完毕.

7. 挂载那个flash设备

#mount /dev/mapper/home_flashcache /home

即可以体验flashcache加载的东西了.

8. 收尾工作,开机自动挂载flashcache加速的设备,利用rc.local完成

在rc.local里添加:

flashcache_load /dev/sda3
mount /dev/mapper/home_flashcache /home

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

如果不想使用flashcache技术,可以通过如下命令删除该功能:

umount /home
dmsetup remove cachedev
flashcache_destory

mount 相应的节点即可

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

延伸阅读

  • 抱歉,暂无相关内容!

评论