lvs-dr 실험 설정 2012-04-19
18:00:59
카테고리: LINUX
환경:
lvs 디렉터: 10.57.220.198:80 Ubuntu 10.04 LTS vmware virtual 머신
실제 서버1 10.57.220.195:80 Ubuntu 11.10 nginx 서버
실제 서버2 10.57.220.20:80 Ubuntu 11.10 nginx 서버
가상 IP(vip):10.57.220.144
1.ipvsadm 다운로드
3개의 머신에 각각 다운로드
apt-get install ipvsadm
2, ipvsadm 설정
dpkg-reconfigure ipvsadm
첫 번째 옵션은 no입니다(부팅 시 자동으로 ipvs 규칙을 로드하시겠습니까?)
두 번째 옵션은 없음
#!
/bin
/
bash-
echo "1"
> - /
proc /- sys /net/ipv4/ip_forwardIPVSADM=
'/sbin/ipvsadm'
-
VIP=10
. 57- .
220 .- 144RS1=10
. 57- .
220 .- 20RS2=10
. 57 - .
220 .- 195
-
ifconfig eth0 :- 1 $VIP 브로드캐스트 $VIP 넷마스크 255
. 255- .
255 .- 255
up경로 추가 -host $VIP dev eth0
: 1
-
-
$IPVSADM -- C /*가상 서버 정보 지우기*/
- $IPVSADM -
A - -
t $VIP :- 81 -srr
/*가상 서버 레코드를 생성합니다. 예약 알고리즘은 rr입니다. http://www.it165.net/admin/html/201401/2248.html을 참조하세요. */$IPVSADM -
a - -
t $VIP :- 81 -r
$RS1:81 -g -w
1 /*가상 서버에 물리적 머신 추가*/$IPVSADM -
a - -
t $VIP :- 81 -r
$RS2:81 -g -w
1 /*가상 서버에 물리적 머신 추가*/chmod 777 lvs-dr.sh2) 실제 서버 스크립트모든 실제 서버에 동일 lvs-rs.sh
접거나 열려면 (
여기
)를 클릭하세요
- #!/bin/bash
- #설명 : RealServer
- #작성자:hugwww
- #마지막 모드:2009.1.24
-
- VIP=10.57.220.144
-
/sbin/ifconfig lo:0 $VIP 방송 $VIP 넷마스크 255.255 .255.255
업
-
/sbin/경로 추가-호스트 $VIP 개발자 lo:0
- 에코 "1" >/proc /sys/net/ipv4/conf/lo/arp_ignore
/*대상 IP 주소가 방문 네트워크 인터페이스의 로컬 주소인 ARP 쿼리 요청에만 응답*/
- echo "2" >/proc/sys/net/ipv4/ conf/lo/arp_announce
/*쿼리 대상에 가장 적합한 로컬 주소를 사용합니다. 이 모드에서는 이 IP 패킷의 소스 주소가 무시되고 해당 주소와 통신할 수 있는 로컬 주소를 선택하려고 시도합니다. 대상 IP 주소가 포함된 아웃바운드 액세스 서브넷의 모든 서브넷을 선택하는 것입니다. 적합한 주소를 찾을 수 없으면 현재 전송 네트워크 인터페이스 또는 ARP 응답을 수신할 가능성이 있는 다른 네트워크 인터페이스가 전송하도록 선택됨 */
- echo "1" >/proc/ sys/net/ipv4/conf/all/ arp_ignore
- echo "2" >/proc/sys/ net/ipv4/conf/all/arp_announce
- sysctl -p
- #end
chmod 777 lvs-rs.sh
4. 실행 및 테스트
해당 스크립트를 세 대의 머신에서 각각 실행
미리 시작하세요. nginx 서버
firfox access 10.57.220.144:81
ipvsadm -ln을 사용하여 상태를 확인할 수 있습니다
5. 문제에 주의하세요
Linux에서는 방화벽을 꺼야 합니다. , iptables입니다
각 서버의 포트는 일관성이 있어야 합니다. 그렇지 않으면 작동하지 않습니다. 예를 들어, 모두 포트 80이고 일부는 포트 80이 될 수 없고 일부는 포트 81이 될 수 있습니다.
이 경우 VIP와 실제 IP는 동일한 네트워크 세그먼트에 있습니다. VIP와 실제 IP는 서로 다른 네트워크 세그먼트에 있을 수 있습니다. Zhang 박사의 답변(http://zh.linuxvirtualserver.org/)을 참조하세요. 노드/155. 로드 스케줄러는 네트워크 포트만 있으면 되고 분할되지 않은 네트워크를 통해 실제 서버에 연결되어야 합니다. 실제 서버는 자체 라우터를 통해 클라이언트에게 응답 메시지를 보낼 수 있습니다.
스케줄링 알고리즘에 대한 자세한 내용은 http://zh.linuxvirtualserver.org/node/2903을 참조하세요.
아키텍처 참조 http://zh.linuxvirtualserver.org/node/28
위 내용은 다양한 측면을 포함하여 lvs-dr의 실험적인 설정을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.