centos7 编译配置 bcache

想要在自己的一台机器上部署些东西,但是机器上的 ssd 比较小,于是准备用 bcache,用 ssd 来加速数据盘的读写速度,centos 默认没有开启 bcahce 模块,所以需要自行编译相应模块,期间踩了些坑,在此记录下来。

1、安装编译所需依赖

1
2
yum groupinstall "Development Tools" -y
yum install kernel-headers bc -y

2、下载内核源码,解压,编译,加载模块

1
2
3
4
5
6
7
8
9
10
11
12
13
wget http://vault.centos.org/7.4.1708/os/Source/SPackages/kernel-3.10.0-693.el7.src.rpm
mkdir kernel
mv kernel-3.10.0-693.el7.src.rpm kernel
rpm2cpio ./kernel-3.10.0-693.el7.src.rpm | cpio -idmv
xz -d kernel-3.10.0-693.el7.tar.gz
tar xf kernel-3.10.0-693.el7.tar
cp /boot/config-3.10.0-693.11.1.el7.x86_64 .config
修改.config,将CONFIG_BCACHE=m加入其中
make
编译耗时,耐心等候
cp drivers/md/bcache/bcache.ko /lib/modules/3.10.0-693.11.1.el7.x86_64/kernel/drivers/md/
depmod -a
modprobe -f bcache

3、安装 bcache tools

1
2
3
4
5
yum install git libuuid libuuid-devel libblkid-devel -y
git clone http://evilpiepirate.org/git/bcache-tools.git
cd bcache-tools/
make
make install

4、添加 bcache 模块开机加载

1
2
3
4
5
6
7
8
9
10
vim /etc/sysconfig/modules/bcache.modules

#! /bin/sh

/sbin/modinfo -F filename bcache > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe -f bcache
fi

chmod 755 /etc/sysconfig/modules/bcache.modules

参考资料与文章:
http://10sa.com/sql_stories/?p=1052
https://gist.github.com/TheAnonymous/5787963
http://yuanbor.blog.163.com/blog/static/56674620201731932312593/
http://blog.csdn.net/liumangxiong/article/details/18090043
http://easwy.com/blog/archives/auto-load-kernel-module-on-boot-in-centos/