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,选用编译安装升级方法

11580-pjvcmuoijh.png

安装升级内核所需的工具

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

22723-2pimo6tl04z.png

执行make -j8 (本次测试用的服务器 lscpu 看到的 cpu 核心数为8,如果不加-j 参数的话使用单线程编译,会很慢)

编译完,然后执行下面的命令

make modules
make modules_install
make install

执行完上述命令以后,重启即可

查看编译好的内核,已经升级到4.14.125

98716-qzc8487vbhd.png

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

67401-jdkqdy7mlk.png

编译的结果正常,没有任何报错

68983-ydfzccny1a.png

make install

06401-r4j7bkib2oc.png

根据报错提示,把编译好的 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

37647-tuhc8q4wfji.png

再次make install,编译安装成功

47126-gfkyduisvw4.png

open-cas版本信息

08278-aatxq31zv5o.png

3,配置open-cas

有两种配置cas 的方式,一种是手动,需要手动输入命令,另一种是自动配置,即开机自动初始化cas。

A,手动配置

先查看casadm 帮助命令

61479-p4jfxwff9z.png

查看磁盘

79025-jvhmte30c8.png

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

29468-0fp4ohvzfpl.png

casadm -A -i 1 -d /dev/sdb

上述命令是把/dev/sdb这块数据盘添加到实例id 为1的cas 缓存下

81906-8fq8pox3jow.png

查看当前配置好的缓存实例

79392-6m836zme0cl.png

继续添加一块数据盘

casadm -A -i 1 -d /dev/sdc

40807-32730yrxzto.png

查看当前缓存实例的运行状态,可以查看缓存命中率,以及缓存中的数据量

casadm -P -i 1

62033-8l2cqpz5flt.png

10046-bzbmdsp3h2a.png

查看当前磁盘分区结构,使用也很简单,格式化cas1-1 cas1-2即可,然后挂载。

82097-jug32jgxscn.png

70584-kbtvcpetacd.png

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

04908-p03y4kauozn.png

上述的使用过程都是手动创建,服务器重启以后配置就会丢失,如果需要开机自动配置且配置不丢失则需要配置cas 的全局配置文件

B,开机自动配置

查看磁盘wwn id

ll /dev/disk/by-id

99679-sh6hhjapoe.png

cd /etc/opencas
ls

59242-veu7r9o29dc.png

vi opencas.conf

83553-lr1q8yun38.png

casctl init 初始化cas,提示下面的报错信息,经查证,得知需要python3.6.7及以上的版本,而系统自带的是3.4.6

62084-e20bxdkv6x.png

升级系统默认自带的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

81280-qjs8rd3kt5a.png

继续初始化casctl init

73797-403cdub6x9n.png

参考链接:https://open-cas.github.io/guide_installing.html

本文作者:博主:     文章标题:Linux下SSD缓存加速之open cas试用
本文地址:https://www.mr-mao.cn/archives/open-cas-linux-performance-testing.html     
版权说明:若无注明,本文皆为“猫先生的日常点滴”原创,转载请保留文章出处。
最后修改:2019 年 09 月 06 日 07 : 54 AM
如果觉得我的文章对你有用,请随意赞赏,并分享给你觉得需要的人,谢谢!

发表评论