pacemaker+Haproxy 클러스터 로드 밸런싱

14405 단어 Linux 자동화 운영
고가용 구조는 두 가지 핵심 부분으로 구성되어 있는데 하나는 심장 박동 검사로 서버가 정상적으로 작동하는지 판단하는 것이다.하나는 일반 서버와 고장난 서버 사이에서 공공 자원을 옮기는 자원 이전이다
전체 운행 모드는 심장 박동 검사가 끊임없이 네트워크에서 각 지정한 장치가 정상적으로 응답할 수 있는지 검사하는 것이다. 만약에 장치 고장이 발생하면 자원 이동 기능을 응용하여 계속 서비스를 제공하도록 전환한다.corosync, 심장 박동 정보 전송층, 모든 호스트에서 실행되는 프로세스입니다.Pacemaker 소개
Pacemaker는 클러스터 관리자입니다.이는 추천 집단 인프라(OpenAIS 또는 하트비트)가 제공하는 메시지와 구성원 능력을 이용하여 보조 노드와 시스템에서 고장 검측과 회수를 실시하여 성 집단 서비스(또는 자원)의 높은 가용성을 실현한다.자원 이동에 사용됩니다.
실험 환경 서버 1, 서버 4: 집단 노드
서버 2, 서버 3: 백엔드 서버 구성 Haproxy
[root@server1 haproxy]# yum install haproxy -y
[root@server1 ~]# vim /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     65535
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 8000


frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /stylesheets
#    acl url_static       path_end       -i .jpg .gif .png .css .js

#    use_backend static          if url_static
     bind                        172.25.55.100:80
     default_backend             static

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
    balance     roundrobin
    server      static1 172.25.55.2:80        ## IP
    server      static2 172.25.55.3:80
[root@server1 haproxy]# ip addr add 172.25.55.100/24 dev eth0
[root@server1 haproxy]# vim /etc/security/limits.conf 
haproxy   -       nofile  65535
[root@server1 ~]# /etc/init.d/haproxy start
Starting haproxy:
server1 Haproxy :
 

[root@server3 ~]# /etc/init.d/httpd start
[root@server4 ~]# /etc/init.d/httpd start

서버 1과 서버 2의 집단 관리를 실현하기 위해 서버 2에서 서버 1과 같은 설정을 합니다.한 노드가 고장나면 다른 노드가 그 노드를 대체하여 작업을 진행한다.
[root@server2 ~]# yum install haproxy -y
[root@server1 haproxy]# scp /etc/haproxy/haproxy.cfg server2:/etc/haproxy/
[root@server2 ~]# ip addr add 172.25.55.100/24 dev eth0
[root@server2 ~]# /etc/init.d/haproxy start

2. pacemaker 설정


Pacemaker는 클러스터 리소스 관리자입니다.이것은 그룹 기반 구성 요소 (OpenAIS, 하트비트 또는 코로신c) 가 제공하는 메시지와 구성원 관리 능력을 이용하여 노드나 자원 수준의 고장에서 탐지하고 복구하여 그룹 서비스 (또는 자원) 의 최대 가용성을 실현한다.
[root@server1 ~]# yum install pacemaker corosync -y
[root@server1 ~]# cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf
[root@server1 haproxy]# rpm -ivh crmsh-1.2.6-0.rc2.2.1.x86_64.rpm --nodeps
[root@server1 haproxy]# scp /etc/corosync/corosync.conf server2:/etc/corosync/
[root@server1 ~]# vim /etc/corosync/corosync.conf
compatibility: whitetank

totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.55.0
                mcastaddr: 226.94.1.1
                mcastport: 5405
                ttl: 1
        }
}

logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}

amf {
        mode: disabled
}
service{
        name:pacemaker
        ver:0
}

aisexce {
        user: root
        group: root
}

quorum {
        provider: corosync_votequorum
        expected_votes: 2
        two_node: 1
}

테스트:
[root@server1 haproxy]# crm node standby
[root@server1 haproxy]# crm status
Last updated: Fri Aug  3 11:11:52 2018
Last change: Fri Aug  3 11:11:47 2018 via crm_attribute on server2
Stack: cman
Current DC: server2 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured
0 Resources configured


Node server1: standby
Online: [ server2 ]
[root@server1 haproxy]# crm node online

[root@server2 ~]# crm node standby
[root@server2 ~]# crm status
Last updated: Fri Aug  3 11:13:11 2018
Last change: Fri Aug  3 11:13:06 2018 via crm_attribute on server2
Stack: cman
Current DC: server2 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured
0 Resources configured


Node server2: standby
Online: [ server1 ]
[root@server1 haproxy]# crm node standby
[root@server1 haproxy]# crm status
Last updated: Fri Aug  3 11:13:43 2018
Last change: Fri Aug  3 11:13:38 2018 via crm_attribute on server2
Stack: cman
Current DC: server2 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured
0 Resources configured


Node server1: standby
Node server2: standby

좋은 웹페이지 즐겨찾기