原稿url:http://www.pginjp.org/modules/newbb/viewtopic.php?viewmode=flat& amp;type=&topic_id=775&forum=22
编译安装KFS:
kfs:kosmosfs
環境:
os:centos5.3
metaserver:VM-CentOS-5-SHU
chunkservers:VM-CentOS-5-SHU-2,VM-CentOS-5-SHU-3,VM-CentOS-5-SHU-4
前提条件:sshでパスワード無しで認証になる
kfsのインストール
metaserverで下記の操作を行う
一、必要パッケージの準備
1、boostのインストール(ver1.34以上)
yum -y install boost boost-devel
2.gccのインストール(ver4.1以上)
yum -y install gcc gcc-c++ ←存在でなければ
3.cmakeのインストール(ver2.4.6)
cd /usr/local/src
wget http://www.cmake.org/files/v2.6/cmake-2.6.4.tar.gz
tar -zxvf cmake-2.6.4.tar.gz
cd /usr/local/src/cmake-2.6.4
./bootstrap --prefix=/usr/local
make
make install
4.log4cppのインストール(ver1.0)
cd /usr/local/src
wget http://downloads.sourceforge.net/proj ... pp-1.0/log4cpp-1.0.tar.gz
tar zxvf log4cpp-1.0.tar.gz
cd log4cpp-1.0
./configure
make
make install
5.xfs devel RPMs on Linuxのインストール
yum -y install xfsprogs xfsprogs-devel
二、kfsのビルド
cd /usr/local/
wget http://downloads.sourceforge.net/proj ... fs/kfs-0.3/kfs-0.3.tar.gz
tar zxvf kfs-0.3.tar.gz
cd kfs-0.3
mkdir build
cd build
vi /usr/local/kfs-0.3/CMakeLists.txtを編集110行に下記を追記
SET(JAVA_INCLUDE_PATH "/usr/java/latest/include")
SET(JAVA_INCLUDE_PATH2 "/usr/java/latest/include")
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo /usr/local/kfs-0.3/
gmake
gmake install
三、設定
mkdir /export/kosmix
vi /usr/local/kfs-0.3/scripts/machines.cfg
[metaserver]
node: VM-CentOS-5-SHU
clusterkey: kfs-test-cluster
rundir: /export/kfsmix/kfs/meta
baseport: 20000
loglevel: INFO
numservers: 3
[chunkserver_defaults]
rundir: /export/kfsmix/kfs/chunk
chunkDir: /export/kfsmix/kfs/chunk/bin/kfschunk
baseport: 30000
space: 3400 G
loglevel: INFO
vi /usr/local/kfs-0.3/conf/machines.txt
VM-CentOS-5-SHU-2
VM-CentOS-5-SHU-3
VM-CentOS-5-SHU-4
vi /usr/local/kfs-0.3/conf/ChunkServer.prp
# Configuration for chunk server:
# meta server location
chunkServer.metaServer.hostname = VM-CentOS-5-SHU
chunkServer.metaServer.port = 30000
# port to open for client connections
chunkServer.clientPort = 22000
# Directory for storing the chunks
chunkServer.chunkDir = ./chunks
chunkServer.logDir = ./logs
# provide 300G of storage space
chunkServer.totalSpace = 300000000000
四、chunkサーバをファイルを移す
# rsync -av /usr/local/kfs-0.3/ 172.16.0.48:/usr/local/kfs-0.3/
# rsync -av /usr/local/kfs-0.3/ 172.16.0.49:/usr/local/kfs-0.3/
# rsync -av /usr/local/kfs-0.3/ 172.16.0.52:/usr/local/kfs-0.3/
ステップ一の操作を各chunkサーバに全部行う必要
五、セットアップ
cd scripts
# python kfssetup.py -f machines.cfg -m machines.txt -b ../build -w ../webui
六、起動と停止
起動コマンド
# python kfslaunch.py -f machines.cfg -m machines.txt -s
停止コマンド:
# python kfslaunch.py -f machines.cfg -m machines.txt -S
七、使い方
1、ファイルをkfsにputする方法
cptokfsコマンドで
例:
./cptokfs -s localhost -p 20000 -d /home/hadoop/test -k /pub/
2、ファイルをkfsにgetする方法
./cpfromkfs -s localhost -p 20000 -k /pub/test -d /home/hadoop/newtest ←コピー先フォルダ既に存在するのを条件として
3、kfsシェールで
./kfsshell -s localhost -p 20000 ←シェール環境へ入る
サポートされているシェールコマンドは、下記のとおり
cd ←ディレクトリを変わる
changeReplication ← レプリケーションを修正
cp ←ファイルをコピー
ls ←ファイル一覧を表示
mkdir ←ディレクトリを作成
mv ←フォルダかファイルを移動
rm ←ファイルを削除
rmdir ←ディレクトリを削除
stat ←ファイルかフォルダの属性を取得
pwd ←今のパースを表示
上記のコマンドの使い方は、linuxと略同じ
kfs fuse文件系统:
1.ビルド
# cd /usr/local/kfs-0.3
# vi CMakeLists.txt
修正前
SET(Fuse_LIBRARY_DIR "")
SET(Fuse_INCLUDE_DIR "")
修正後
SET(Fuse_LIBRARY_DIR "/usr/local/lib")
SET(Fuse_INCLUDE_DIR "/usr/local/include")
# cd build
# make install
2.マウント
# vi /usr/local/kfs-0.3/build/bin/kfs.prp
# Where is the metaserver
metaServer.host = VM-CentOS-5-SHU
metaServer.port = 20000
# mkdir /mnt/kfs
# kfs_fuse /mnt/kfs -f
3.テスト
略
結論:基本機能もまだまだ、fuse-dfsよりもっと不安定と機能が少ない