Glusterfs (ls操作代码处理分析)

本文详细介绍了如何在CentOS 6.2虚拟机上使用Glusterfs 3.3-release进行分析,特别是通过添加patch启用translator调用的trace。步骤包括下载并安装Glusterfs,启动glusterd,创建和挂载卷,以及设置日志级别为TRACE。执行ls命令后,分析gluster.log文件中记录的ls命令处理过程,展示了从fuse到各个translator的调用路径,包括io-stats, md-cache, quick-read, io-cache, defaults, dht, afr等组件。通过对日志的分析,揭示了Glusterfs文件系统协议中的处理流程。" 8755828,1407215,解决PDF加密问题:使用iText库的实战指南,"['PDF开发', 'Java编程', '加密技术', '字体处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用glusterfs3.3-release版本进行分析,ls命令执行后,抓取trace, 分析glusterfs的代码处理过程,用一台centos6.2虚拟机进行即可,创建卷及挂载过程步骤如下:

1.  官网下载release版本路径如下:http://www.gluster.org,下载后解压,然后我们先打入一个patch,使能glusterfs各个translator调用的trace,patch如下:

--- /root/stack.h       2013-06-13 00:57:40.244154611 -0700
+++ libglusterfs/src/stack.h    2013-06-07 01:10:59.752761043 -0700
@@ -248,6 +248,7 @@
                 }                                                       \
                 UNLOCK(&frame->root->stack_lock);                       \
                 old_THIS = THIS;                                        \
+                gf_log(old_THIS->name, GF_LOG_TRACE, " enter stack");   \
                 THIS = obj;                                             \
                 fn (_new, obj, params);                                 \
                 THIS = old_THIS;                                        \
@@ -287,6 +288,7 @@
                 UNLOCK(&frame->root->stack_lock);                       \
                 fn##_cbk = rfn;                                         \
                 old_THIS = THIS;                                        \
+                gf_log(old_THIS->name, GF_LOG_TRACE, " enter stack cookie");   \
                 THIS = obj;                                             \
                 fn (_new, obj, params);                                 \
                 THIS = old_THIS;                                        \
@@ -311,6 +313,7 @@
                 }                                                       \
                 UNLOCK(&frame->root->stack_lock);                       \
                 old_THIS = THIS;                                        \
+                gf_log(old_THIS->name, GF_LOG_TRACE, " exit stack");    \
                 THIS = _parent->this;                                   \
                 frame->complete = _gf_true;                             \
                 frame->unwind_from = __FUNCTION__;                      \
@@ -338,6 +341,7 @@
                 }                    &nbs

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值