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