Linux下SSD缓存加速之open cas试用
之前写过 Linux下bcache安装测试的文章 Linux下SSD缓存加速之bcache试用,还是那个重要客户,要求横向对比ssd缓存加速的方案,客户特别钟情于intel cas,但是cas不再更新,无法支持SUSE 12SP4,而cas从去年开始已经开源,我在suse 12sp4 下编译测试开源open cas的时候,出现很多问题,经多方辗转,联系到了intel 官方人员,配合联想后台实验室的高级工程师,共同在suse 12 sp4下编译了open-cas软件,我在这里记录下,防止忘记。
open-cas开源项目地址:https://github.com/Open-CAS/open-cas-linux
在suse 12sp4下正常使用cas 需要升级内核,默认自带的内核不具备cas 所使用的头文件
1,升级内核
内核下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
此次下载linux-4.14.125,选用编译安装升级方法
安装升级内核所需的工具
zypper in make gcc* kernel-devel kernel-headers openssl-devel ncurses-devel git-core
将下载的 kernel 源码包拷贝到/usr/src/目录,解压
cd 进入到解压后的目录
将原本 kernel 的 config 文件拷贝到当前目录
cp /boot/config-xxxxxxx-default .config
执行make menuconfig
在弹出界面先 load 刚刚拷过来的 .config,然后 save(熟悉kernel 编译的话也可以根据需要调整相关的参数后再 save),然后 exit,exit
执行make -j8
(本次测试用的服务器 lscpu 看到的 cpu 核心数为8,如果不加-j 参数的话使用单线程编译,会很慢)
编译完,然后执行下面的命令
make modules
make modules_install
make install
执行完上述命令以后,重启即可
查看编译好的内核,已经升级到4.14.125
2,编译安装open-cas
git clone https://github.com/Open-CAS/open-cas-linux
cd open-cas-linux
git clone https://github.com/Open-CAS/ocf.git
./configure
make -j8
编译的结果正常,没有任何报错
make install
根据报错提示,把编译好的 cas_cache.ko cas_disk.ko 两个驱动文件拷到对应的目录,并赋予执行权限
cp modules/cas_cache/cas_cache.ko /lib/modules/4.14.125-94.41-default/
cp modules/cas_disk/cas_disk.ko /lib/modules/4.14.125-94.41-default/
cd /lib/modules/4.14.125-94.41-default/
chmod +x cas_disk.ko cas_cache.ko
再次make install
,编译安装成功
open-cas版本信息
3,配置open-cas
有两种配置cas 的方式,一种是手动,需要手动输入命令,另一种是自动配置,即开机自动初始化cas。
A,手动配置
先查看casadm 帮助命令
查看磁盘
nvme作为缓存,sdb作为数据盘,open-cas方案中,缓存盘是cache,数据盘是core
配置缓存盘
casadm -S -i 1 -d /dev/nvme0n1 -c wb
上述命令是把/dev/nvme0n1这块SSD作为cas缓存实例id为1的缓存盘,cache-mode是write-back
casadm -A -i 1 -d /dev/sdb
上述命令是把/dev/sdb这块数据盘添加到实例id 为1的cas 缓存下
查看当前配置好的缓存实例
继续添加一块数据盘
casadm -A -i 1 -d /dev/sdc
查看当前缓存实例的运行状态,可以查看缓存命中率,以及缓存中的数据量
casadm -P -i 1
查看当前磁盘分区结构,使用也很简单,格式化cas1-1 cas1-2即可,然后挂载。
fio 测试结果,性能提升的数据相当漂亮
fio -filename=/dev/cas1-1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest
上述的使用过程都是手动创建,服务器重启以后配置就会丢失,如果需要开机自动配置且配置不丢失则需要配置cas 的全局配置文件
B,开机自动配置
查看磁盘wwn id
ll /dev/disk/by-id
cd /etc/opencas
ls
vi opencas.conf
casctl init
初始化cas,提示下面的报错信息,经查证,得知需要python3.6.7及以上的版本,而系统自带的是3.4.6
升级系统默认自带的python3到python3.6.9
先编译安装python3需要的zlib文件
linux-strt:~ #
linux-strt:~ # cd zlib-1.2.11/
linux-strt:~/zlib-1.2.11 # ./configure
linux-strt:~/zlib-1.2.11 # make
linux-strt:~/zlib-1.2.11 # make install
linux-strt:~/zlib-1.2.11 #
然后编译安装python3.6.9
mkdir /usr/local/python369
tar -zxvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --prefix=/usr/local/python369
make
make install
备份系统自带的python3,然后链接新的文件
mv /usr/bin/python3 /usr/bin/python3.bak
ln -s /usr/local/python369/bin/python3 /usr/bin/python3
继续初始化casctl init