`
wangwei3
  • 浏览: 120971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

KFS部署与应用

阅读更多
原创文章:转载请注明出处http://wangwei3.iteye.com/blog/905856

安装软件

一、安装依赖软件
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


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

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


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

二、开始编译
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
官网建议用4.3来生成

5. gmake
6. gmake install
如果gmake不行用make也是一样的

生成如下文件夹

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
)

开始部署
有两种部署方式:
-单机部署: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
"-m" 只支持 KFS-0.2.3 或更高版本

运行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
分享到:
评论

相关推荐

    opensource网络文件系统kfs

    3. **Client**:客户端应用程序通过API与KFS交互,执行读写操作。客户端缓存元数据,减少对主服务器的通信,提高性能。 **关键特性** 1. **分块存储**:KFS将文件分割成固定大小的块,每个块在多个服务器上冗余存储...

    HDFS和KFS的比较.pdf

    KFS则主要用C++实现,侧重于高性能,适合于存储日志数据、MapReduce数据等,适用于大规模Web应用。 在体系架构方面,HDFS和KFS都采用分布式文件系统的设计,它们的元数据管理采用集中式方式,而数据则被分割成块...

    kfs:凯尔的文件系统

    这个文件包含了kfs的核心功能和启动脚本,可能是部署和运行kfs系统的基础。通过分析和编译这个文件,我们可以深入了解kfs的工作原理,甚至对其进行定制和扩展,以满足特定的存储需求。 总之,"kfs:凯尔的文件系统...

    Sina SAE wordpress 3.4.2

    新浪SAE(Sina App Engine)是新浪云提供的一款基于云计算的服务,它为开发者提供了便捷的Web应用部署平台。WordPress,作为全球最受欢迎的开源博客系统,其3.4.2版本在SAE上的部署,不仅简化了传统服务器的配置过程...

    springboot集成drools实现重新加载规则

    这对于业务规则频繁变更的场景非常有用,因为这样可以显著减少部署频率和停机时间。 首先,我们需要在Spring Boot项目中引入Drools的依赖。在pom.xml文件中添加如下Maven依赖: ```xml &lt;groupId&gt;org.kie ...

    规则引擎Drools 中文使用指南

    - **易于集成**:作为Java平台的一部分,Drools与现有的Java应用无缝集成,简化了开发和部署过程。 - **业务友好**:非技术人员如业务分析师也能轻松理解和管理规则,增强了业务规则的透明度。 #### 二、Drools的...

    大数据学习路线+知识点大梳理.pdf

    - **应用场景**: 支持HDFS集群与各种关系型数据库之间的数据交换。 - **特点** - **灵活性**: 支持多种数据源和目标。 - **高性能**: 高效的数据传输能力。 #### 八、基本开发工具 - **Linux操作系统** - **...

    分布式文件系统介绍

    ### 分布式文件系统介绍 #### 一、FastDFS **FastDFS简介** FastDFS是一款由国人基于...- **更简单的管理**:如何简化系统的部署和管理流程。 - **更丰富的功能**:如何提供更多的高级功能满足不同场景下的需求。

Global site tag (gtag.js) - Google Analytics