LVS 부하 분산

LVS는 Linux Virtual Server의 약자입니다.,즉, Linux 가상 서버,가상 서버 클러스터 시스템입니다.。LVS 로드 밸런싱을 사용하면 서버의 고성능 및 고가용성을 달성할 수 있습니다.,업무 외적인 중단으로 인한 손실 방지。
LVS는 NAT로 나뉩니다.,반복하다,DR 세 가지 모드 ,우리는 가장 진보된 DR 모드에 집중할 것입니다。
NAT 모드
아래 그림과 같이:

사진,클라이언트는 요청의 발신자입니다.;lvs 서버는 LVS 스케줄러입니다.,요청 할당을 담당,왼쪽 네트워크 카드 eth0은 VIP를 구성합니다.,즉, 클라이언트가 요청한 목적지 IP, 오른쪽의 네트워크 카드 eth1은 인트라넷 IP로 구성됩니다.;web01과 web02는 두 개의 실제 서버입니다.,처리 결과를 클라이언트에게 반환하는 책임。

과정은 다음과 같습니다:클라이언트가 VIP 액세스 요청을 시작합니다.,이때 lvs 서버의 eth0 네트워크 카드가 요청을 수락합니다.,일종의 이퀄라이제이션 알고리즘을 통해,eth1 NIC 및 스위치를 통해,web01 또는 web02에 요청을 던지십시오. , web01 또는 web02는 스위치와 eth1 네트워크 카드를 통해 lvs 서버에 요청을 보냅니다., NAT 주소 변환을 통한 lvs 서버,eth0 네트워크 카드를 통해 전송,최종 결과는 클라이언트에게 반환됩니다. . 클라이언트가 다시 요청,위의 단계를 반복하십시오。

NAT 방식임을 알 수 있다., 요청 수락 여부와 상관없이,또는 반환 결과, 데이터는 lvs 서버를 통과해야 합니다..
클라이언트가 너무 많은 요청을 하는 경우,그러면 lvs 서버의 흐름이 매우 커질 것입니다.。우린 알아,서버 업로드 볼륨이 다운로드 볼륨보다 훨씬 큽니다.,lvs 서버의 트래픽은 주로 반환된 결과입니다., 그래서 lvs 서버는 병목 현상이 될 것입니다。

DR 모드
web01 및 web02가 결과를 클라이언트에 직접 반환하도록 하는 경우,lvs 서버를 거치지 않고 ,그러면 시스템 성능이 크게 향상됩니다.。 DR은 이 아이디어를 사용하고 있습니다.。처리량을 10배 늘릴 수 있습니다!

아래 그림과 같이:

 

 

구성:
클라이언트 구성 200.168.10.4 ; lvs 서버 eth0에서 200.168.10.1 구성 ,eth0:0에서 200.168.10.10 구성; web01 및 web02의 eth0 네트워크 카드에 각각 200.168.10.2 및 200.168.10.3을 구성합니다.
web01 및 web02의 소호(루프백 포트)둘 다에서 200.168.10.10을 구성합니다.

프로세스:
웹 사이트 도메인 이름이:www.abc.com ,DNS 확인 후 IP 주소는 200.168.10.10입니다. ,즉, 이 아키텍처에 구성된 VIP는 , 클라이언트 액세스 200.168.10.10 ,먼저 lvs 서버 스케줄링을 진행합니다(web01 및 web02가 arp 무시를 설정하기 때문입니다.,200.168.10.10의 MAC에 응답하지 않음), 특정 알고리즘을 통해 web01 및 web02에 부하 분산 ,로드 밸런싱을 달성하려면。
위 사진:두 웹 서버의 eth0 네트워크 카드는 실제 IP로 구성됩니다. ,루프백 lo 네트워크 카드에서 VIP 구성.
루프백 포트에는 MAC 주소가 없기 때문에,따라서 클라이언트가 200.168.10.10에 액세스하면,arp 요청을 보낼 때,lvs 서버만 자체 MAC을 반환합니다. . 그런 다음 lvs 서버는 균형 알고리즘을 통과합니다.,web01 또는 web02에 요청 할당. web01 또는 web02의 MAC 주소를 묻는 arp가 있는 경우,arp ignore가 eth0에서 수행되지 않기 때문에,따라서 web01 또는 web02는 MAC을 반환해야 합니다.。web01 또는 web02는 설정된 게이트웨이를 통해 VIP를 통해 클라이언트에 처리 결과를 반환합니다.。 다음에 클라이언트가 VIP를 방문할 때,위의 단계를 반복하십시오。

lvs 서버 설치 ipvsadm
구현하다: 냠 설치 ipvsadm
그런 다음 ipvsadm을 실행합니다.
ipvsadm –C #이전 ipvsadm 구성 지우기
ipvsadm –에서 200.168.10.10:80 –s rr # VIP80 포트 연결에 대한 액세스 허용,폴링 알고리즘
ipvsadm -에서 200.168.10.10:80 -아르 자형 200.168.10.2:80 #요청을 web01로 전달
ipvsadm -에서 200.168.10.10:80 -아르 자형 200.168.10.3:80 #요청을 web02로 전달
ipvsadm –l –n # 가상 서버 목록을 숫자로 표시

ifconfig eth0 200.168.10.1 넷 마스크 255.255.255.0
ifconfig eth0:0 200.168.10.10 넷 마스크 255.255.255.255
다음 방법을 사용하여 Linux 네트워크 카드에 대한 IP 및 라우팅을 임시로 설정할 수 있습니다. 200.168.10.10 dev eth0 # 경로 추가,도달 IP 200.168.10.10
web01의 구성
IP 주소 설정 및 경로 추가
ifconfig eth0 200.168.10.2 넷 마스크 255.255.255.0
ifconfig 소호:0 200.168.10.10 넷 마스크 255.255.255.255 쪽으로
다음 방법을 사용하여 Linux 네트워크 카드에 대한 IP 및 라우팅을 임시로 설정할 수 있습니다. 200.168.10.10 데브로:0
arp 무시 및 arp 발표 설정
에코 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
에코 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
에코 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
에코 2 >/proc/sys/net/ipv4/conf/all/arp_announce

web02의 구성
IP 주소 설정 및 경로 추가
ifconfig eth0 200.168.10.3 넷 마스크 255.255.255.0
ifconfig 소호:0 200.168.10.10 넷 마스크 255.255.255.255
경로 추가 기본값 –호스트 200.168.10.10 데브로:0
arp 무시 및 arp 발표 설정
에코 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
에코 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
에코 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
에코 2 >/proc/sys/net/ipv4/conf/all/arp_announce

그런 다음 web01 및 web02에 웹 서비스를 설치합니다.,포트 80 열기。
web01의 홈 페이지를 200.168.10.2로 설정합니다.;we02 홈페이지는 200.168.10.3 입니다.

마지막으로 클라이언트 브라우저에 200.168.10.10을 입력합니다.
첫 방문

새로 고침 후

계속 새로 고침,이 두 페이지는 순환합니다.,부하 분산 구현。
IP 튜닝 모드:DR 모드에서 eth0 설정:0 ,lo 루프백 포트는 모두 tun 네트워크 카드로 대체됩니다.,양식 IP 터널 모드,그런 다음 모든 턴에서 VIP를 구성합니다.。 그러나 모든 서버가 tun 네트워크 카드를 지원하는 것은 아닙니다.,따라서 이 방법은 매우 제한적입니다.。

답장을 남겨주세요