如何在gluster的源码中添加自己的xlator,gluster源码xlator


本文并不说明如何编写一个xlator。在glusterfs3.6.1下验证成功

 

目标在glusterfs-3.6.1/xlators/debug/下建立一个自己的xlator库并可以统一安装到系统目录下

一、           解压glusterfs3.6.1.tar.gz

tar zxvf glusterfs3.6.1.tar.gz

cd glusterfs3.6.1

 

 

二、           创建自定义xlator目录testX

mkdir -p xlators/debug/testX/src/

 

三、           修改configure.ac文件

vim configure.ac

增加以下语句在AC_CONFIG_FILES中

xlators/debug/testX/Makefile

xlators/debug/testX/src/Makefile

 

四、           修改父目录中的Makefile.am

cd xlators/debug/

vim Makefile.am

在SUBDIRS变量的最后增加目录名testX

    

        

五、           进入testX目录,创建Makefile.am文件

cd testX

vim Makefile.am

文件内容如下:

SUBDIRS = src

CLEANFILES =

六、           进入src目录,创建Makefile.am文件

cd src

vim Makefile.am

文件内容如下:    

xlator_LTLIBRARIES = testX.la

xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testX

 

testX _la_LDFLAGS = -module -avoid-version

 

testX _la_SOURCES = testX.c

testX _la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la

 

noinst_HEADERS = testX.h

AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src

 

AM_CFLAGS = -Wall $(GF_CFLAGS)

 

CLEANFILES =

 

 

        

说明:

要上图中的testX_la*中的前缀testX必须和xlator_LTLIBRARIES的文件名前缀一致

xlator_LTLIBRARIES后为要生成的库的名字

xlatordir后为存放库的路径,上图中将testX.so库存放在安装目录下的xlator的testX目录下

testX_la_SOURCES后跟.c文件列表

noinst_HEADERS后跟头文件列表

七、           创建自己的testX.c和testX.h文件

 

八、           编译安装

编辑完成后,从新进入到glusterfs3.6.1目录下,运行如下命令即可将新的testX文件安装到a安装目录下的testX目录中

cd ../../../../

./autogen.sh

./ configure

make

make install

 

 

九、           修改配置文件加入testX

 

相关内容