码迷,mamicode.com
首页 > 系统相关 > 详细

部署Memcached+magent+keepalived高可用集群

时间:2018-07-25 20:45:09      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:主机   openssh   高可用集群   登录   Opens   blog   解释   服务   local   

  • Memcached+magent+keepalived高可用集群
  • magent是一款开源的代理服务软件,我们可以通过他来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通过magent绑定的VIP从客户端登录memcached写入数据,其他节点的memcached数据也会同步。
    ?

    • 案例环境
    主机名称 IP 主要软件
    memcached主 192.168.200.128 Magent、memcached、libevent、keeplived
    memcached从 192.168.200.129 memcached、libevent、keeplived
    客户端 192.168.200.130 telnet 测试
    VIP 192.168.200.200

    ?

    • 配置memcached主、从缓存节点 -两台配置相同

      # tar xf memcached-1.5.6.tar.gz -C /opt/
      # tar xf libevent-2.1.8-stable.tar.gz -C /opt/
      # yum install gcc gcc-c++ make -y
      
      # cd /opt/libevent-2.1.8-stable
      # ./configure --prefix=/usr/local/libevent
      # make && make install
      
      # cd /opt/memcached-1.5.6
      # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
      # make && make install
      
      # ln -s /usr/local/memcached/bin/* /usr/local/bin/    
    • 将安装libevent-2.1.so.6的模块复制到 /usr/lib64目录下
    • 否则在启动Magent时会出错

      # ln -s /usr/local/libevent/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6

      ?

    • 在主服务器安装Magent
    • 主服务器

      # mkdir /opt/magent
      # tar zxvf magent-0.5.tar.gz -C /opt/magent 
      # cd /opt/magent
    • 编译安装前需要修改文件 否则会报错

      # vi ketama.h   //修改下面3行
              #ifndef SSIZE_MAX
              #define SSIZE_MAX 32767
              #endif
      
      # vi Makefile  //添加路径
          LIBS = -levent -lm -L/usr/local/libevent/lib 
          INCLUDE=-I/usr/local/libevent/include
      
      # make 
    • 编译后会生成一个可执行文件

    技术分享图片

        # cp magent /usr/bin/      //把生成的mgent程序让系统识别

    ?
    ?

    • 从服务器
    • 从服务器不装 直接拷贝过去

      # yum install openssh-clients    //安装远程连接工具
      # scp magent root@192.168.200.129:/usr/bin/      //把产生的magent文件直接复制到从服务器。

      ?

    • 在主从服务器上安装配置keepalived
    • 配置不同出已经标注

      # yum install keepalived -y
      # vi /etc/keepalived/keepalived.conf 
       router_id MAGENT_HA               //主从不同 自定义
          下面删除4行
      }
      
      //调用这个脚本每2秒检查一次magent状态
      vrrp_script magent {
                      script "/opt/shell/magent.sh"
                      interval 2
      }
      vrrp_instance VI_1 {
              state MASTER                    // 从服务器这里是BACKUP
              interface ens33                  
              virtual_router_id 51             //虚拟路由ID ,主从相同
              priority 100                         //优先级  从要小于主
              advert_int 1
              authentication {
                      auth_type PASS
                      auth_pass 1111
              }
      track_script {              //调用上面定义的脚本
                      magent
      }
      
      virtual_ipaddress {                       //定义虚拟IP
      192.168.200.200
      }
      }
    • 主服务器上
    • 写magent.sh 脚本

      # mkdir -p /opt/shell/
      # cd /opt/shell/
      # vi magent.sh
          #!/bin/bash
          K=`ps -ef | grep keepalived | grep -v grep | wc -l`
          if [ $K -gt 0 ]; then
                          magent -u root -n 51200 -l 192.168.200.200 -p 12000 -s 192.168.200.128:11211 -b 192.168.200.129:11211
          else
          pkill -9 magent
          fi

      技术分享图片

    • 脚本选项解释

      -n 51200 //定义用户最大连接数
      -l    //指定虚拟IP
      -p 12000  //指定端口号
      -s //指定主缓存服务器
      -b //指定从缓存服务器
      
      # chmod +x magent.sh 
      # systemctl start keepalived.service
      # ip addr  //查看VIP

      技术分享图片

    ?

    • 从服务器上
    • 写magent.sh 脚本

      # mkdir -p /opt/shell/
      # cd /opt/shell/
      # vi magent.sh
          #!/bin/bash
          K=`ip addr | grep 192.168.200.200 | grep -v grep | wc -l`
          if [ $K -gt 0 ]; then
                          magent -u root -n 51200 -l 192.168.200.200 -p 12000 -s 192.168.200.128:11211 -b 192.168.200.129:11211
          else
          pkill -9 magent
          fi  

      技术分享图片

      # chmod +x magent.sh 
      # systemctl start keepalived.service

    ?

    • 在两台服务器上启动memcached

      # memcached -d -m 32m -p 11211 -u root  

    ?

    • 在客户端测试
    • 测试数据同步
    • 测试keepalived主从热备份( 将主节点宕机,在从节点上查看VIP,VIP已经漂移过来了)

      # yum install telnet -y
      # telnet 192.168.200.200 12000  

      技术分享图片
      技术分享图片

    部署Memcached+magent+keepalived高可用集群

    标签:主机   openssh   高可用集群   登录   Opens   blog   解释   服务   local   

    原文地址:http://blog.51cto.com/13630803/2150165

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!