KFS部署与应用

[b][color=red]原创文章:转载请注明出处http://wangwei3.iteye.com/blog/905856[/color][/b]

[b]安装软件[/b]

[b]一、安装依赖软件[/b]
1、安装log4cpp
tar xvzf log4cpp-1.0.tar.gz
cd log4cpp-1.0
./configure
make
make install

2、安装xfs
tar xvzf xfsprogs-3.0.1.tar.gz
cd xfsprogs-3.0.1
./configure
make
make install
make install-dev

3、安装cmake
tar xvzf cmake-2.6.4.tar.gz
cd cmake-2.6.4
./bootstrap
make
make install

4、安装boost
tar xvzf boost_1_39_0.tar.gz
cd boost_1_39_0

5、安装fuse

[color=red]
安装软件还有一个简单的方法:apt-get install 软件名。例如(apt-get install rails)

如果是桌面版那么安装软件会容易的多。
只需要 system->Administration->Synaptic Package Manager 搜索到你需要安装的软件后 右键Mark for Installation[/color]

SSH
检查ssh localhost命令是否需要密码。 如果没有,执行下列命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

[b]二、开始编译[/b]
mkdir ~/code
cd ~/code
安装SVN
用SVN下载项目svn co https://kosmosfs.svn.sourceforge.net/svnroot/kosmosfs/trunk kfs
上面的kfs是下载到的目录

本文假设KFS目录: ~/code/kfs. 为了支持FUSE(fuse version 2.7.3 or higher). 编辑 ~/code/kfs/CMakeLists.txt

SET(Fuse_LIBRARY_DIR "/usr/local/lib")
SET(Fuse_INCLUDE_DIR "/usr/local/include")


1. cd ~/code/kfs
2. mkdir build
3. cd build

选择下列三个其中一个
4.1 cmake ~/code/kfs/ #-- will build DEBUG binaries by default
4.2 cmake -DCMAKE_BUILD_TYPE:STRING="Release" ~/code/kfs #-- will build Release binaries by default
4.3 cmake -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" ~/code/kfs #-- will build reldbg binaries by default
[color=red]官网建议用4.3来生成[/color]

5. gmake
6. gmake install
[color=red]如果gmake不行用make也是一样的[/color]

生成如下文件夹

Executables will be in: ~/code/kfs/build/bin
Libraries will be in: ~/code/kfs/build/lib


生成JAVA支持:

1. cd ~/code/kfs
2. ant jar

得到如下文件
* ~/code/kfs/build/classes --- This will contain the Java class files
* ~/code/kfs/build/kfs.jar --- The jar file containing the Java classes

将jar加到 CLASSPATH 环境变量

#export CLASSPATH=${CLASSPATH}:~/code/kfs/build/kfs-[version].jar

生成 Python 支持

1. cd to ~/code/kfs/src/cc/access
2. 编辑 kfs_setup.py ,设置include 路径
kfsext = Extension('kfs', include_dirs ['~/code/kfs/src/cc/', '<path to boost>'])
3. python kfs_setup.py ~/code/kfs/build/lib/ build #生成共享库文件_kfs.so_.
4. python kfs_setup.py ~/code/kfs/build/lib/ install #To install in site-packages for python:

(
安装在其它路径如: ~/code/kfs/build/lib
python kfs_setup.py ~/code/kfs/build/lib install --home=~/code/kfs/build/lib

如果安装在其它路径,更新 PYTHONPATH 、LD_LIBRARY_PATH环境变量:
export PYTHONPATH=${PYTHONPATH}:~/code/kfs/build/lib/lib64/python
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/code/kfs/build/lib
)

[b]开始部署[/b]
有两种部署方式:
-单机部署:metaserver/chunkserver都运行在同一台机器
-分布式部署:服务运行在一组机器

为了区分两种部署方式,配置文件定义了三个变量:
* node: This defines the machine name where the binary should run
* rundir: This defines the directory on the machine where KFS binaries will be installed.
* baseport: This port at which the metaserver/chunkserver process will listen for connection from clients
* loglevel: The level for outputting messages. Since KFS uses log4cpp, the values are INFO/DEBUG

metaserver的配置变量:
* backup_path: This can be used to specify the (remote) location to
which the metaserver checkpoint files should be backed up to.

* clusterkey : A key that is shared between metaserver/chunkserver.

chunkservers的配置变量:
* space: The storage space exported by a chunkserver for storing chunks (units are 'G' for GigaBytes and 'M' for MegaBytes)
* chunkDir : The list of directories used to store chunk files on the chunkserver nodes.
For a JBOD configuration, this would be a space separated list of directory names.

默认
- meta 服务的 checkpoint/log文件存储路劲
${rundir}/bin/kfscp and ${rundir}/bin/kfslog
- chunkserver 服务的 checkpoint/log文件存储路劲
${rundir}/bin/logs
- chunkserver's chunks are stored in ${rundir}/bin/kfschunk. This
value is overridden when "chunkdir" variable is defined for a chunkserver.


NOTE: It is not advisable to change the default location for either
server's checkpoint/log files. Changing them adversely affects the
other helper scripts that are provided (such as, backing up the meta
server's logs/checkpoint files, periodically cleaning out old
checkpoint/log files).

以下文件都在/code/kfs/scripts目录下
两种配置文件格式. 定义所有服务环境的配置文件:machines.cfg:

[metaserver]
node: machine1(机器名或者IP)
clusterkey: kfs-test-cluster
rundir: /mnt/kfs/meta
baseport: 20000
loglevel: INFO
numservers: 2
[chunkserver_defaults]
rundir: /mnt/kfs/chunk
chunkDir: /mnt/kfs/chunk/bin/kfschunk
baseport: 30000
space: 3400 G
loglevel: INFO

例出所有节点的配置文件:machines.txt. (自己手工写)

10.2.3.1(IP)
10.2.3.2(IP)
10.2.3.3(IP)

To install the KFS binaries, perform the following steps:

1. cd ~/code/kfs/scripts
2. 设置好配置文件
3. 运行:
#--所有服务在同一台主机--
python kfssetup.py -f machines.cfg -m machines.txt -b ../build -w ../webui -s
#--服务在多台主机--
python kfssetup.py -f machines.cfg -m machines.txt -b ../build -w ../webui
[color=red]"-m" 只支持 KFS-0.2.3 或更高版本[/color]

运行KFS

cd ~/code/kfs/scripts
python kfslaunch.py -f machines.cfg -m machines.txt -s

如果想单独关闭某个 chunkserver ,则可以在 chunkserver 中执行以下命令:
sudo scripts/kfsrun.sh -S -c -f bin/ChunkServer.prp
这样只会关闭这个 chunkserver ,而不影响其他 server.

关闭后重新启动: scripts/kfsrun.sh -s -c -f bin/ChunkServer.prp

停止KFS

cd ~/code/kfs/scripts
python kfslaunch.py -f machines.cfg -m machines.txt -S

监控界面
http://ip(metaserver):20050/

进入shell
cd ~/code/kfs/build/bin
tools/kfsshell -s ip(metaserver) -p 端口(默认为20000)
用help查看下命令吧
你可以用mkdir test来创建文件等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值