LVS负载均衡NAT和DR

版权声明:转载请通知 https://blog.csdn.net/qq_41674452/article/details/84998984

群集技术概述:
1.群集类型:
1)负载均衡群集:提高应用系统的响应能力,尽可能去处理更多的访问请求,减少延迟,获得高并发,高负载的整体性能
2)高可用群集:提高应用系统的可靠性,尽可能地减少中断时间为目标确保服务的连续性,达到高可用的容错效果
3)高性能运算群集:提高应用系统的CPU运算速度,扩展硬件资源和分析能力,获得相当于大型,超级计算机的高性能运算能力
2.负载均衡的分层结构
1)第一层:负载调度器(LVS)
2)第二层:服务器池(HTTP)
3)第三层:共享存储(NFS)
3.基于IP的负载均很三种工作模式
1)地址转换(NAT)
2)IP隧道(TUN)
3)直接路由(DR)ss


准备工作

[ root@LVS ~ ]# modprobe ip_vs			#加载ip_vs模块
[ root@LVS ~ ]# cat /proc/net/ip_vs		#查看ip_vs版本信息
[ root@LVS ~ ]# yum -y install ipvsadm
[ root@LVS ~ ]# ipvsadm -v

ipvsadm命令详解:

[ root@LVS ~ ]# ipvsadm -A -t 192.168.3.1:80 -s rr
#-A:创建虚拟服务器
#-t:用来指定VIP地址及TCP端口
#-s:用来指定负载调度器算法——(轮询”rr“)(加权轮询”wrr“)(最少连接”lc“)(加权最少连接”wlc“)
[ root@LVS ~ ]# ipvsadm -a -t 192.168.3.1:80 -r 192.168.3.2:80 -m -w 1
#-r:用来指定RIP地址及TCP端口
#-m:使用NAT群集模式——(“-g”DR模式)(”-i“TUN模式)
#-w:表示权重(当权重为0时表示暂停改节点)
[ root@LVS ~ ]# ipvsadm -d -t 192.168.3.1:80 -r 192.168.3.2:80 -m -w 1
#-d:删除该节点
[ root@LVS ~ ]# ipvsadm -ln #查看节点状态
[ root@LVS ~ ]# ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略
[ root@LVS ~ ]# cat /etc/susconfig/ipvsadm #确认保存结果
[ root@LVS ~ ]# systemctl stop ipvsadm #停止服务(清楚策略)
[ root@LVS ~ ]# systemctl start ipvsadm #启动服务(重建策略)


一.地址转换(NAT)实验:


实验环境:
一台LVS服务器,两台提供服务的服务器(HTTP),一台共享存储服务器(NFS),一台客户端(Client)
LVS:内网(192.168.3.1),VIP(192.168.2.1)
HTTP-1(192.168.3.2)
HTTP-2(192.168.3.3)
NFS(192.168.3.4)
Client(192.168.2.2)
前提准备工作:
http服务器中已经安装http服务
nfs已经搭建能够成功实现共享,并且设置http服务器开机自动挂载目录


—HTTP—

  [root@HTTP ~]# mkdir -p /opt/www/
    	[root@HTTP ~]# vim /usr/local/httpd/conf/httpd.conf
    		...
    		DocumentRoot "/opt/www/"
    		<Directory "/opt/www/">
    		...
    	[root@HTTP ~]# systemctl restart httpd.service 
    	[root@HTTP ~]# yum -y install nfs-utils rpcbind
    	[root@HTTP ~]# systemctl enable rpcbind
    	[root@HTTP ~]# systemctl restart rpcbind
    	[root@HTTP ~]# systemctl enable nfs-server
    	[root@HTTP ~]# systemctl restart nfs-server
    	[root@HTTP ~]# showmount -e 192.168.3.1	#查看nfs服务器是否成功
    	[root@HTTP ~]# mount -t nfs 192.168.3.4:/opt/www/ /opt/www/
    	[root@HTTP ~]# df -h			#查看是否挂载成功
    	[root@HTTP ~]# vi /etc/fstab
    	192.168.3.4:/opt/www/ /opt/www/ defaults,_netdev 0 0
    	:wq!

—LVS—

[root@LVS ~]# vim /etc/sysctl.conf 				#开启路由转发功能
net.ipv4.ip_forward = 1
:wq!
[root@LVS ~]# sysctl -p
[root@LVS ~]# modprobe ip_vs						#加载ip_vs模块
[root@LVS ~]# modprobe ip_vs						#查看是否加载成功
[root@LVS ~]# yum -y install ipvsadm				#安装ipvsadm服务
[root@LVS ~]# ipvsadm -v							#查看版本号
[root@LVS ~]# ipvsadm -A -t 192.168.2.1:80 -s rr		#宣告自己为虚拟主机
[root@LVS ~]# ipvsadm -a -t 192.168.2.1:80 -r 192.168.3.2:80 -m -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.2.1:80 -r 192.168.3.2:80 -m -w 3
[root@LVS ~]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@LVS ~]# systemctl enable ipvsadm

