keepalived 소개, 높 은 사용 가능 한 설정;링크 ux 군집 소개;

Linux 클 러 스 터
분류 (기능 별)
1. 높 은 사용 가능: 보통 두 대의 서버, 한 대의 작업, 다른 한 대 는 불필요 합 니 다.호스트 가 다운 되면 불필요 한 교체 로 서 비 스 를 제공 합 니 다.실현 소프트웨어 는 하트 비트, keepalived 가 있다.2. 부하 균형: 한 대 는 분배 기 를 만 들 고 임 무 를 다른 기계 에 나 누 어 준다.스케줄 링, 1 + N 서비스 로 사용 할 수 있 습 니 다.소프트웨어: LVS, keepalived, haproxy, nginx;
keepalived 소개
keepalived 는 VRRP 프로 토 콜 을 통 해 높 은 사용 을 실현 합 니 다. 이 프로 토 콜 에서 여러 대의 기능 이 같은 공유 기 를 하나의 그룹 으로 구성 합 니 다. 그 중에서 하나의 Master, N 개의 backup 역할 입 니 다.master 는 그룹 방송 형식 으로 각 backup 에 VRRP 프로 토 콜 의 패 킷 을 보 냅 니 다. backup 이 master 가 보 낸 VRRP 패 킷 을 받 지 못 하면 master 가 다운 되 었 다 고 생각 합 니 다.이 때 는 각 backup 의 우선 순위 에 따라 누가 새로운 master 가 될 지 결정 해 야 합 니 다.
세 개의 모듈
1. core: 핵심 모듈 은 주로 메 인 프로 세 스 의 시작, 유지 및 전체 프로필 의 로드 와 분석 을 책임 집 니 다.2. check: 건강 검진 담당;3. vrrp: VRRP 프로 토 콜 실현;
keepalived 설정
master 기계: 192.168.188.2backup 기계: 192.168.188.3vip 공공 ip: 192.168.188.188 조 id: 51
keepalived 설치
yum install -y keepalived

마스터 머 신 설정
vim /etc/keepalived/keepalived.conf            //    

global_defs {                                                    //           
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {                                    //      shell,     shell     
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}
vrrp_instance VI_1 {
    state MASTER                                            //   master
    interface ens33                                        //    ,   ens33,   eth0(        )
    virtual_router_id 51                                //   id,    
    priority 100                                            //   100,        
    advert_int 1
    authentication {                                                //      
        auth_type PASS                                               //     pass    
        auth_pass testlinux123                            //     testlinux123
    }
    virtual_ipaddress {
        192.168.188.188                                //  vip ip,             ip
    }
    track_script {                                                //        
        chk_nginx
    }
}
vim /usr/local/sbin/check_ng.sh            //       shell

#!/bin/bash
#    ,      
d=`date --date today +%Y%m%d_%H:%M:%S`
#  nginx    
n=`ps -C nginx --no-heading|wc -l`
#     0,   nginx,      nginx    ,
#    0,  nginx    ,      keepalived
if [ $n -eq "0" ]; then
/etc/init.d/nginx start
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
chmod 755 /usr/local/sbin/check_ng.sh        // shell  755  
systemctl start keepalived                //  keepalived  

백업 설정
vim /etc/keepalived/keepalived.conf

global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}
vrrp_instance VI_1 {
    state BACKUP                                                //  backup
    interface ens33                                            //    
    virtual_router_id 51                                    // master   id
    priority 90                                                    //     ,  master  ,      
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass testlinux123
    }
    virtual_ipaddress {
        192.168.188.188
    }
    track_script {
        chk_nginx
    }
}

vim /usr/local/sbin/check_ng.sh            //       shell

#    ,      
d=`date --date today +%Y%m%d_%H:%M:%S`
#  nginx    
n=`ps -C nginx --no-heading|wc -l`
#     0,   nginx,      nginx    ,
#    0,  nginx    ,      keepalived
if [ $n -eq "0" ]; then
systemctl start nginx
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
chmod 755 /usr/local/sbin/check_ng.sh        // shell  755  
systemctl start keepalived                //  keepalived  

로그 보기
less /var/log/messages

vip ip 보기
ip add

테스트 master 는 keepalived 를 닫 고 vip 를 방문 한 ip 192.168.188.188 은 buckup 의 내용 입 니 다.
systemctl stop keepalived
systemctl start keepalived

좋은 웹페이지 즐겨찾기