LVS 소개 및 구성

A. LVS 개요

LVS는 1998 년 박사 장 원자바오 - 노래에 의해 생성 된 네 개의 계약에 워크로드 밸런싱 솔루션입니다. 로드 밸런싱은 현재 널리 모델을 사용하다 :

1) 네 개의 프로토콜 (LVS)에서 작동 : 주로 부하가 더 잘 칠의 작업 계약에 비해 4 계층 프로토콜의 성능 균형에 사용됩니다. 그러나, 프로토콜 스택은 지원의 전송 계층 부족의 고급 기능을 위해, 전송 계층에서 일하고있다.

2) 일곱 계약 (Nginx에, HAproxy)에서 작동 : 주로 HTTP 서비스에 대한 더 적합로드 밸런싱 (Nginx는 또한 당신이 컴파일시 --with-스트림 매개 변수를 추가해야합니다, 네에서 일곱 계약에서 작업 할 수 있습니다)를 해결하기 위해 서비스, ​​메일 서비스 및 기타 높은 수준의 프로토콜을 지원합니다. 성능 소량의 비용으로 네 개의로드 밸런싱 계약에 비해 표적으로 서비스를 제공합니다.

두. LVS 작동 모드

2.1 두 단계의 작품 :

LVS는 커널 공간 (넷 필터, IPVS) + 관리 도구의 사용자 공간 (iptables에, ipvsadm 명령)에 프레임 워크를 가지고, 작품과의 iptables와 유사한 작동합니다. 사용자 공간 관리 도구는 우리가 커널 공간 프레임에 관한 규칙을 구성은 해당 기능을 달성하기 위해 작동하도록, 우리의 운영 규칙에 대한 액세스를 제공합니다.

주로 두 가지 범주로 나누어 질 수있다 관련된 LVS 모델 하나는 (실제 IPVS 규칙 및 알고리즘에 의해 제공되는 백엔드 서비스 장치를 클라이언트로부터 요청을 수신하고, 전송을 위해) 이사 스케줄러이다가 다른 하나는 RealServer에 (즉 백엔드 장비) 실제 서비스를 제공합니다. LVS는 넷 필터를 입력 체인을 듣고 IPVS 커널 공간에 위치, 이사 스케줄러에 장착되며, 여기서 일련의 규칙, 그것은 발견 된 경우 해당 클러스터 서비스 액세스, 강제 수정 요청 여기에 메시지 (구별 NAT 모드에서 DR 모드, 모드 TUN) 및 즉시 PREROUTING 체인 보냈다. 상기 액세스 요청은 네이티브 통상 액세스에 따른 클러스터 서비스 또는 네트워크 계층 프로토콜에 의해 결정되지 않는 경우 [IP + 포트에 따라 결정].

2.2 참고 :

위해 LVS 모델은 커널 넷 필터 프레임 워크에 의존하고 클러스터 서비스 요청 메시지에 대한 액세스를 처리 할 수 ​​있기 때문에 1, 강제 기능 장애의 iptables로 이어질 수 변화를 보였습니다. LVS 따라서 iptables를 함께 사용할 수 없습니다.

커널의 2,2.4.23 이전 버전 IPVS 코드를 내장하고 있지 않습니다, 당신은 패치해야합니다. 이 버전 후에는 직접 LVS 기능을 사용할 수 있습니다.

세. 일반적인 작업 모델을 LVS

3.1.NAT 모델

그것이 작동하는 방법 :

클러스터 서비스에 대한 모니터링 ClientIP 액세스, 이사 스케줄러는 스케줄링 알고리즘에 따라 RealServerIP 백 엔드를 선택합니다 때 데이터 패킷은 POSTROUTING 체인 DNAT (목적지 주소 변환) 변환합니다. 후단 RealServer에 처리 요구가 완료되면, 클라이언트를 통해 다시 상기 응답 메시지는 PREROUTING 체인 관리자에 대한 감독 SNAT (소스 어드레스 변환)을 올리.

장점과 단점 :

구성이 쉽고, 단점은 이사 중에서 데이터를 통해 갈 예정이다, 모든 성능은 일반적으로 10 RIP를 구동하기 위해, 좋지 않습니다.

NAT 모델 참고 :

