增加内核的ceph模块的日志打印
生活随笔
收集整理的這篇文章主要介紹了
增加内核的ceph模块的日志打印
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文主要是在梳理cephfs內核方式掛載的內核代碼邏輯所做的準備
環境:Centos 7.5
內核源碼版本:3.10.0-862.el7.x86_64
打開ceph模塊的debug信息
單獨編譯ceph模塊的.ko文件
ceph在內核的通用模塊主要有三個:
ceph.ko模塊路徑:/usr/src/kernels/3.10.0-862.el7.x86_64/fs/cephrbd.ko模塊路徑:/usr/src/kernels/3.10.0-862.el7.x86_64/drivers/blocklibceph.ko模塊路徑:/usr/src/kernels/3.10.0-862.el7.x86_64/net/ceph
編譯libceph.ko如下,編譯其他的模塊類似
make CONFIG_BLK_DEV_LIBCEPH=m -C /usr/src/kernels/3.10.0-862.el7.x86_64 M=/kernel/linux-3.10.0-862.11.6.el7
其中路徑/usr/src/kernels/3.10.0-862.el7.x86_64是指取出該目錄下的makefile來編譯/kernel/linux-3.10.0-862.11.6.el7目錄下的源碼
編出來的ko文件即在對應目錄/kernel/linux-3.10.0-862.11.6.el7/net/ceph之下
此時需要將.ko文件放置在/usr/lib/modules/3.10.0-862.el7.x86_64/kernel/net/ceph/目錄下,并更新依賴depmod -a,這個時候系統加載就可以從該目錄下加載需要的驅動文件
打開內核的deubg系統調試模塊
- 確保系統可以使用dynamic 功能:
sudo cat /boot/config-'uname -r' | grep DYNAMIC_DEBUG,顯示如下則表明系統調試功能可用:[root@node1 ~]# sudo cat /boot/config-3.10.0-123.el7.x86_64 | grep DYNAMIC_DEBUG CONFIG_DYNAMIC_DEBUG=y - 掛載debugfs,并打開想要輸出的日志模塊
echo "module libceph +p" >/sys/kernel/debug/dynamic_debug/control開啟libceph模塊的調試
echo "module libceph -p" >/sys/kernel/debug/dynamic_debug/control關閉libceph模塊的調試
echo "module ceph +p" >/sys/kernel/debug/dynamic_debug/control開啟ceph模塊的調試
echo "module ceph -p" >/sys/kernel/debug/dynamic_debug/control關閉ceph模塊的調試 - 通過
echo "7 7 7 7" > /proc/sys/kernel/printk設置內核打印日志級別 0~7, 默認 4 4 1 7。其級別消息如下所示:#define KERN_EMERG 0 /*緊急事件消息,系統崩潰之前提示,表示系統不可用*/ #define KERN_ALERT 1 /*報告消息,表示必須立即采取措施*/ #define KERN_CRIT 2 /*臨界條件,通常涉及嚴重的硬件或軟件操作失敗*/ #define KERN_ERR 3 /*錯誤條件,驅動程序常用KERN_ERR來報告硬件的錯誤*/ #define KERN_WARNING 4 /*警告條件,對可能出現問題的情況進行警告*/ #define KERN_NOTICE 5 /*正常但又重要的條件,用于提醒。常用于與安全相關的消息*/ #define KERN_INFO 6 /*提示信息,如驅動程序啟動時,打印硬件信息*/ #define KERN_DEBUG" 7 /*調試級別的消息*/
以上四個數分別對應如下:
- 控制臺日志級別:優先級高于該值的消息將被打印至控制臺
- 默認的消息日志級別:將用該優先級來打印沒有優先級的消息
- 最低的控制臺日志級別:控制臺日志級別可被設置的最小值(最高優先級)
- 默認的控制臺日志級別:控制臺日志級別的缺省值
- 通過命令
dmesg -wT來實時查看內核掛載cephfs的日志打印,同樣該方法可以適用于內核各個日志模塊。關于內核方式掛載cephfs詳細可以查看內核方式掛載cephfs
調整內核的日志打印之后,dmesg中的日志如下:
[Tue May 7 21:53:40 2019] ceph: do_getattr inode ffff8b8813848330 mask As mode 040777
[Tue May 7 21:53:40 2019] ceph: __ceph_caps_issued_mask ffff8b8813848330 cap ffff8b9ea6d8a078 issued pAsLsXs (mask As)
[Tue May 7 21:53:40 2019] ceph: __touch_cap ffff8b8813848330 cap ffff8b9ea6d8a078 mds0
[Tue May 7 21:53:40 2019] ceph: do_getattr inode ffff8b8813848330 mask pAsLsXsFs mode 040777
[Tue May 7 21:53:40 2019] ceph: do_request on ffff8ba49a7c6c00
[Tue May 7 21:53:40 2019] ceph: reserve caps ctx=ffff8ba49a7c6f50 need=1
[Tue May 7 21:53:40 2019] ceph: reserve caps ctx=ffff8ba49a7c6f50 1025 = 2 used + 1 resv + 1022 avail
[Tue May 7 21:53:40 2019] ceph: __register_request ffff8ba49a7c6c00 tid 48775
[Tue May 7 21:53:40 2019] ceph: __choose_mds ffff8b8813848330 is_hash=0 (0) mode 0
[Tue May 7 21:53:40 2019] ceph: choose_mds ffff8b8813848330 1.fffffffffffffffe mds0 (auth cap ffff8b9ea6d8a078)
[Tue May 7 21:53:40 2019] ceph: lookup_mds_session ffff8ba5857da800 8
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 8 -> 9
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 9 -> 10
[Tue May 7 21:53:40 2019] ceph: do_request mds0 session ffff8ba5857da800 state open
[Tue May 7 21:53:40 2019] ceph: prepare_send_request ffff8ba49a7c6c00 tid 48775 getattr (attempt 1)
[Tue May 7 21:53:40 2019] ceph: inode ffff8b8813848330 1.fffffffffffffffe
[Tue May 7 21:53:40 2019] ceph: r_parent = (null)
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 10 -> 11
[Tue May 7 21:53:40 2019] ceph: mdsc con_get ffff8ba5857da800 ok (11)
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 11 -> 12
[Tue May 7 21:53:40 2019] ceph: mdsc con_get ffff8ba5857da800 ok (12)
[Tue May 7 21:53:40 2019] ceph: mdsc put_session ffff8ba5857da800 12 -> 11
[Tue May 7 21:53:40 2019] ceph: do_request waiting
[Tue May 7 21:53:40 2019] ceph: mdsc con_put ffff8ba5857da800 (10)
[Tue May 7 21:53:40 2019] ceph: mdsc put_session ffff8ba5857da800 11 -> 10
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 10 -> 11
[Tue May 7 21:53:40 2019] ceph: mdsc con_get ffff8ba5857da800 ok (11)
[Tue May 7 21:53:40 2019] ceph: mdsc con_put ffff8ba5857da800 (10)
[Tue May 7 21:53:40 2019] ceph: mdsc put_session ffff8ba5857da800 11 -> 10
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 10 -> 11
[Tue May 7 21:53:40 2019] ceph: mdsc con_get ffff8ba5857da800 ok (11)
[Tue May 7 21:53:40 2019] ceph: mdsc get_session ffff8ba5857da800 11 -> 12
[Tue May 7 21:53:40 2019] ceph: mdsc con_get ffff8ba5857da800 ok (12)
[Tue May 7 21:53:40 2019] ceph: handle_caps from mds0
總結
以上是生活随笔為你收集整理的增加内核的ceph模块的日志打印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有个人从飞机上掉下去然后穿上机甲打怪兽是
- 下一篇: 梦6多少钱啊?