现在开始编译,安装和简单的操作,我们这里采用在同一台机器上运行三个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: localhost
rundir: /data/metaserverrundir
baseport: 20000
clusterkey: test-cluster
[chunkserver1]
node: localhost
rundir: /data/chunkserver1rundir
baseport: 30000
space: 30 G
[chunkserver2]
node: localhost
rundir: /data/chunkserver2rundir
baseport: 40000
space: 30000 M
[chunkserver3]
node: localhost
rundir: /data/chunkserver3rundir
baseport: 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: 3
s=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=1
s=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=1
s=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:
cd
changeReplication
cp
ls
mkdir
mv
rm
rmdir
stat
pwd
append
Type <cmd name> --help for command specific help
KfsShell>