가상 컴퓨터 한 대가 부하 균형 lvs - NAT 모드 와 lvs - DR 모드 구축

7466 단어 건설 하 다.
먼저 부하 균형 을 말하자면 한 서버 가 큰 병발 량 사용자 의 방문 을 지탱 하지 못 하기 때문에 부하 균형 적 인 방법 으로 이 문 제 를 해결 할 수 있다. 부하 균형 은 두 가지 실현 방안 이 있다. 하 나 는 하드웨어 를 통 해 f5 설 비 를 구 매 할 수 있 고 하 나 는 소프트웨어 를 통 해 lvs, nginx 등 을 실현 할 수 있다. lvs 는 Liux 시스템 의 커 널 등급 이기 때문이다.실현 이 편리 하기 때문에 선 자 는 주로 lvs 가 부하 균형 을 이 루 는 것 을 설명 한다.
    lvs 부하 균형 실현 은 세 가지 모델 이 있 는데 그것 이 바로  NAT, DR, TUN 모드 는 NAT 모드 와 DR 모드 만 배 웠 는데 지금 은 주로 NAT, DR 모드 를 어떻게 구축 하 는 지 설명 합 니 다.nat 는 주소 변환 이 라 고 하고 dr 는 직접 경로, tun 은 터널 이 라 고 합 니 다.
1. NAT 모드 구축 환경 준비
  먼저 centos 7 이 설 치 된 가상 머 신 을 준비 한 다음 에 몇 대의 가상 머 신 을 완전 하 게 복제 해 야 한다. 복 제 된 가상 머 신 은 몇 곳 을 고 쳐 야 한다. 첫 번 째 곳 은 바로 네트워크 카드 의 곳 이다.  vi /etc/sysconfig/network-script/ifcfg-eth0   인 터널  HWADDR   값 을 수정 해 야 합 니 다. 이 값 은 mac 주소 이 고 수정 해 야 할 것 은 UUID 입 니 다.  ,이것 도 다른 것 으로 바 꾸 고 네트워크 카드 를 다시 시작 해 야 합 니 다.
1. 준비 작업
   1) 우선 방화벽 을 닫 고 setenforce  0
2) lvs 서버 로 ipvsadm 설치 
 yum install   ipvsadm   -y
2. 네트워크 토폴로지 구축
LVS Director  :
    :vip
   :lvs
vip  : 192.168.0.200
    :255.255.255.0
  :    192.168.0.1 
      :Bridge

    :dip
   :lvs
dip  : 172.16.100.1
    :255.255.0.0
  :         
      :Host-Only


RealServer  :

    :rip1
   :web1
rip1  :172.16.100.10 
    :255.255.0.0   
  :    172.16.100.1 
      :Host-Only


    :rip2
   :web2
rip1  :172.16.100.11
    :255.255.0.0   
  :    172.16.100.1 
      :Host-Only

3. RealServer 에 httpd 서 비 스 를 배치 하고 테스트 합 니 다.
 
​

  httpd  ,  httpd    ,  httpd  

[root@web1 ~]# yum -y install httpd 
[root@web1 ~]# service httpd start 
[root@web1 ~]# echo "RS1-web1 Allentuns.com" > /var/www/html/index.html 
[root@web2 ~]# yum -y install httpd 
[root@web2 ~]# echo "RS2-web2 Allentuns.com" > /var/www/html/index.html 
[root@web2 ~]# service httpd start

  httpd    OK!

[root@web1 ~]# curl http://localhost RS1-web1 Allentuns.com

[root@web1 ~]# curl http://172.16.100.11 RS2-web2 Allentuns.com

[        ]
​

4. Director 에 ipvs 서 비 스 를 배치 하고 테스트 합 니 다. 
​

(1)  ipvsadm

[root@LVS ~]# yum -y install ipvsadm

(2)      


[root@LVS ~]# ipvsadm -A -t 192.168.0.200:80 -s rr               #         

[root@LVS ~]# ipvsadm -a -t 192.168.0.200:80 -r 172.16.100.10 -m  #  RealServer    
    NAT 
[root@LVS ~]# ipvsadm -a -t 192.168.0.200:80 -r 172.16.100.11 -m  #  RealServer        NAT 
[root@LVS ~]# ipvsadm -L -n                                     #  ipvs        IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.200:80 rr

  -> 172.16.100.10:80             Masq    1      0          0         

  -> 172.16.100.11:80             Masq    1      0          0   



[root@LVS ~]# cat /proc/sys/net/ipv4/ip_forward                    #  Linux      
     0

[root@LVS ~]# echo 1 > /proc/sys/net/ipv4/ip_forward               #  Linux      
  [root@LVS ~]# cat /proc/sys/net/ipv4/ip_forward  1

  

(3)    http  


[root@LVS ~]# curl http://192.168.0.200/index.html RS2-web2 Allentuns.com  #    web2
 
[root@LVS ~]# curl http://192.168.0.200/index.html RS1-web1 Allentuns.com  #    web1 

[root@LVS ~]# curl http://192.168.0.200/index.html RS2-web2 Allentuns.com  #    web1 

[root@LVS ~]# curl http://192.168.0.200/index.html RS1-web1 Allentuns.com  #    web2

(4)    LVS     

     :

[root@LVS ~]# service ipvsadm save ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  ]

     :

[root@LVS ~]# ipvsadm -S > /etc/sysconfig/ipvsadm.s1

    ipvsadm     