1) 클러스터 노드와 관리자는 동일한 네트워크에 있어야합니다.
2) RIP 주소는 일반적으로 개인 주소입니다,하지만 DIP와의 통신을 위해.
들어오고 나가는 모든 통신에 대한 책임 클라이언트 및 RealServer를 사이에 위치한 3) 이사.
4) 기본 게이트웨이로 DIP 클러스터 노드를 사용합니다.
5) 이사는 포트 매핑을 지원합니다.
6) 모든 운영체제 RealServer에 사용될 수있다.
7) 이사는 쉽게 병목 클러스터의 성능이된다.

3.2.DR 모델

그것이 작동하는 방법 :

[이사] 이사 스케줄링 단계는 클라이언트의 요청을 수신 한 후 (클라이언트 액세스 VIP 이사 인) 요청이, 그 요청 패킷의 목적지 MAC 어드레스를 수정한다 클러스터 서비스에 액세스하고 POSTROUTING 의하여 체인에 패킷을 전달하는 것으로 RealServer에.

각각의 처리 단계는 [RealServer에 RealServer에 만 아니라 소장과의 통신을 위해 상기 IP 별명 배치 VIP, 캡슐화 된 응답 패킷을 갖는. 리퀘스트 패킷을 수신하면 RealServer에 데이터 링크 프로토콜 자신의 MAC 어드레스가 발견 될 때, 그리고, VIP 자체가 별명 배치 찾아 디 캡슐화하여 수신 패킷을 처리한다.

[스테이지] RealServer를 RealServer에이 요청 패킷의 소스 IP 주소 및 목적지 IP 주소가 변경되지 않는를 향해 회신. 따라서 때 응답 패킷, RealServer에는 IP 네트워크 계층 응답 직접 클라이언트, 감독을 필요로하지 않습니다.

장점과 단점 :

장점은 이사 스케줄러는 요청 메시지를 처리 ​​할 필요가있다, 응답 패킷을 처리하지 않는, 효율성이 크게 향상되고, RealServer에 수백을 가져올 수 있습니다 단점은 NAT 구성과 관련된 복잡한 모델이다.

DR 모델 참고 :

소장과 MAC 어드레스에 따라 전송 될 수 있기 때문에 1) 각 클러스터의 노드는 동일한 물리적 네트워크에 있어야한다.
2) RIP는 개인 네트워크 주소를 가질 수 없습니다.
3) 이사는 들어오는 요청을 처리하는 RealServer에 직접 클라이언트에 응답 패킷을 응답합니다.
4) RealServer에 기본 게이트웨이를 가리키는 이사가 아니어야합니다, 인터넷 라우팅 장비에 액세스 할 지적 할 수있다.
5) 이사 포트 매핑을 달성 할 수 없습니다 만 변경되지 않은 MAC 주소, TCP / IP를 변경합니다.
6) 대부분의 운영 체제가 RealServer에 사용할 수 있습니다, 서버 숨기기 IP를 지원해야합니다.

개발 : ARP에 대응하는 RealServer를 방법 금지

VIP 라우팅 디바이스 작성된 1) 고정 MAC 어드레스.
2)에서 arptables 체인 규칙 정의 규칙, ARP 응답하지 않습니다.
3) 커널 매개 변수 : 두 개의 매개 변수가 ARP 수준과 수준의 발표를 방송하기 위해 호스트 응답을 정의, arp_announce을 arp_ignore있다. 사용자와 들어오는 네트워크 인터페이스에 의해 요청 된 VIP는이 메시지를 무시하여 ARP, 동일하지 않습니다.
arp_announce :
0 : 어떠한 인터페이스 외측 통신 시스템의 임의의 어드레스는 1 : 네트워크 통신 인터페이스와 타겟 매칭 네트워크. 2 : 로컬 네트워크 인터페이스에 일치하는 광고. 기본 0.
arp_ignore :
0 : 기계는 주소의 표현에 응답을 갖추고있다. 1 만 대응 IP 주소를 나타내는 인터페이스와 동일한 IP 네트워크로 구성된다. 기본 0.

3.3.TUN 모델

그것이 작동하는 방법 :

서비스에 대한 관리자 클라이언트 검색 요청 패킷 액세스를 수신 한 클러스터, 다시 IP 패킷을 캡슐화 원래의 IP 패킷을 외부 스케줄러 요청이며, 다시 외부 네트워크 (원래의 IP 패킷에 전송 층 RealServer를 최종적으로 다른 네트워크 도메인에 전송), 캡슐화 된 IP 패킷을 터널링한다.

