kfs的安装与配置

本文档详述了KFS的安装与配置过程,包括安装依赖、KFS的安装步骤、配置运行KFS、启动服务及客户端操作。涉及的依赖库有gcc、cmake、liblog4cpp等,安装过程涉及编译选项设置、Python扩展模块安装,并强调了SSH无密码登录配置的重要性。同时,提供了单节点与多节点的配置文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装依赖代码:
    0、g++ 、 gcc(需要4.2或以上版本)
    1、cmake
    2、liblog4cpp5 、 liblog4cpp5-dev
    3、libboost-filesystem1.34.1 、 libboost-filesystem-dev 、 libboost-dev (需要1.34.1或以上版本)
    4、zlib1g 、 zlib1g-dev
    5、libssl0.9.8 、 libssl-dev
    6、openssl 、 openssl-blacklist 、 openssl-doc 、 libssl-dev 、 openssh-server 、 openssh-blacklist 、 openssh-client
    7、libfuse-dev
    8、python2.5-dev
    9、sun-java6-jre 、 sun-java6-jdk
        配置JAVA环境变量: JAVA_HOME=/usr/lib/jvm/java-6-sun
                        CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
(在0.3中,需要加入xfs-dev)

二、安装KFS(0.2.2)步骤:
    1、解压压缩代码,若解压后文件为~/kfs-version。
           将~/kfs-version/CMakeLists.txt中,
        # Fill in the path to fuse library
        SET(Fuse_LIBRARY_DIR "")
        SET(Fuse_INCLUDE_DIR "")
        设置补全,这样使得kfs支持Fuse扩展

    2、在~/kfs-version下创建目录结构:
        ~/kfs-version/build
                           /debug -- debug 编译区
                      /release -- release 编译区 ,在此目录的/bin/tools下有使用kfs的脚本
                      /reldbg -- 用于debug的release 编译区

    3、具体编译,
        在~/kfs-version/build下,cmake ~/kfs-version , make , sudo make install;
        在~/kfs-version/build/debug下,cmake ~/kfs-version , make , sudo make install;
        在~/kfs-version/build/release下,cmake -DCMAKE_BUILD_TYPE:STRING="Release" ~/kfs-version , make , sudo make install;
        在~/kfs-version/build/reldbg下,cmake -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" ~/kfs-version , make , sudo make install;

    4、安装 PYTHON扩展模块

      在~/kfs-version/src/cc/access下,将 kfs_setup.py 中的:
        kfsext = Extension('kfs',include_dirs = ['/home/sriram/code/kosmosfs/src/cc/'],此变量路径更改为自己的合适路径。

      编译:在~/kfs-version/src/cc/access下,
        python kfs_setup.py ~/kfs-version/build/lib/ build ;
        sudo python kfs_setup.py ~/kfs-version/build/lib/ install。

    5、为安装KFS BINARIES配置实现SSH WITH OUT PASSWD   
       注:1. 大致步骤为在每个节点上生成公钥并发放到其余节点上(包括本机)
           2. 具体请参考--SSH配置.TXT
           3. 如果不进行SSH WITH OUT PASSWD 的配置那么在安装过程中就需要不断输入SSH登录密码,而且安装有可能失败.


三、配置运行KFS:
    1、编辑配置文件 ~/kfs-version/script/machines.cfg
         注:在配置时,单节点与多节点配置文件有区别,原machines_local.cfg.sample有误,两个chunkserver号可以重复。

    2、安装KFS BINARIES
        (1) 为安装KFS BINARIES配置需实现任意两个节点之间SSH WITH OUT PASSWD(若meta上也有chunk,则保证自己能实现SSH WITH OUT PASSWD)。
           
            假设有A需要登录B,那么需要:
               在B的~/.ssh目录下,若有authorized_keys和id_rsa.pub,则只要将A的id_rsa.pub改名为A_rsa.pub放到B的~/.ssh目录下,
               并将文件中内容添加到B的authorized_keys中,cat A_rsa.pub > authorized_keys.
               若A中无id_rsa.pub文件,则在A的~/.ssh目录下,用命令ssh-keygen产生。

            (具体请参考--SSH配置.txt。如果不进行SSH WITH OUT PASSWD 的配置那么在安装过程中就需要不断输入SSH登录密码,而且安装有可能失败。)

        (2) 安装KFS BINARIES
           a. 修改 kfssetup.py 将'gtar'改为'tar'    
           b. cd ~/kfs-version/scripts
           c. 对于单个节点:python kfssetup.py -f machines.cfg -b ../build -s -w ../webui      
               对于多个节点:python kfssetup.py -f machines.cfg -b ../build -w ../webui     

            如需卸载KFS可执行代码:python kfssetup.py -f machines.cfg -b ../build/bin -U
            当配置文件更新后,使用
            python kfssetup.py -f machines.cfg -b ../build -w ../webui -u -s
            python kfssetup.py -f machines.cfg -b ../build -w ../webui -u
            升级各个chunk.


四、启动METASERVER 和 CHUNKSERVER:
    在~/kfs-version/scripts下
    运行启动脚本:python kfslaunch.py -f machines.cfg --start
    如需停止服务:python kfslaunch.py -f machines.cfg --stop


五、启动CLINET
    1、这里源码包的脚本kfsshell.py末尾有一处笔误,需改正:
        在~/kfs-version/scripts下,将kfsshell.py中:
        cmd = "%s/tools/KfsShell -s %s -p %d" % (bindir, node, port)"中的KfsShell替换成kfsshell。

   2、python kfsshell.py -f machines.cfg -b ~/kfs-version/build/release/bin
    3、然后可以进行一些诸如linux的操作:pwd,mkdir,rm,etc.

 

------------------------

 

单节点的machines.cfg的配置文件

 

[metaserver]
node: local00055d27e2ba
rundir: /home/gxl/program/KFS/kfs-0.2.2/meta
baseport: 20000
clusterkey: test-cluster
[chunkserver1]
node: local00055d27e2ba
rundir: /home/gxl/program/KFS/kfs-0.2.2/chunk1
baseport: 30000
space: 5 G
[chunkserver2]
node: local00055d27e2ba
rundir: /home/gxl/program/KFS/kfs-0.2.2/chunk2
baseport: 40000
space: 5 G


# 说明:
#     [metaserver]
#     node : 用来指定 metaserver 应该运行在哪台机器上

#     rundir : 指定 metaserver 应该安装在该 node 中的哪个位置。

#     baseport : 指定 metaserver 所监听的端口

#     backup_path : 指定用来备份 metaserver 的 checkpoint 的位置,通常与 metaserver 在不同的机器上, kfs 会定期的用 rsync 命令来
#     将 metaserver 的 checkpoint 文件备份到该变量指定的目录。

#     clusterkey : 当 KFS 运行在集群中时,需要指定这个值,用来确定 metaserver 和 chunkserver 是属于哪一个集群。为了简单,这里可以指定为一个普通的字符串,
#     如:clusterkey:kfs-cluster1


#     [chunkserver1](注意:多个chunkserver时,chunk号不可相同,可用“chunkserver1”、“chunkserver2”来标识。源代码中给出的单个节点配置文件是错误的。)

#     node、rundir、baseport,这三个和 metaserver 的概念是一样的。同时, chunkserver 还有另外的两项

#     chunkDir : 用来指定 kfs 的 chunk 存放的目录,即数据文件的存储目前。可以指定多个,以空格分开。

#     space : 指定该 chunkserver 所提供的存储容量。

----------------------------------------

 

多节点的machines.cfg的配置方法

 

# KFS Machine configuration file
[metaserver]
node: 192.168.1.136
rundir: /home/gxl/program/KFS/kfs-0.2.2/meta
baseport: 20000
backup_path: 192.168.1.136:/home/gxl/program/KFS/kfs-0.2.2/meta_bak
clusterkey: test-cluster
numservers: 4

[chunkserver1]
node: 192.168.1.136
rundir: /home/gxl/program/KFS/kfs-0.2.2/chunkS
baseport: 30000
space: 5 G
[chunkserver2]
node: 192.168.1.49
rundir: /home/gxl/program/KFS/kfs-0.2.2/chunkS
baseport: 40000
space: 5 G
[chunkserver3]
node: 192.168.1.48
rundir: /home/gxl/program/KFS/kfs-0.2.2/chunkS
baseport: 50000
space: 5 G
[chunkserver4]
node: 192.168.1.53
rundir: /home/gxl/program/KFS/kfs-0.2.2/chunkS
baseport: 60000
space: 5 G

# 各项含义说明参看单节点配置

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值