[root@LVS ~]# ipvsadm -C 
[root@LVS ~]# ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@LVS ~]# ipvsadm -R < /etc/sysconfig/ipvsadm.s1  
[root@LVS ~]# ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.200:80 wrr

  -> 172.16.100.10:80             Masq    3      0          0        

  -> 172.16.100.11:80             Masq    1      0          0

2. DR 모델 구축 의 환경 준비
1. 자신의 가상 컴퓨터 에서 조작 하려 면 리 눅 스 시스템 5 대 를 준비 해 야 합 니 다. 아 날로 그 클 라 이언 트 한 대, 아 날로 그 공유 기 한 대, 아 날로 그 lvs 서버 한 대, 나머지 두 대 는 아 날로 그 realServer 를 배경 서비스 제공 자로 합 니 다.이곳 의 다섯 대의 가상 컴퓨터 가 모두 복제 되 었 다 면 주의해 야 할 것 은 네트워크 카드 설정 정보 에 있 는 HWADDR 과 uid 는 다른 것 과 다 르 게 해 야 한 다 는 것 이다.
2. 네트워크 토폴로지 의 구축 은 저 는 이 단계 가 가장 어렵다 고 생각 합 니 다. 먼저 ip, 네트워크, 경로, 백 스테이지 의 httpd 서 비 스 를 잘 해 야 합 니 다. 이런 것들 을 다 한 후에 lvs 를 설정 하 는 것 이 쉽 습 니 다. 저 는 dr 모델 을 구축 하 는 데 대부분의 시간 을 네트워크 토폴로지 의 구축 에 썼 습 니 다.
3. 구체 적 으로 구축 하 는 내용 이 너무 많 습 니 다. 몇 가지 중요 한 부분 을 말씀 드 리 겠 습 니 다. 제 가 구 덩이 를 밟 았 습 니 다. 첫째, 내부 네트워크 를 모 의 해 야 합 니 다. 클 라 이언 트 의 마스크 와 내부 네트워크 의 마스크 가 똑 같 아야 합 니 다. 이런 점 은 경험 담 입 니 다. 그리고 네트워크 구간 이 다 를 수 있 습 니 다. 예 를 들 어 외부 네트워크 시 뮬 레이 션 등 입 니 다.  192.168.0.22  ,내부 네트워크 시 뮬 레이 션  192.168.30.100  ,그리고 클 라 이언 트 의 네트워크 카드 는 브리지 모드 를 통과 해 야 합 니 다.  ,공유 기 는 두 개의 네트워크 카드 가 필요 하 다.  외부 네트워크 와 통 하 는 연결 모드 가 필요 합 니 다. 내부 네트워크 와 통 하 는 것 은 호스트 모드 입 니 다. 그리고 각 네트워크 카드 의 hwaddr 와 uid 는 모두 다 릅 니 다. - 이 점 에서 저 는 깊 은 피 해 를 입 었 습 니 다.  
4. 그 다음 에 dr 모드 를 만 듭 니 다.
1) 우선 리 얼 두 대 에서  server 에서 아래 명령 을 실행 합 니 다.
 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 
​
2) vip
ip  a a vip/32  dev lo 
3)lvs ,    4)
 ipvsadm  -A -t 192.168.30.98:80 -s rr

ipvsadm  -a -t 192.168.30.98:80 -r 192.168.30.100 -g

ipvsadm  -a -t 192.168.30.98:80 -r 192.168.30.101 -g
5) lvs vip   dip
ip a a 192.168.30.98/32 dev eth0
6)
systemctl restart network
7) curl
 
 
그 과정 에서 겪 은 저항 들 을 말씀 드 리 겠 습 니 다.
1) 나의 Liux 시스템 은 모두 복 제 된 것 이기 때문에 어떤 네트워크 카드 의 hwaddr 와 uid 는 다 르 게 수정 되 지 않 았 다.
2) 아 날로 그 공유 기의 그 장 치 는 경로 기능 을 켜 야 한다. 
echo net.ipv4.ip_forward =1 >> /etc/sysctl.conf

sysctl -p

iptables -vnL

3) 그리고 마지막 에 네트워크 토폴로지 가 설정 되 어 있 는 후에 client 엔 드 가 내부 네트워크 ip 이 통 하지 않 는 것 을 발 견 했 습 니 다. 마지막 으로 lvs 서비스 가 방화벽 이 꺼 지지 않 아서 발생 한 것 입 니 다.
4) 서버 마다 실행  setenforce 0
5) 배 운 명령 들
route add default gw 192.168.30.1     --------------    

route -nn     

tcpdump -i eth0  -nn port 80    ----------------  ,  80    

tcpdump  -i  eth0 -nn icmp     ----------------- icmp 

       httpd    ,,     /var/www/html        vi    index.html

   httpd     systemctl   restart httpd

ipvsadm  -A -t 192.168.30.98 -s rr         

ipvsadm   -a -t 192.168.30.98:80 -g         dr  

    lvs     ipvsadm -S -n  > /etc/sysconfig/ipvsadm

              ipvsadm -R < /etc/sysconfig/ipvsadm

            ipvsadm   -Ln

6) 여 기 는 VIP 서브 넷 마스크 가 32 비트 임 을 주의해 야 한다.  255.255.255.255, 백 엔 드 서버 의 가상 IP 는 lo: 0 에 연결 되 어야 하 며, 동시에 서브 넷 마스크 를 255.255.255.255.255 로 지정 해 야 합 니 다. 그렇지 않 으 면 ARP 비활성화 에 이상 이 발생 할 수 있 습 니 다.
7) vip 가 lvs 서버 에 연결 되 어 있 을 때  eth 0 에 귀속, 로 에 있 을 수 없습니다.
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기