KFS源码编译与安装

1.安装依赖软件

为了编译和运行KFS文件系统,需要安装以下软件包:

  • Boost (1.34或以上)
  • cmake (2.4.6或以上)
  • log4cpp (1.0或以上)
  • gcc version (4.1或以上)
  • xfs devel RPMs on Linux

下面介绍的是手动安装以上软件包的过程,这里假设你已经下载完成软件包压缩文件。

1、安装gcc

tar zxvf gcc-4.1.2.tar.gz
mkdir/usr/local/gcc-4.1.2
cd gcc-4.1.2
./configure --prefix=/usr/local/gcc-4.1.2 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux--with-system-zlib --enable-languages=c,c++,java
make
make install

备注:以上过程将gcc安装在/usr/local/gcc-4.1.2目录下,支持C/C++和JAVA语言,其它选项参见gcc提供的帮助说明。

2、安装log4cpp

tar xvzf log4cpp-1.0.tar.gz
cd log4cpp-1.0
./configure
make
make install

3、安装xfs

tar xvzf xfsprogs-3.0.1.tar.gz
cd xfsprogs-3.0.1
./configure
make
make install
make install-dev

4、安装cmake

tar xvzf cmake-2.6.4.tar.gz
cd cmake-2.6.4
./bootstrap
make
make install

5、安装boost

tar xvzf boost_1_39_0.tar.gz
cd boost_1_39_0
./bootstrap.sh
./bjam -sTOOLS=gcc --without-python install

2.编译和安装KFS

首先,到sourceforge下载kfs-0.5.tar.gz(点击下载),这里假设下载后目录为用户根目录。

然后,解压KFS软件包,这里假设解压后KFS所在目录:~/kfs-0.5,编译源码所在目录:~/kfs-0.5/build。

为了完整编译KFS,需要有以下三部分:

  • 编译C++部分,生成MetaServer/ChunkServer,各种API操作的tools,C++客户端;
  • 编译Java部分,生成kfs.jar,即Java客户端,以通过Java JNI调用本地的C++方法;
  • 编译Python扩展模块,生成Python客户端。

2.1 编译C++部分

tar xvzf kfs-0.5.tar.gz
cd kfs-0.5
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo ~/kfs-0.5
gmake
gmake install

编译之后,二进制文件将被安装在以下目录:

  • 可执行文件:~/kfs-0.5/build/bin
  • 库文件:~/kfs-0.5/build/lib

备注:编译KFS过程中,带上了debug调试信息。

2.2 编译Java部分

cd ~/kfs-0.5
ant jar

编译之后,生成的文件为:

  • Java class文件:~/kfs-0.5/build/classes
  • Java Jar包:~/kfs-0.5/build/kfs-0.5.jar

最后,将生成的Jar包添加到CLASSPATH环境变量中:

export CLASSPATH=${CLASSPATH}:~/kfs-0.5/build/kfs-0.5.jar

2.3 编译Python扩展模块

为了编译Python扩展模块,首先需要进行步骤2.1,生成KFS客户端库文件,这里库文件所在目录是:~/kfs-0.5/。

编译Python扩展模块的步骤:

cd to ~/kfs-0.5/src/cc/access
Edit kfs_setup.py and setup the include path. Specifically, kfsext = Extension('kfs', include_dirs ['kfs/src/cc/', '<path to boost>'])
python kfs_setup.py ~/kfs-0.5/build/lib/ build

编译之后,生成共享链接库kfs.so,进行安装:

python kfs_setup.py ~/kfs-0.5/build/lib/ install

如果要安装到一个指定的目录下(如~/kfs-0.5/build/lib),需要设置home选项:

python kfs_setup.py ~/kfs-0.5/build/lib install --home=~/kfs-0.5/build/lib

同时,需要更新PYTHONPATH和LD_LIBRARY_PATH环境变量:

export PYTHONPATH=${PYTHONPATH}:~/kfs-0.5/build/lib/lib64/python
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/kfs-0.5/build/lib 

3.启动KFS服务进程

1、 MetaServer

cd ~/kfs-0.5/build/src/cc/meta
cp ~/kfs-0.5/conf/MetaServer.prp ./
./metaserver MetaServer.prp

备注:这里需要提前创建MetaServer.prp中指定的和logDir和cpDir目录:./kfslog和./kfscp。

2、ChunkServer

cd~/kfs-0.5/build/src/cc/chunk
cp ~/kfs-0.5/conf/ChunkServer.prp ./
./chunkserver ChunkServer.prp

3、KfsClient

cd ~/kfs-0.5/build/src/cc/tools
./kfsshell –s <meta server name> -p <port>
./cptokfs –s <meta server name> -p <port> -d <source path> -k <kfs path>
./cpfromkfs –s <meta server name> -p <port> -d <source path> -k <kfs path>

备注:~/kfs-0.5/build/src/cc/tools目录下有各种API操作工具,如kfsshell、cptokfs、cpfromkfs等,这里没有一一列举。

4.查看和关闭KFS服务进程

1、查看进程

ps –aux | grep metaserver
ps –aux | grep chunkserver
ps –aux | grep kfsshell

2、关闭进程

kill -9 <pid>

5.参考资料

  • http://code.google.com/p/kosmosfs/
  • http://sourceforge.net/projects/kosmosfs/

你可能感兴趣的:(KFS源码编译与安装)