corosync + pacemaker实现集群的高可用

Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。

pacemaker和corosync,后者用于心跳检测,前者用于资源转移。两个结合起来使用,可以实现对高可用架构的自动管理。 心跳检测是用来检测服务器是否还在提供服务,只要出现异常不能提供服务了,就认为它挂掉了。 当检测出服务器挂掉之后,就要对服务资源进行转移。
CoroSync是运行于心跳曾的开源软件。 PaceMaker是运行于资源转移层的开源软件。
corosync是集群框架引擎程序,pacemaker是高可用集群资源管理器,crmsh是pacemaker的命令行工具。

1.在server2和server3(两个节点,相互感应彼此的服务开启状态,实现双机热备)上安装pacemaker和corosync首先配置yum源才能下载东西
634  yum  install -y pacemaker
     yum  install  -y  corosync  #一般系统自带,不用下载
  636  cd  /etc/corosync
  637  ls
  638  cp  corosync.conf.example  corosync.conf #复制到官方文档中
  640  ls

corosync + pacemaker实现集群的高可用_第1张图片
  641  vi  corosync.conf
      totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.17.0   #更改此处为你主机的网段
                mcastaddr: 226.94.1.17    ##更改多播地址
                mcastport: 5405
                ttl: 1
        }
}
其他的不变在最后加
service{
   name:pacemaker    ##corosync开启的时候pacemaker也自动加载
   ver:0
}

corosync + pacemaker实现集群的高可用_第2张图片

corosync + pacemaker实现集群的高可用_第3张图片
  645  scp  corosync.conf  [email protected]:/etc/corosync  #复制到4里面

corosync + pacemaker实现集群的高可用_第4张图片
  646  /etc/init.d/corosync  start  
  647  ps  ax   #可以看见pacemaker也在进程里面

corosync + pacemaker实现集群的高可用_第5张图片
  648  cat  /var/log/messages  #产看日至一般没有错误
  649  crm_verify  -LV   #检查语法,会有错误,因为我们没有开启fence集群,接下来的步骤是为了语法正确

corosync + pacemaker实现集群的高可用_第6张图片
  650  cd  /pub
  651  ls  ##此处有检查语法的软件
  653  yum install pssh-2.3.1-2.1.x86_64.rpm   crmsh-1.2.6-0.rc2.2.1.x86_64.rpm
  654  rpm  -q  crmsh    #检查有没有crmsh这个软件
  655  scp  crmsh-1.2.6-0.rc2.2.1.x86_64.rpm  pssh-2.3.1-2.1.x86_64.rpm   [email protected]:/pub    ##把这两个软件包考到4里面去


  656  crm
        configure  
       show
  657  crm  configure show   ##此命令同上

corosync + pacemaker实现集群的高可用_第7张图片
  658  crm
       configure
       property   stonith-enabled=false  ##把fence禁掉,语法才不会错误
       commit  #每次 更改完成后都要提交,否则不生效

corosync + pacemaker实现集群的高可用_第8张图片

  659  crm_verify  -LV   #此时语法不会出错


  660  crm
       configure
       show
       primitive   vip  ocf:heartbeat:IPaddr2  params  ip=172.25.17.100  cidr_netmask=24  op monitor  interval=1min
       commit

corosync + pacemaker实现集群的高可用_第9张图片
  在server4里面监控  可以看见vip  crm_mon

corosync + pacemaker实现集群的高可用_第10张图片
  661  /etc/init.d/corosync  stop     ## crm  node stanby也是停掉服务的意思
  在server4里面监控  可以看见vip  crm_mon  但是server1停掉了,大家都听掉了,不符合常规

corosync + pacemaker实现集群的高可用_第11张图片
  662  /etc/init.d/corosync  start
  663  crm
       configure  
       property  no-quorum-policy=ignore  
       commit        
  664  /etc/init.d/corosync  stop   ##server1停掉了,但server4还在运行中

corosync + pacemaker实现集群的高可用_第12张图片

corosync + pacemaker实现集群的高可用_第13张图片

在server1做fence和haproxy
  666  cd  /etc/corosync/
  667  ls
  668  vi corosync.conf
  669  vi  /etc/haproxy/haproxy.cfg
       将前端公共节点  bind  改为  *:80  name clear  注释  use_backend  dynamic  if  write  
       将两个后端节点荣为一体
       backend static
        balance         roundrobin
        server          dynsrv2  172.25.17.13:80 check inter 1000
        server          dynsrv1  172.25.17.12:80 check inter 1000
    打开server2和server3的httpd   清空里面的环境,只有index.html里
  670  ps  ax   ##查看进程
  671   cd /pub
  672  ls
  673  cd haproxy-1.6.11
  676  ls  
  680  cd  rpmbuild/
  681  ls
  682  cd RPMS/
  683  ls
  684  cd   x86_64/
  685  ls
  scp  haproxy-1.6.11-1.x86_64.rpm   [email protected]:/pub #在server4/pub里面进行下载haproxy
  687  cd  /etc/haproxy/
  688  ls
  689  scp haproxy.cfg  [email protected]:/etc/haproxy  #把文加考到server4里面,进入/etc/haproxy里面看以下   开启haproxy服务
  690  crm  
       configure
       primitive  haproxy  lsb:haproxy  op  monitor  interval=30s  ##去监控里面看,两者vip和haproxy是分离的,需要做下面的步骤
       commit
       group  hagroup   vip  haproxy
       commit   在server4里面/etc/init.d/corosync  stop  可以看见转换了

corosync + pacemaker实现集群的高可用_第14张图片

corosync + pacemaker实现集群的高可用_第15张图片
  691  ps  ax
  692  /etc/init.d/corosync  status
  693  /etc/init.d/corosync  start
  695  /etc/init.d/haproxy   start

corosync + pacemaker实现集群的高可用_第16张图片
##加fence,看有没有fence这个软件包
  703  rpm  -q fence-virt
         yum  install fence-virt-*
  704  stonith_admin  -I
  705  stonith_admin  -M  -a fence_xvm
 ##在真机开启 systemctl  status  fence_virtd    systemctl start fence_virtd
             cat  /etc/fence_virt.conf  看是不是br0
             brctl  show     ##主要看是不是br0
  706  cd    /etc/cluster/            ##server4里面也要进
  707  ls  ##有一个fence_xvm.key这个文件
  708  crm
       configure
       show
       primitive  vmfence  stonith:fence_xvm  params  pcmk_host_map="server1:vm1;server4:vm4"  op  monitor  interval=1min
       property  stonith-enabled=true  ##开启fence服务
       commit   #监控里面vip  haproxy  vmfence  都有

corosync + pacemaker实现集群的高可用_第17张图片

corosync + pacemaker实现集群的高可用_第18张图片
 

 

你可能感兴趣的:(corosync + pacemaker实现集群的高可用)