LVS / DR + keepalived 부하 균형 클 러 스 터 구축
5659 단어 keedpalivedLinux
예비 director 도 keepalived 소프트웨어, ipvsadm 를 설치 해 야 합 니 다.
keepalived 는 lvs 를 호출 하여 자신의 규칙 을 실현 합 니 다.
yum install -y keepalived ipvsadm
환경 구축 작업:
주 디 렉 터 192.168.11.30 eth 1 네트워크 카드
director 에서 192.168.11.40 eth 1 네트워크 카드
real server1: 192.168.11.100 eth 0 네트워크 카드
real server2: 192.168.11.101 eth 0 네트워크 카드
curl 테스트 에 사용 되 는 Liux 호스트 192.168.11.0 네트워크 를 사용 하면 됩 니 다.
주 dr 와 예비 dr 는 keepalived, ipvsadm 를 설치 해 야 합 니 다.
rs 두 대 설치 nginx;
설치 후 주 director 설정 파일
vim /etc/keepalived/keepalived.conf //아래 와 같이 가입:
vrrp_instance VI_1 {
state MASTER # BACKUP
interface eth1
virtual_router_id 51
priority 100 # , ; 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.11.110
}
}
virtual_server 192.168.11.110 80 {
delay_loop 6 #( 6 realserver , )
lb_algo wlc #( )
lb_kind DR #(Direct Route)
persistence_timeout 0 #( IP realserver,0 )
protocol TCP #( TCP realserver )
real_server 192.168.11.100 80 {
weight 100 #( )
TCP_CHECK {
connect_timeout 10 #(10 )
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.11.101 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
director 의 프로필 에서 다음 두 가지 만 수정 하면 됩 니 다:
state MASTER -> state BACKUP
priority 100 -> priority 90
keepalived 를 설정 한 후 포트 리 트 윗 을 켜 야 합 니 다 (주 dr 에서 모두 해 야 합 니 다):
echo 1 > /proc/sys/net/ipv4/ip_forward
그리고 두 rs 에서 / usr / local / sbin / lvs 를 실행 합 니 다.dr_rs. sh 스 크 립 트, nginx 서비스 시작
# /etc/init.d/nginx start
마지막 으로 두 director 에서 keepalived 서 비 스 를 시작 합 니 다.
# /etc/init.d/keepalived start
또한, keepalived 서 비 스 를 시작 하면 vip 와 ipvsadm 규칙 이 자동 으로 생 성 됩 니 다.
명령 사용 \ # ip addr dr 의 가상 ip 주소 보기;가상 ip 을 표시 하지 않 고 ifconfig 를 직접 사용 합 니 다.
[root@dr1 keepalived]# ip addr
eth1: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:97:c3:f6 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.30/24 brd 192.168.11.255 scope global eth1
inet 192.168.11.110/32 scope global eth1
inet6 fe80::20c:29ff:fe97:c3f6/64 scope link
valid_lft forever preferred_lft forever
다른 기계 curl 테스트 에서 rs1 과 rs2 횟수 가 비슷 하도록 요청 합 니 다.
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs2rs2
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs2rs2
rs2 위 stop nginx, 그리고 curl 테스트 를 통 해 모든 요청 이 rs1 위 에 있 음 을 발견 합 니 다.
로그 에 도 remove rs2 가 기록 되 어 있 습 니 다.로그 파일: / var / log / messages
[root@rs2 ~]# /etc/init.d/nginx stop
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@dr1 ~]# tail -2 /var/log/messages
Jun 9 23:27:19 localhost Keepalived_healthcheckers[1572]: TCP connection to [192.168.11.101]:80 failed !!!
Jun 9 23:27:19 localhost Keepalived_healthcheckers[1572]: Removing service [192.168.11.101]:80 from VS [192.168.11.110]:80
rs2 시작 nginx, 로그 파일 기록 adding rs2;curl 테스트, 요청 이 평균 rs1 과 rs2 에 배 치 된 것 을 발견 하 였 습 니 다.
[root@rs2 ~]# /etc/init.d/nginx start
[root@dr1 ~]# tail -2 /var/log/messages
Jun 9 23:31:38 localhost Keepalived_healthcheckers[1572]: TCP connection to [192.168.11.101]:80 success.
Jun 9 23:31:38 localhost Keepalived_healthcheckers[1572]: Adding service [192.168.11.101]:80 to VS [192.168.11.110]:80
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs2rs2
[root@localhost ~]# curl 192.168.11.110
rs1rs1
[root@localhost ~]# curl 192.168.11.110
rs2rs2
dr2 예비 dircetor 기 계 를 추가 합 니 다.
주 상 은 keepalive 서 비 스 를 중단 합 니 다.stop 이후 위 ip addr 에서 바 인 딩 가상 ip 을 보면 서 서 비 스 를 받 았 음 을 설명 합 니 다.전환 속도 가 빠르다;
주 상에 서 keepalived 서 비 스 를 시작 한 후 가상 ip 을 연결 하고 서 비 스 를 인수 합 니 다.
[root@dr2 keepalived]# ip addr
eth1: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:af:73:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.11.40/24 brd 192.168.11.255 scope global eth1
inet 192.168.11.110/32 scope global eth1
nc 명령 은 포트 가 열 렸 는 지 검사 할 수 있 습 니 다:
다른 기계 에서 11.100 과 11.101, 11.110 의 80 포트 가 열 렸 는 지 스 캔 합 니 다.
#nc -z -w2 192.168.11.110 80
[root@localhost ~]# nc -z -w2 192.168.11.100 80
Connection to 192.168.11.100 80 port [tcp/http] succeeded!
[root@localhost ~]# nc -z -w2 192.168.11.101 80
Connection to 192.168.11.101 80 port [tcp/http] succeeded!
[root@localhost ~]# nc -z -w2 192.168.11.110 80
Connection to 192.168.11.110 80 port [tcp/http] succeeded!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LVM에서 논리 볼륨 크기 확장 시도며칠 전 저희 부서에서 관리하던 데이터베이스 서버의 용량이 100%에 이르러 세상을 떠났기 때문에 저는 새로운 디스크를 추가하여 LVM으로 논리 볼륨의 크기를 확장하고 회복했습니다. 하지만 이 일은 모르는 단어와 지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.