장점과 단점 :

장점은 오프 사이트 재해 복구의 요구를 충족 할 수있는 기능이며, 단점은 이사 RealServer에 장치가 터널링, 복잡한 구성을 지원이다;

TUN 모델 참고 :

인터넷을 통해 1) RealServer에.
2) RealServer에 RIP는 공개 주소해야합니다.
3) 이사는 들어오는 요청 클라이언트로 전송,이 RealServer에 응답 패킷을 처리합니다.
4) 만 OS의 터널링 프로토콜 RealServer를 위해 사용될 수있다 지원한다.
5) 포트 매핑을 지원하지 않습니다.

네. LVS 구성 세부 사항을 (Centos7)

4.1.NAT 모델 구성

네트워크 계획

NAT 모드
  VIP :
    192.168.100.150 외부
  DIP :

    내부 172.16.100.10

  RIP1 :
    172.16.100.11 내부
  RIP2 :
    172.16.100.12 내부

구성 RealServer에

1  # 설치하고 nginx를에게 구성
   설치 의 nginx를 -Y

Director 구성

1  #安装가 ipvsadm工具
 2   설치 가 ipvsadm - Y
 3  #关闭ICMP重定向
 4  에코  1 >은 / proc / SYS / NET /의 IPv4 / IP_FORWARD
 5  에코  0 >은 / proc / SYS / NET /의 IPv4 / CONT / 모든 / send_redirects
 6  에코  0 > / proc 디렉토리 / sys 인 / 인터넷 / IPv4의 / conf의 / 기본값 / send_redirects
 7  에코  0 > / proc 디렉토리 / sys 인 / 인터넷 / IPv4의 / conf의 / eth0를 / send_redirects
 8  에코  0 > / proc 디렉토리 / sys 인 / 인터넷 / IPv4의 / conf의 / eth1에 / send_redirects
 9  # 이사设置가 ipvsadm
 (10) 가 ipvsadm -A -t192.168 . 100.150 : 80 - S의 RR은
 (11) 가 ipvsadm -a -t 192.168 . 100.150 : 80 -r 172.16 . 100.11 : 80 - m는 
 12 가 ipvsadm -a -t 192.168 . 100.150 : 80 -r 172.16 . 100.12 : 80 -m

4.2.DR 모드 구성

네트워크 계획

감독 :
  VIP는 : 192,168,100,150
  딥 : 192,168,100,155
RIP1 :
  LO : 0 192 168 100 150 (VIP)
  찢어 192,168,100,151는
RIP2
  그를 : 0 192 168 100 150 (VIP)
  찢어 192168100152

구성 RealServer에

#은 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의 / 모든 / arp_ignore
 에코  " 2 " > / proc 디렉토리 / SYS / NET / IPv4의 / conf의 / 모든 / arp_announce의 
#의 구성의 별명 VIP 
은 ifconfig LO : 0  192.168 . 100.150 방송 192.168은 . 100.150 넷 마스크 255.255 . 255.255 까지
# 그것은 더 이상 구성된 기본 게이트웨이에 좋은 일 지점이, NAT 모드를 사용으로 인해 실험 환경, 이사하기 전에 게이트웨이에 기본 경로를 추가

Director 구성

# Nginx에 설치하고 구성
  설치 의 nginx를 - Y- 
전달이 #의 구성 포트 
에코  1 > / proc 디렉토리 / SYS / NET / IPv4의 / IP_FORWARD 
#의 구성 VIP 
은 ifconfig의 ens33 : 0  192.168 . 100.150 방송 192.168 . 100.150 넷 마스크 255.255 . 255.255를 최대 
#에 추가 RealServer에 라우팅 
경로가 추가 -host 192.168 . 100.150 dev에 ens33을 : 0 
#이 IPVS를 구성 
명령을 이용, ipvsadm -t -A를 192.168 . 100.155 : 80 - S RR을
가 ipvsadm -a -t 192.168 . 100.155 : 80 -r 192.168 . 100.151 : 80 - g 
가 ipvsadm -a -t 192.168 . 100.155 : 80 -r 192.168 . 100.152 : 80 -g

 

추천

출처www.cnblogs.com/zimskyzeng/p/11438150.html