• centos7下Zookeeper+sheepdog集群搭建


    zookeeper

    安装命令

    1. yum install zookeeper -y            (版本:zookeeper.x86_64      3.4.6-1
    2. yum install zookeeper-lib -y  
     

           (版本:zookeeper-lib.x86_64   3.4.6-1

    配置文件:/etc/zookeeper/zoo.cfg

    作如下修改:

    1. maxClientCnxns=50
    2. tickTime=2000
    3. initLimit=10
    4. syncLimit=5
    5. dataDir=/var/lib/zookeeper/data        //保证目录存在,否则启动出错。
    6. dataLogDir=/var/lib/zookeeper/dateLogDir  
    7. clientPort=2181
    8. autopurge.purgeInterval=3
    9. autopurge.SnapRetainCount=3
    10. server.1=节点1存储网IP:2888:3888      //1,2,3对于在myid中写入
    11. server.2=节点2存储网IP:2888:3888
    12. server.3=节点3存储网IP :2888:3888
     

    java环境变量:vim /etc/zookeeper /java.env

    作如下修改:

    1. # zk buffer size 64M
    2. export JVMFLAGS="-Djute.maxbuffer=0x3FFFFC0 $JVMFLAGS"
    3. # java heap size 16GB
    4. export JVMFLAGS="-Xms16g -Xmx16g $JVMFLAGS"     //注意两个16G要改
     

    注:设置为内存的1/4,测试域设置为16G

    java环境变量设置:/etc/zookeeper/zookeeper-env.sh

    做如下修改:

    export JAVA_HOME=/usr

    myid文件:创建  vim  /var/lib/zookeeper/data/myid

    内容如下:

    根据/etc/zookeeper/zoo.cfgserver.X设置,一般值为1或者2或者3

    设置dateLogDir:创建 mkdir /var/lib/zookeeper/dateLogDir

    (可以不用)

    #现行方案中,单独挂载一个SATA硬盘。(部署环境中选择zk节点上的/dev/sdl

    #mkfs.ext4 -T largefile /dev/***  (选择一块独立磁盘)

    #mkdir /var/lib/zookeeper/dateLogDir

    #mount /dev/*** /var/lib/zookeeper/dateLogDir

    #blkid /dev/***  获取UUID

    #设置/etc/fstab,用vim /etc/fstab在最后添加如下行

    #UUID=046498f8-a077-40b9-af84-7f8e9eed9afd /var/lib/zookeeper/dateLogDir ext4 defaults 0 0

    配置启动脚本:/etc/init.d/zookeeper

    注释掉:#source /etc/rc.d/init.d/functions

    修改#daemon -user zookeeper zkServer.sh startzkServer.sh start

    修改#daemon -user zookeeper zkServer.sh stopzkServer.sh stop

    修改

    checkstatus() {

      status p $PIDFILE ${JAVA_HOME} /bin/java

      RETVAL=$?

    }

    status() {

      zkServer.sh status

      RETVAL=$?

      return $RETVAL

    }

    并修改service status的函数入口:

    status)

        status

    ;;

     

    检查zk状态命令

    1. # service zookeeper start
    2. # service zookeeper status
    3. # yum install nmap-ncat -y
    4. #echo stat|nc localhost 2181
     


     

     

     

    sheepdog

     

    安装缺失包

    1. yum install automake.noarch -y    (版本:automake.noarch            1.13.4-3.el7
    2. yum install libtool -y              (版本:libtool.x86_64               2.4.2-21.el7_2
    3. yum install userspace-rcu -y       (版本:userspace-rcu.x86_64       0.7.9-1.el7
    4. yum install userspace-rcu-devel -y  (版本:userspace-rcu-devel.x86_64  0.7.9-1.el7
    5. yum install yasm -y               (版本:yasm.x86_64               1.2.0-4.el7

     

     

    sheepdog的压缩包拷贝到任意目录下解压,编译命令

    1. cd sheepdog
    2. ./autogen.sh
    3. ./configure --enable-zookeeper --disable-corosync
    4. make
    5. make install

     

    配置pc_san_conf.ini

     

    1. groupadd ebsadmin
    2. useradd -g ebsadmin ebsadmin
    3. mkdir /home/ebsadmin/serNode
    4. chown ebsadmin:ebsadmin serNode -R
    5. vim serNode/pc_san_conf.ini
     

     

     

     

    注:看挂载了几个盘,根据挂载的盘,来写下面的文件

    文件内容如下:

    1. [RAID]
    2. storage.path =/shd/meta,/shd/obj1,/shd/obj2,/shd/obj3,/shd/obj4,/shd/obj5,/shd/obj6,/shd/obj7,/shd/obj8,/shd/obj9,/shd/obj10,/shd/obj11,/shd/obj12
    3. level =0
    4. [SHEEPDOG]
    5. shdcmds =/shd/meta,/shd/obj1,/shd/obj2,/shd/obj3,/shd/obj4,/shd/obj5,/shd/obj6,/shd/obj7,/shd/obj8,/shd/obj9,/shd/obj10,/shd/obj11,/shd/obj12 -p 7000-c zookeeper:172.18.12.144:2181,172.18.12.53:2181,172.18.12.17:2181-ldir=/var/log  -z 1-i host=172.18.12.5,port=7001-y 172.16.172.5--nosync
     

     

     

    启动配置/home/ebsadmin/serNode/sheepdog

    创建sheepdog文件:[root@lrr2 serNode]# touch sheepdog

    文件内容如下:

    1. ulimit -n 409600
    2. cmds=`grep "shdcmds"/home/ebsadmin/serNode/pc_san_conf.ini`&& SHEEP_OPTS=${cmds#shdcmds =}
    3. /usr/sbin/sheep --pidfile /var/run/sheep.pid $(if[-z "$SHEEP_OPTS"]; then echo "--cluster local --log dst=syslog --upgrade /var/lib/sheepdog";else echo $SHEEP_OPTS; fi)
     

    修改文件权限chmod +x /home/ebsadmin/serNode/sheepdog

     

     

     

    启动配置/usr/lib/systemd/system/sheepdog.service

    文件内容如下:

    1. [Unit]
    2. Description=Sheepdog QEMU/KVM BlockStorage
    3. After=network.target
    4. Wants=syslog.target
    5. [Service]
    6. EnvironmentFile=-/etc/conf.d/sheepdog.conf
    7. EnvironmentFile=-/etc/sysconfig/sheepdog
    8. EnvironmentFile=-/etc/default/sheepdog
    9. ExecStart=/bin/sh -c '/home/ebsadmin/serNode/sheepdog'
    10. PIDFile=/var/run/sheep.pid
    11. Type=forking
    12. Restart=on-abort
    13. StartLimitInterval=10s
    14. StartLimitBurst=3
    15. [Install]
    16. WantedBy=multi-user.target

     

     

    验证sheepdog是否安装成功

    [root@lrr2 /]# type sheep

    #service sheepdog start

    #systemctl status sheepdog.servic

     

    验证功能好使

     

    遇到的问题:

    1、配置pc_san_conf.ini时填写的路径不对,以为是填写盘符,按如上填写即可,注意创建shd目录。

    2.、因为之前安装过sheepdog,导致sheep和dog的版本不一致,删除/usr/bin和/usr/sbin/下的dog,然后重新编译。

     

     

     

     

     





  • 相关阅读:
    windows下常用linux对应工具
    常用工具备忘
    spring使用@Value标签读取.properties文件的中文乱码问题的解决
    一致性哈希算法(适用于分库分表、RPC负载均衡)转
    使用事件和消息队列实现分布式事务(转+补充)
    关于架构优化和设计,架构师必须知道的事情(转)
    做了 3 年企业级 SaaS,我收获的 10 点心得(转)
    这五件事,二次SaaS创业的老炮儿都在做(转)
    阿里云端口失效导致tomcat无法对外提供服务
    SaaS公司融资的「22条军规 」(转)
  • 原文地址:https://www.cnblogs.com/zhoumingang/p/5784190.html
Copyright © 2020-2023  润新知