获取源码
1 | # uname -a |
从网上搜索下载Linux对应版本的源码,这里的源码版本为:3.10.0-327
查看cephfs client端模块
1 | # lsmod | grep ceph |
修改cephfs源码
1 | 到kernel源码目录 |
结合自己版本里的源码,随意修改,使dout()函数能正常打印log就ok;
1 | [root@server linux-3.10.0-327.el7]# cp /boot/config-3.10.0-327.el7.x86_64 ./ |
编译并替换cephfs的模块
编译cephfs使用的kernel module
1 | [root@server linux-3.10.0-327.el7]# make |
替换cephfs的这几个模块
1 | [root@server linux-3.10.0-327.el7]# lsmod | grep rbd |
并不是每次修改cephfs的代码,都需要编译整个kernel的,后续仅仅需要编译对应的module即可
1 | [root@server linux-3.10.0-327.el7]# make M=fs/ceph |
测试查看cephfs debug log
mount cephfs并触发写操作
1 | # mount -t ceph 10.10.1.1:6789:/ /mnt/ |
检查cephfs的kernel log
1 | # dmesg -c > /dev/null |
配置kernel log文件
若不想每次从dmesg里获取kernel debug log,在centos里可以配置到指定文件
1 | # vim /etc/rsyslog.conf |
之后就可以在/var/log/kern.log
里查看cephfs的debug log了