centos7 keepalived+LVS+NFS 고가용성 클러스터 구축

5629 단어 Linux 운영

1. 이론적 부분


Keepalived의 역할은 서버의 상태를 검측하는 것이다. 만약에 웹 서버가 다운되거나 작업이 고장나면 Keepalived는 검측하고 고장난 서버를 시스템에서 제거하며 이 서버의 작업을 다른 서버로 대체한다. 서버가 정상적으로 작동하면 Keepalived는 자동으로 서버를 서버 그룹에 가입한다. 이런 작업은 모두 자동으로 완성되고 인공적인 간섭이 필요 없다.인공적으로 해야 할 일은 고장난 서버를 복구하는 것뿐이다.
keepalived는 처음에 LVS를 위한 강력한 보조 도구로 주로 페일오버와 건강 검사를 제공하는 기능으로 LVS 부하 스케줄러, 노드 서버의 가용성을 판단하고 신속하게 격리하여 새로운 서버로 교체합니다. 고장난 호스트가 복구되면 다시 그룹에 가입합니다
keepalived는 vrrp(virtual router redundancy protocol, 가상 루트 불필요한 프로토콜) 핫 백업 프로토콜을 사용하여 소프트웨어의 방식으로 Linux 서버의 다중 핫 백업 기능을 실현한다.vrrp는 공유기를 위한 백업 솔루션으로 여러 개의 공유기로 구성된 하나의 핫 스페어 그룹으로 공용 가상 IP 주소를 통해 대외적으로 서비스를 제공한다. 각 핫 스페어 그룹 내의 같은 시간에 한 개의 메인 공유기만 서비스를 제공하고 다른 공유기는 군더더기 상태에 있다. 만약에 메인 공유기가 효력을 잃으면 다른 공유기에서 가상 IP를 자동으로 교체하여 계속 서비스를 제공한다. 가상 IP는 표류 주소라고 부른다

2. 배치 부분


운영 체제
IP 주소
배포 서비스
centos7.6
192.168.81.210 -------------------VIP:192.168.81.100
keepalived 주
centos7.6
192.168.81.220 -------------------VIP:192.168.81.100
keepalive
centos7.6
192.168.81.230
web1
centos7.6
192.168.81.240
web2
centos7.6
192.168.81.250
NFS

keepalive 메인 서버 설정


1. 지원 소프트웨어 설치
[root@localhost ~]# yum -y install kernel-devel openssl-devel popt-devel ipvsadm

[root@localhost ~]# tar xvf keepalived-1.2.13.tar.gz

[root@localhost ~]# cd keepalived-1.2.13

[root@localhost ~]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install

2. 프로필 수정/etc/keepalived/keepalived.conf [root@localhost ~]# vim/etc/keepalived/keepalived.conf
global_defs {
router_id LVS_DEVEL_R1			// , 
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
   192.168.81.100					//VIP , 
	}
}

virtual_server 192.168.81.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
!persistence_timeout 60			// , 
protocol TCP

real_server 192.168.81.230 80 {
    weight 1
TCP_CHECK {
    connect_port 80
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 4
    }
 }

real_server 192.168.81.240 80 {
    weight 1
TCP_CHECK {
    connect_port 80
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 4
    }
 }
}

3. 서비스 재시작
[root@localhost ~]# service keepalived restart

4. VIP 보기
[root@localhost ~]# ip add show

keepalive 서버에서 설정


주 서버 프로필 수정과 세 가지 다른 수정 루트 이름 수정 우선 순위 핫 스페어 상태 수정
1.1.지원 소프트웨어 설치
[root@localhost ~]# yum -y install kernel-devel openssl-devel popt-devel ipvsadm

[root@localhost ~]# tar xvf keepalived-1.2.13.tar.gz

[root@localhost ~]# cd keepalived-1.2.13

[root@localhost ~]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install

2. 프로필 수정/etc/keepalived/keepalived.conf [root@localhost ~]# vim/etc/keepalived/keepalived.conf
global_defs {
router_id LVS_DEVEL_R2			// 
}

vrrp_instance VI_1 {
state BACKUP					// 
interface eth0
virtual_router_id 51
priority 80									// 
advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
   192.168.81.100					//VIP , 
	}
}

virtual_server 192.168.81.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
!persistence_timeout 60			// , 
protocol TCP

real_server 192.168.81.230 80 {
    weight 1
TCP_CHECK {
    connect_port 80
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 4
    }
 }

real_server 192.168.81.240 80 {
    weight 1
TCP_CHECK {
    connect_port 80
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 4
    }
 }
}

3. 서비스 재시작
[root@localhost ~]# service keepalived restart

노드 웹 서버 풀 설정 (모든 서버가 동일)


1. 가상 IP 주소 설정
[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost ~]# cp ifcfg-lo ifcfg-lo:0

[root@localhost ~]# vim ifcfg-lo:0
	DEVICE=lo:0
	IPADDR=172.16.16.172
	NETMASK=255.255.255.255
	ONBOOT=yes
						
[root@localhost ~]# ifup lo:0

[root@localhost ~]# vim /etc/rc.local
	route add -host 172.16.16.172 dev lo:0

2. 조정/proc 응답
[root@localhost ~]# vim /etc/sysctl.conf
	net.ipv4.conf.all.arp_ignore = 1
	net.ipv4.conf.all.arp_announce = 2
	net.ipv4.conf.default.arp_ignore = 1
	net.ipv4.conf.default.arp_announce = 2
	net.ipv4.conf.lo.arp_ignore = 1
	net.ipv4.conf.lo.arp_announce = 2

3. 방화벽 정책 추가, http 서비스 접근 허용
[root@localhost ~]# firewall-cmd --permanent --add-service=http

[root@localhost ~]# firewall-cmd --reload

NFS 공유 스토리지 배포, 웹 콘텐츠 제공


1. 소프트웨어 설치
[root@localhost ~]# yum -y install nfs-utils rpcbind

2. 공유 디렉토리 설정
[root@localhost ~]# vim /etc/exports				// /var/www/html 
	/var/www/html   172.16.16.0/24(rw,sync,no_root_squash)

3. nfs 서비스 시작
[root@localhost ~]# service rpcbind start

[root@localhost ~]# service nfs start

4.showmount -e//네이티브 공유 디렉토리 보기
5. 공유 디렉토리에 쓰기 권한 부여하기
	[root@localhost ~]# chmod -R 755 /var/www/html

6. 방화벽 구성
	[root@localhost ~]# firewall-cmd --permanent --add-service=nfs
	
	[root@localhost ~]# firewall-cmd --reload

6. 클라이언트 마운트
[root@localhost ~]# mount 192.168.81.250:/var/www/html/ /var/www/html/

전체 환경 고려 사항


nfs에서 http 서비스를 시작하지 말고 모든selinux를 끄십시오

좋은 웹페이지 즐겨찾기