Keepalived 가상 컴퓨터 구축 (실제 서버 에 적용)

소프트웨어 소개
  • 부하 균형 이 높 은 것 이 무엇 입 니까?
    nginx 는 부하 이퀄 라이저 로 서 모든 요청 이 nginx 에 도 착 했 습 니 다. nginx 는 매우 중요 한 위치 에 있 음 을 알 수 있 습 니 다. 만약 에 nginx 서버 가 다운 되면 백 엔 드 웹 서 비 스 를 제공 하지 못 하고 영향 이 심각 합 니 다.
    부하 균형 서버 의 다운 을 차단 하기 위해 서 는 백업 기 를 만들어 야 합 니 다.홈 서버 와 백업 기 에 서 는 'I am alive' 와 같은 정 보 를 전송 하여 상대방 의 운행 상황 을 감시 할 수 있 는 고가 용 (High Availability) 모니터링 프로그램 이 실 행 됩 니 다.백업 기 가 일정한 시간 내 에 이러한 정 보 를 받 을 수 없 을 때 메 인 서버 의 서비스 IP 를 인수 하고 부하 균형 서 비 스 를 계속 제공한다.백업 관리자 가 메 인 관리자 로부터 'I am alive' 라 는 정 보 를 받 았 을 때 서비스 IP 주 소 를 방출 하고 메 인 서버 는 부하 균형 서 비 스 를 다시 제공 하기 시작 했다.
  • keepalived 가 뭐야?
    keepalived 는 클 러 스 터 관리 에서 클 러 스 터 가 높 고 사용 가능 한 서비스 소프트웨어 로 단일 고장 을 방지 합 니 다.
    Keepalived 는 웹 서버 의 상 태 를 감지 하 는 역할 을 합 니 다. 웹 서버 가 다운 되 거나 작업 이 고장 나 면 Keepalived 가 감지 하고 고장 난 웹 서버 를 시스템 에서 제거 합 니 다. 웹 서버 가 정상적으로 작 동 하면 Keepalived 는 자동 으로 웹 서버 를 서버 그룹 에 추가 합 니 다. 이 작업 은 모두 자동 으로 완료 되 며 인공 간섭 이 필요 없습니다.인공 적 으로 해 야 할 것 은 고장 난 웹 서버 를 복구 하 는 것 뿐이다.
  • keepalived 작업 원리
    keepalived 는 VRRP 프로 토 콜 을 바탕 으로 하 는 것 으로 VRRP 는 모두 Virtual Router Redundancy Protocol, 즉 가상 경로 중복 프로 토 콜 이 라 고 부른다.
    가상 경로 중복 프로 토 콜 은 공유 기 가 사용 가능 한 프로 토 콜 이 라 고 볼 수 있 습 니 다. N 대 에서 같은 기능 을 제공 하 는 공유 기 를 하나의 공유 기 그룹 으로 구성 할 것 입 니 다. 이 그룹 에는 master 와 여러 개의 backup 이 있 고 master 위 에 대외 적 으로 서 비 스 를 제공 하 는 VIP 가 있 습 니 다.(VIP = Virtual IP Address, 가상 IP 주소, 이 공유 기 가 있 는 랜 내 다른 기기 의 기본 경로 가 이 VIP) 입 니 다. master 는 그룹 방송 을 보 냅 니 다. backup 이 VRRP 가방 을 받 지 못 할 때 master 가 지연 되 었 다 고 생각 합 니 다. 이 때 는 VRRP 의 우선 순위 에 따라 backup 을 master 로 선택해 야 합 니 다. 그러면 공유 기의 높 은 사용 을 보장 할 수 있 습 니 다.
    keepalived 는 core, check, VRRP 등 세 가지 모듈 이 있 습 니 다. core 모듈 은 keepalived 의 핵심 으로 메 인 프로 세 스 의 시작, 유지, 전역 프로필 의 로드 와 해석 을 담당 합 니 다. check 은 일반적인 검사 방식 을 포함 하여 건강 검 사 를 담당 합 니 다. VRRP 모듈 은 VRRP 프로 토 콜 을 실현 합 니 다.

  • 개인 적 이해
  • 주의
    keepalived 는 가상 IP (vip) 가 필요 합 니 다. 이 가상 ip 는 서버 공급 자가 지원 해 야 합 니 다. 설치 하기 전에 서버 가 이 서 비 스 를 지원 하 는 지 확인 해 야 합 니 다.
  • 원리
    keepalived 는 vrrp 프로 토 콜 로 이 루어 집 니 다. 사실 가장 중요 한 것 은 가상 IP 의 응용 입 니 다. 가상 IP 를 어떻게 이해 합 니까? 다음은 예 를 들 어 설명 하 겠 습 니 다.
    저 희 는 현재 두 대의 서버 가 있 습 니 다. 192.168.1.5 와 192.168.1.6 입 니 다. 두 서버 는 똑 같은 서 비 스 를 배치 하여 대외 적 으로 서 비 스 를 제공 합 니 다. 메 인 서비스 가 지연 되면 192.168.1.6 의 예비 서비스 로 수 동 으로 전환 해 야 정상 적 입 니 다. 이렇게 하 는 것 은 분명 지능 적 이지 않 습 니 다. 서로 연 결 된 스마트 기업 리더 의 이미지 에 부합 되 지 않 습 니 다.
    keepalived 는 이 문 제 를 해결 하기 위해 서 입 니 다. 우 리 는 현재 가상 IP: 192.168.1.7 이 있 습 니 다. keepalived 는 이 IP 를 192.168.1.5 에 연결 합 니 다. 외부 네트워크 는 192.168.1.7 을 직접 방문 하면 192.168.1.5 에 접근 할 수 있 습 니 다. 메 인 서비스 가 다운 되면 keepalived 는 이 가상 IP 를 예비 서버 192.168.1.6 에 묶 습 니 다. 이 모든 것 은 keepalived 가 자동 으로 완성 할 수 있 습 니 다. 사실은 가능 합 니 다.이렇게 이해 하면 keepalived 는 두 서버 의 에이전트 이 고 어떤 서비스 gameover 가 그것 을 내 쫓 아 다른 사람들 이 똑 같은 서 비 스 를 계속 제공 하도록 합 니 다.

  • 설치 준비
  • 설치 환경
    yum -y install kernel-devel*
    yum -y install openssl-*
    yum -y install popt-devel
    yum -y install lrzsz
    yum -y install openssh-clients
    yum -y install libnl libnl-devel popt
    
  • 업로드 소프트웨어 는 keepalived - 1.2.15. tar. gz 를 서버 / root / 아래 에 업로드 합 니 다.
  • 설치 절차 (메 인 서버 는 다음 절 차 를 수행 해 야 합 니 다)
  • 압축 을 풀 고 압축 해제 디 렉 터 리 에 들 어가 기
    cd /root
    tar -zxvf keepalived-1.2.15.tar.gz
    cd keepalived-1.2.15
    
  • 설정 명령 실행
       /usr/local
    
    ./configure --prefix=/usr/local/keepalived
    
  • 컴 파일
    make
    
  • 설치
    make install
    
  • 실행 파일 복사
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    
  • init. d 파일 을 etc 로 복사 하여 부팅 항목
    cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
    
  • 을 추가 합 니 다.
  • keepalived 파일 을 etc 로 복사 하여 네트워크 카드 설정
    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    
  • 을 추가 합 니 다.
  • keepalived 폴 더 만 들 기
    mkdir -p /etc/keepalived
    
  • keepalived 프로필 을 etc 로 복사
    cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
    
  • 실행 가능 한 권한 추가
    chmod +x /etc/init.d/keepalived
    
  • 작 동 항목
    chkconfig --add keepalived          /etc/init.d/keepalived  
    
    chkconfig --list                 
    
  • 가입
  • 로그 파일 설정
    1. keepalived     local0:
        vi /etc/sysconfig/keepalived
        KEEPALIVED_OPTIONS="-D -d -S 0"
    
    2. /etc/rsyslog.conf   :
        local0.*  /var/log/keepalived.log
    
  • keepalived 와 rsyslog 로그 서비스 시작
    keepalived
    
          :service keepalived start
          :service keepalived stop
          :service keepalived restart
    
    rsyslog
    
        service rsyslog start
        service rsyslog restart
    
  • 방화벽 을 여 는 통신 주소
    iptables -A INPUT -d 224.0.0.18 -j ACCEPT
    /etc/rc.d/init.d/iptables save
    
    는 설치 가 완료 되 었 더 라 도 가상 IP 와 메 인 서버 를 설정 해 야 합 니 다.
  • 주 서버 설정
    주 서비스: 192.168.128.1128 예비 서비스: 192.168.128.1129 가상 IP: 192.168.128.1130
  • 메 인 서버 설정 수정 메 인 nginx 아래 / etc / keepalived / keepalived. conf 파일
    ! Configuration File for keepalived
    
    #    
    global_defs {
    notification_email {  #  keepalived          email    ,    
        [email protected]
    }
    notification_email_from [email protected]  #     
    #smtp_server XXX.smtp.com                             #  smtp     
    #smtp_connect_timeout 30                               #  smtp      
    router_id LVS_DEVEL                                    #  keepalived       
    }
    
    vrrp_instance VI_1 {
        state MASTER           #     MASTER     BACKUP
        interface eth0         #         
        virtual_router_id 51   #     virtual_router_id    
        priority 100           #MASTER     BACKUP   BACKUP 99
        advert_int 1           #MASTER BACKUP                ,    
        authentication {       #    
            auth_type PASS     #         
            auth_pass 8888
        }
        virtual_ipaddress {    #  vip
            192.168.128.130       #      IP,    
        }
    }
    
  • 서버 설정 수정 준비 nginx 아래 / etc / keepalived / keepalived. conf 파일
    준비 nginx 설정 시 주의: state 를 BACKUP 으로 변경 해 야 합 니 다. priority 는 MASTER 보다 낮 고 virtual router id 와 master 의 값 이 일치 합 니 다.
    ! Configuration File for keepalived
    
    #    
    global_defs {
        notification_email {  #  keepalived          email    ,    
            [email protected]
        }
        notification_email_from [email protected]                 #     
        #smtp_server XXX.smtp.com                               #  smtp     
        #smtp_connect_timeout 30                               #  smtp      
        router_id LVS_DEVEL                                    #  keepalived       
    }
    
    vrrp_instance VI_1 {
        state BACKUP           #     MASTER     BACKUP
        interface eth0         #         
        virtual_router_id 51   #     virtual_router_id    
        priority 99            #MASTER     BACKUP   BACKUP 99
        advert_int 1           #MASTER BACKUP                ,    
        authentication {       #    
            auth_type PASS     #         
            auth_pass 8888
     }
        virtual_ipaddress {    #  vip
        192.168.128.130       #      IP,    
    }
    }
    

  • 이로써 설치 완료, 테스트 시작!
    테스트 완료
  • 메 인 서버 가 keepalived 와 nginx
    service keepalived start
    ./nginx
    
  • 를 시작 합 니 다.
  • 초기 상태 에서 메 인 서버 의 eth 0 상 태 를 보면 가상 IP 가 연결 되 어 있 음
    /sbin/ip add show eth0
    
    을 볼 수 있 습 니 다. 예비 서버 의 eth 0 상태
    /sbin/ip add show eth0
    
  • 를 볼 수 있 습 니 다.
    3. 메 인 서버 다운 (서버 전원 끄 기 를 통 해 시 뮬 레이 션) 192.168.128128
    >  : nginx       nginx   (  nginx          ),    vip    nginx     。
    
             192.168.128.129 eth0,   ,      ip          ,    。
    

    여기까지, 모든 것 이 해결 되 었 다!

    좋은 웹페이지 즐겨찾기