如何使用FlashCache技术加速
发布网友
发布时间:2022-04-26 09:16
我来回答
共2个回答
热心网友
时间:2022-05-05 22:17
Flashcache是*的一个开源项目,用于数据库加速中.大致结构,在传统磁盘前面放置一个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/*/flashcache.git
3. 进入目录编辑
#make
#make install
//如果失败看提示,一般是内核源码没安装的原因
4. 加载flashcache模块
#modprobe flashcache
确定加载完成:
#dmesg |tail
......flashcache: flashcache-1.0 initialized
表示成功
另外还可以:
lsmod |grep flashcache
看到相应的信息即成功.
为了开机能加载这个模块,需要这个模块名写入/etc/moles中
#echo "flashcache" >> /etc/moles
好这里完成了基本环境的安装.下面以/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权限进行的操作,以$开头的表始以普通用做的操作.