设为首页 收藏本站
查看: 865|回复: 0

[经验分享] MooseFS分布式文件系统+keepalived高可用+unison和intoify实时双机器同步(二)

[复制链接]
累计签到:5 天
连续签到:1 天
发表于 2018-12-31 12:06:01 | 显示全部楼层 |阅读模式
moosefs+keepalived双机高可用
2.1、部署环境及思路
2.1.1、环境
  192.168.1.237  keepalived (MASTER)  mfsmaster   mfscgiserv
  192.168.1.236  keepalived (Slave)      mfschuckserver  mfsclient
  192.168.1.239  虚拟VIP
2.1.2、原理

  •   mfsmaster的故障恢复在1.6.5版本后可以由mfsmetalogger产生的日志文件 changelog.*.mfs和metadata.mfs.back由命令mfsmetarestore恢复,在1.7版本后命令mfsmetarestore不可用,改为mfsmaster –a
  •   192.168.1.237 keepalivedmaster 定时运行检测 mfsmaster 进程的脚本check_master.sh,(如果有必要,定时从mfsmaster 获取 metadata.mfs.back 做备份文件用于master恢复)
  •   如果检测到 mfsmaster 故障的时候,192.168.1.237  keepalived会将虚拟IP漂移到备机。
  •   192.168.1.236keepalived 自动绑定从主机上漂移过来的虚拟IP,同时状态从backup转换为master 并触发脚本notify_master事件,执行恢复并启动keepalived_notify.sh脚本,(根据条件判断)此时备机变为管理服务器
  •   整个切换在2~10秒内完成根据检测时间间隔
  •   当元管理服务器mfsmaster恢复后,192.168.1.236 keepalived 状态从master转到backup 并触发 notify_backup事件执行恢复并启动keepalived_notify.sh(根据条件判断)脚本,此时由管理服务器恢复为备机,同时192.168.1.236自动关闭mfsmaster服务。
  • keepalived安装配置
  Keepalived安装:版本为1.2.7
  ./configure--prefix=/usr/local/keepalived
  make&&make  install
  keeplived配置
在主机mfsmaster 192.168.1.237上的keeplived配置:
vim/usr/local/keepalived/etc/keepalived/keepalived.conf
  
! Configuration File for keepalived

global_defs {
  notification_email {
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
   }
     notification_email_fromAlexandre.Cassen@firewall.loc
     smtp_server 192.168.200.1
     smtp_connect_timeout 30
     router_id LVS_DEVEL
  }
  
  vrrp_scriptcheck_run {
     script "/usr/local/mfs/check_master.sh"
     interval 2
  }
  vrrp_sync_groupVG1 {
      group {
            VI_1
      }
  }
  vrrp_instanceVI_1 {
      state MASTER
      interface eth0
      virtual_router_id 51
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
  track_script{
         check_run
      }
      virtual_ipaddress {
          192.168.1.239
         # 192.168.200.17
         # 192.168.200.18
      }
  }
