Linux 클러스터: LVS 로드 밸런싱 클러스터 구축(2)

5297 단어

1. DR 모드 LVS 구축


1. 준비 작업

  • 스케줄러dir:192.168.242.128
  • 실제 서버rs1:192.168.242.129, 게이트웨이는 이전의 원시 게이트웨이로 복구되었습니다
  • 실제 서버rs2:192.168.242.130, 게이트웨이는 이전의 원시 게이트웨이로 복구됩니다
  • VIP:192.168.242.110

  • 2. dir에서 스크립트 작성

    [root@zlinux-01 ~]# vim /usr/local/sbin/lvs_dr.sh
    
    #! /bin/bash
    echo 1 > /proc/sys/net/ipv4/ip_forward
    ipv=/usr/sbin/ipvsadm
    vip=192.168.242.110
    rs1=192.168.242.129
    rs2=192.168.242.130
    #ifdown ifup  , 
    # , IP 
    ifdown ens33
    ifup ens33
    # 
    ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
    route add -host $vip dev ens33:2
    $ipv -C
    $ipv -A -t $vip:80 -s rr
    $ipv -a -t $vip:80 -r $rs1:80 -g -w 1
    $ipv -a -t $vip:80 -r $rs2:80 -g -w 1
    
    [root@zlinux-01 ~]# sh /usr/local/sbin/lvs_dr.sh 
      'ens33'。
     (D-Bus  :/org/freedesktop/NetworkManager/ActiveConnection/2)

    3,rs에서 스크립트 작성(두 개의 내용이 같다)

    [root@zlinux-02 ~]# vim /usr/local/sbin/lvs_dr_rs.sh
    
    #!/bin/bash
    vip=192.168.242.110
    ifdown lo
    ifup lo
    # vip lo , rs 
    ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
    route add -host $vip lo:0
    # arp , rs mac 
    #  www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
    echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
    
    [root@zlinux-02 ~]# sh /usr/local/sbin/lvs_dr_rs.sh

    4. 테스트


    저는 여기서 네 번째 가상 기기로 테스트를 했습니다. 없으면 브라우저에 VIP 주소 테스트를 직접 입력할 수 있습니다.
    [root@zlinux-04 ~]# curl 192.168.242.110
    LVS-zlinux03
    [root@zlinux-04 ~]# curl 192.168.242.110
    LVS-zlinux02
    [root@zlinux-04 ~]# curl 192.168.242.110
    LVS-zlinux03
    [root@zlinux-04 ~]# curl 192.168.242.110
    LVS-zlinux02
    [root@zlinux-04 ~]# curl 192.168.242.110
    LVS-zlinux03

    2. keepalived+LVS


    전체 구조는 두 대의 서버(역할은dir)가 각각keepalived 소프트웨어를 설치해야 하는데 그 목적은 고가용을 실현하는 것이지만keepalived 자체도 부하 균형 기능이 있기 때문에 이번 실험은keepalived 한 대만 설치할 수 있다.keepalived에는 ipvsadm의 기능이 내장되어 있기 때문에 ipvsadm 패키지를 더 이상 설치할 필요가 없고 그 lvs_를 작성하고 실행할 필요가 없습니다dir의 스크립트입니다.

    1. 준비 작업


    주keepalived(스케줄러dir): 192.168.242.128 실제 서버rs1:192.168.242.129, 스위치 복구는 이전의 원시 스위치 실제 서버rs2:192.168.242.130, 스위치 복구는 이전의 원시 스위치 VIP:192.168.242.110

    2. keepalived 설정을 수정하여 가격을 묻는다

    [root@zlinux-01 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak    // 
    [root@zlinux-01 ~]# > /etc/keepalived/keepalived.conf     // 
    [root@zlinux-01 ~]# vim /etc/keepalived/keepalived.conf             // 
    
    vrrp_instance VI_1 {
        #  BACKUP
        state MASTER 
        interface ens33 
        virtual_router_id 51
        # 90 
        priority 100 
            auth_pass zlinux
        }   
        virtual_ipaddress {
            192.168.242.110
        }   
    }   
    virtual_server 192.168.242.110 80 {
        #( 10 realserver ) 
        delay_loop 10 
        #(lvs  )
        lb_algo wlc
        #(DR )
        lb_kind DR
        #( IP 60 realserver)
        persistence_timeout 0 
        #( TCP realserver )
        protocol TCP 
        real_server 192.168.242.129 80 {
            #( ) 
            weight 100
            TCP_CHECK {
            #(10 )
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
            }
        }   
        real_server 192.168.242.130 80 {
            weight 100
            TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
            }
         }  
    }  

    3. keepalived 시작

    [root@zlinux-01 ~]# ipvsadm -C           // , LVS 
    [root@zlinux-01 ~]# ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    [root@zlinux-01 ~]# systemctl start keepalived     // 
    [root@zlinux-01 ~]# ps aux | grep keep
    root       3406  0.0  0.0 120720  1404 ?        Ss   18:21   0:00 /usr/sbin/keepalived -D
    root       3407  0.0  0.1 127464  3324 ?        S    18:21   0:00 /usr/sbin/keepalived -D
    root       3408  0.0  0.1 131656  2848 ?        S    18:21   0:00 /usr/sbin/keepalived -D
    root       3414  0.0  0.0 112680   976 pts/0    R+   18:25   0:00 grep --color=auto keep

    두 대rs에서 실행해야 합니다sh /usr/local/sbin/lvs_dr_rs.sh

    4. 테스트


    검사 방법 1: 브라우저에서 VIP를 입력합니다192.168.242.110 그리고 일부러 rs의 Nginx 서비스를 멈추고 브라우저를 새로 고쳐서 결과를 봅니다.검사 방법 2: 스케줄러에서 관련 명령을 실행하고 연결 수를 확인합니다.
    [root@zlinux-01 ~]# ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.242.110:80 wlc
      -> 192.168.242.129:80           Route   100    0          0         
    [root@zlinux-01 ~]# ipvsadm -ln                 // Nginx , , 
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.242.110:80 wlc
      -> 192.168.242.129:80           Route   100    0          0         
      -> 192.168.242.130:80           Route   100    1          0 

    다음으로 전송:https://blog.51cto.com/3069201/2097093

    좋은 웹페이지 즐겨찾기