这一篇 http://blog.csdn.net/jrckkyy/archive/2010/11/24/6032877.aspx 里面已经安装好了必要的依赖软件和配置好了环境变量
现在开始编译,安装和简单的操作,我们这里采用在同一台机器上运行三个chunkserver,一个metaserver。
/data/jrckkyy/kfs0.5 为kfs解压开的目录下面开始
cd /data/jrckkyy/kfs0.5
mkdir build
cd build
// 我们先编译debug版本的
mkdir debug
cmake ../../
make install // 此时编译出来的二进制文件会自动放在 /data/jrckkyy/kfs0.5/build/debug/bin 下
// 编译release版本的
mkdir ../release;cd ../release;
cmake -D CMAKE_BUILD_TYPE=release ../../
make install // 此时编译出来的二进制文件会自动放在 /data/jrckkyy/kfs0.5/build/release/bin 下
// 编译带有调试信息的release版本
mkdir ../reldbg;cd ../reldbg
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo ../../
make install // 此时编译出来的二进制文件会自动放在 /data/jrckkyy/kfs0.5/build/reldbg/bin 下
// metaserver chunkserver 工具命令等 的二进制文件 我们现在编译好了,我们这里将三个chunkserver,一个metaserver安装在一个机器上
cd /data/jrckkyy/kfs0.5/script/
vi machines_local.cfg // 建立配置文件
# KFS Machine configuration file## The following configuration is a single node KFS setup. There is# one meta server and 2 chunk servers. The chunk servers are exporting # 30,000,000 bytes or 30 G apiece. Note the unique values for the baseport, rundir.#[metaserver]node: localhostrundir: /data/metaserverrundirbaseport: 20000clusterkey: test-cluster[chunkserver1]node: localhostrundir: /data/chunkserver1rundirbaseport: 30000 space: 30 G[chunkserver2]node: localhostrundir: /data/chunkserver2rundirbaseport: 40000 space: 30000 M [chunkserver3]node: localhostrundir: /data/chunkserver3rundirbaseport: 50000 space: 30000000000
// 将metaserver chunkserver 工具程序 shell等安装到目标机器,这里采用最多25个线程并发安装25个节点,如果已经安装了,会自动忽略掉
python kfssetup.py -f machines_local.cfg -b ../build -w ../webui/ -s 0
// 启动刚才配置文件里的所有机器,如果已经启动了会自动忽略掉
python kfslaunch.py -f machines_local.cfg --start // 当然 --stop 是停止
// 用自带的ping命令 查看当前metaserver正在连接着控制的机器信息
../build/bin/tools/kfsping -m -s localhost -p 20000
Up servers: 3s=202.106.199.36, p=40000, rack=0, used=0(GB), free=29.2969(GB), util=0%, nblocks=0, lastheard=8 (sec), ncorrupt=0, nchunksToMove=0, numDrives=1s=202.106.199.37, p=30000, rack=0, used=0(GB), free=30(GB), util=0%, nblocks=0, lastheard=21 (sec), ncorrupt=0, nchunksToMove=0, numDrives=1s=202.106.199.36, p=50000, rack=0, used=0(GB), free=27.9397(GB), util=0%, nblocks=0, lastheard=5 (sec), ncorrupt=0, nchunksToMove=0, numDrives=1
// 登录上 metaserver 执行shell命令 , 可以执行一些简单的shell命令,rm,rmdir,mv,stat,pwd等等,changeReplication用于改变某个文件的备份数量
python kfsshell.py -f machines_local.cfg -b ../build/release/bin/
KfsShell> Unknown cmd: Supported cmds are: cdchangeReplicationcplsmkdirmvrmrmdirstatpwdappendType <cmd name> --help for command specific helpKfsShell>