#配置说明:interval 2配置项,KEEPALIVED MASTER 每2秒检测一次 mfsmaster状态
  接下我们编辑vim /usr/local/mfs/check_master.sh脚本。编辑完赋权755
  #!/bin/bash
  MFS_HOME=/usr/local/mfs
  #$MFS_HOME/sbin/mfsmasterstart
  ps-ef|grep mfsmaster|grep -v 'grep'
  RETVAL=$?
  if[ $RETVAL -eq 0 ];then
        exit 0
     else
        exit 1
  fi
  在备机mfsmaster 192.168.1.236上的keeplived配置:
  vim/usr/local/keepalived/etc/keepalived/keepalived.conf
  !Configuration File for keepalived
  
  global_defs{
     notification_email {
       acassen@firewall.loc
       failover@firewall.loc
       sysadmin@firewall.loc
     }
     notification_email_fromAlexandre.Cassen@firewall.loc
     smtp_server 192.168.200.1
     smtp_connect_timeout 30
     router_id LVS_DEVEL
  }
  vrrp_sync_groupVG1 {
      group {
            VI_1
  }
  notify_master"/usr/local/mfs/keepalived_notify.sh master"
  notify_backup"/usr/local/mfs/keepalived_notify.sh backup"
  
  }
  
  vrrp_instanceVI_1 {
      state BACKUP
      interface eth0
      virtual_router_id 51
      priority 80
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
          192.168.1.239
          #192.168.200.17
          #192.168.200.18
      }
  }
  需要注意的是主备机上priority优先级不能设置为一样的。
  接下我们编辑vim/usr/local/mfs/keepalived_notify.sh脚本,记得赋权755
    #!/bin/bash
  MFS_HOME=/usr/local/mfs
  MFSMARSTER=${MFS_HOME}/sbin/mfsmaster
  MFSMETARESTORE=${MFS_HOME}/sbin/mfsmetarestore
  MFS_DATA_PATH=${MFS_HOME}/var/mfs
  
  functionbackup2master(){
  $MFSMARSTERstart
  }
  functionmaster2backup(){
  $MFSMARSTERstop
  }
  functionERROR(){
  echo"usage: keepalived_notify.sh master|backup "
  }
  case$1 in
          master)
          backup2master
          ;;
          backup)
          master2backup
          ;;
          *)
          ERROR
          ;;
  esac     
2.3keepalived开机自启
  1.  建立服务启动脚本,以便使用service命令控制之
  cp/usr/local/keepalived/etc/rc.d/init.d/keepalived   /etc/init.d/keepalived
  chmod+x  /etc/init.d/keepalived
  2.修改/etc/init.d/keepalived,寻找大约15行左右的. /etc/sysconfig/keepalived, 修改为:
  . /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正确的文件位置
  同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):
  PATH="$PATH:/usr/local/keepalived/sbin"
  exportPATH
  3.修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数
  KEEPALIVED_OPTIONS="-D-f /usr/local/keepalived/etc/keepalived/keepalived.conf"
  4.经过以上修改,keepalived基本安装即可完成,启动测试之:
  servicekeepalived restart
  5.切勿忘记将此服务设置为开机启动
  chkconfigkeepalived on
2.4、故障切换测试
  1,挂接客户端,注意一定要挂接虚拟IP地址192.168.1.239。
  rz或者touch文件
  2,关闭192.168.1.237上的mfsmaster,观察192.168.1.236是否已经启动了mfsmaster,查看
  /var/log/messages,同时观察mfsclient文件读写,删除,上传是否正常。
  3,恢复启动192.168.1.237上的mfsmaster,观察192.168.1.236是否已经关闭了mfsmaster,查看/var/log/messages,同时观察mfsclient文件是否正常。来回切换后,mfsclient正常。说明moosefs+keeplived实现高可用。
  注意事项:
  一、对于/usr/local/mfs/sbin/mfscgiserv这个服务,因为只在192.168.1.237上启动了该服务,在主备切换完成后,是不能访问的,所以建议把192.168.1.236上的mfscgiserv也启动,这样弄,只不过后面同步的时候会跳过mfscgiserv.lock文件,没有多大影响,那么我们访问的时候输入虚拟IP就可以管理了。http://192.168.1.239:9425
经过测试,发现以下问题:
  1,              因为metalogger服务器存在数据丢失的问题,现在最好的解决方法就是把主备机做成镜像服务器,备机不依靠上述提到的用metalogger的方式启动,metalogger另外单独选择一台服务器做备份或者不用metalogger,单独备份mfsmaster下的数据路径数据。那么最终就是主备机做双向同步才能保证数据不丢失。双向同步工具我们选择unison!
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657946-1-1.html 上篇帖子: LVS DR模式 + keepalived 负载均衡配置详解(基础篇) 下篇帖子: 使用Nginx1.9.9+Keepalived1.2.x搭建高可用负载均衡集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表