二.直接路由(DR)实验:


实验环境:
一台LVS服务器,两台拥有外网IP的HTTP服务器(HTTP),一台客户端(Client)
LVS(192.168.3.4),虚拟IP(192.168.3.5)
HTTP-1(192.168.3.3),虚拟IP(192.168.3.5)
HTTP-2(192.168.3.2),虚拟IP(192.168.3.5)
Client(192.168.3.100)
前提准备工作:
http服务器中已经安装http服务
—LVS—

	[root@LVS ~]# modprobe ip_vs
	[root@LVS ~]# yum -y install ipvsadm
	[root@LVS ~]# cd /etc/sysconfig/network-scripts/
	[root@LVS ~]# cp ifcfg-ens32 ifcfg-ens32:0
	[root@LVS ~]# vim ifcfg-ens32:0			#配置虚拟IP地址
	NAME=ens32:0
	DEVICE=ens32:0
	ONBOOT=yes
	IPADDR=192.168.3.5
	NETMASK=255.255.255.0
	:wq!
	[root@LVS ~]# ifup ens32:0						#开启虚拟IP
	[root@LVS ~]# ifconfig ens32:0				#查看
	[root@LVS ~]# vim /etc/sysctl.conf			#调整/proc响应参数
	...
	net.ipv4.conf.all.send_redirects = 0
	net.ipv4.conf.default.send_redirects = 0
	net.ipv4.conf.ens32.send_redirects = 0
	:wq!
	[root@LVS ~]# ipvsadm -C
	[root@LVS ~]# ipvsadm -A -t 192.168.3.5:80 -s rr
	[root@LVS ~]# ipvsadm -a -t 192.168.3.5:80 -r 192.168.3.3:80 -g -w 1
	[root@LVS ~]# ipvsadm -a -t 192.168.3.5:80 -r 192.168.3.2:80 -g -w 1
	[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
	[root@LVS ~]# systemctl enable ipvsadm.service
	[root@LVS ~]# systemctl start ipvsadm.service

—HTTP—

[root@HTTP ~]# cd /etc/sysconfig/network-scripts/
[root@HTTP ~]#  cp ifcfg-lo ifcfg-lo:0
[root@HTTP ~]# vim ifcfg-lo:0			#配置虚拟IP,要和LVS虚拟IP一致,子网掩码全为1
DEVICE=lo:0
IPADDR=192.168.3.5
NETMASK=255.255.255.255 
:wq!
[root@HTTP ~]# ifup lo:0
[root@HTTP ~]# ifconfig lo:0
[root@HTTP ~]# vim /etc/rc.local 		#添加VIP本地访问路由	
...
/sbin/route add -host 192.168.3.5 dev lo:0
:wq!
[root@HTTP ~]# route add -host 192.168.3.5 dev lo:0	
[root@HTTP ~]# vim /etc/sysctl.conf		#调整/proc响应参数
...
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
:wq!
[root@HTTP ~]# sysctl -p

测试:
多个客户端访问http://192.168.3.5
载LVS服务器上输入命令“ipvsadm -ln”查看连接状态
搭建NFS共享存储


三.搭建NFS服务:


NFS服务器:

[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# vim /etc/exports
 /opt/www/ 192.168.3.0/24(rw,sync,no_root_squash)
 #/var/ftp/pub 192.168.3.3(rw) 192.168.3.2(ro)
 :wq!
 [root@localhost ~]# systemctl enable rpcbind
 [root@localhost ~]# systemctl restart rpcbind
 [root@localhost ~]# systemctl enable nfs-server
 [root@localhost ~]# systemctl restart nfs-server
 [root@localhost ~]# rpcinfo -p	#检查NFS服务器是否挂载我们想共享的目录 /opt/www/
 [root@localhost ~]# exportfs -r	#使配置生效
 [root@localhost ~]# exportfs

NFS客户机:

[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable nfs-server
[root@localhost ~]# systemctl restart nfs-server
[root@localhost ~]# showmount -e 192.168.3.4		#查看服务器是否配置成功


 [root@localhost ~]# mount -t nfs 192.168.3.4:/opt/www/ /opt/www/
 [root@localhost ~]# df -hT						#查看是否挂载成功
 [root@localhost ~]# vi /etc/fstab				#设置开机自动挂载,在每台http服务器上都要设置
 192.168.3.4:/opt/www/ /opt/www/ nfs defaults,_netdev 0 0
 :wq!

猜你喜欢

转载自blog.csdn.net/qq_41674452/article/details/84998984