码迷,mamicode.com
首页 > 系统相关 > 详细

linux之集群LVS

时间:2019-11-04 22:09:43      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:命令选项   方法   命令   ipaddr   别名   inux   服务端   信息   nbsp   

负载均衡集群:LVS   haproxy

高可用集:keepalived   RHCS(主要用于金融机构)

 

一、LVS配置负载均衡集群

两种模式:

1、LVS/NAT模式负载均衡集群

2、LVS/DR模式负载均衡集群

三种工作模式

1、NAT网络地址转换模式,运用的时NAT地址转换

2、TUN模式:隧道模式,工作中不常用

3、DR模式:路由模式,不用做地址转换

 

1、配置LVS/NAT模式负载均衡集群

LVS服务器对客户端访问应用服务器时,对客户端到应用服务器的链接进行负载均衡,确保

应用服务器按照LVS算法进行负载分配,例如:用轮询的方式,这样应用服务器平均分配来自

客户端的访问压力

技术图片

 

 

 搭建步骤

LVS集群服务器配置

1、开启内核路由转发功能,使其能够收发来自不同网段的IP包

[root@LVS ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward=1------------------------------------新加内容。开启内核的路由IP包转发功能

[root@LVS ~]# sysctl -p----------------------------------查看是否配置成功
net.ipv4.ip_forward = 1

 

 

配置LVS服务(NAT模式)

安装软件包

[root@LVS ~]# yum -y install ipvsadm------------------安装服务

[root@LVS ~]# rpm -q  ipvsadm      
ipvsadm-1.27-7.el7.x86_64

 

添加虚拟服务

[root@LVS ~]# ipvsadm -A -t 192.168.10.10:80 -s rr

ip:192.168.10.10地址为LVS服务器的外联接口地址,也就是虚拟IP,当外界要访问192.168.1.11或是192.168.1.12服务器时,输入192.168.10.10即可访问,不用输入真是服务器的ip

80:表示正式服务器开放的端口,即对外开放的服务

rr:表示用轮询的方式对真实服务器进行负载分担

 

查看策略:

技术图片

 

 

 

添加realserver,即真实应用服务器

[root@LVS ~]# ipvsadm -a -t 192.168.10.10:80 -r 192.168.1.11:80 -m

[root@LVS ~]# ipvsadm -a -t 192.168.10.10:80 -r 192.168.1.12:80 -m

192.168.1.11:80:真实服务器ip地址及端口

-m:表示用NAT模式,没有-m是DR模式

-g:DR模式

-i:TUN模式

 

查看策略

技术图片

 

 

 

保存配置,使其永久生效

[root@LVS ~]# ipvsadm-save

技术图片

 

 

 

 

2、web-server运行王网站服务并配置,

2台都需要安装httpd服务

[root@node2 ~]# yum -y install httpd

[root@node2 ~]# systemctl start httpd

 

设置网关地址

[root@node1 ~]# route add default gw 192.168.1.10------该地址为和LVS服务对接的接口地址

配好后测试:

技术图片

 

 

 

测试:

技术图片

 

 

 查看访问状态信息

技术图片

 

 

 

 

LVS调度算法(10种 ) man ipvsadm

常用的有4中

rr:轮询

wrr:根据权重俩轮询,权重值不同

lc:

wlc:

 

ipvsadm命令选项

修改调度算法:[root@LVS ~]# ipvsadm -E -t 192.168.10.10:80 -s wrr

修改真是服务器的权重值:ipvsadm -e -t 192.168.10.10:80 -r 192.168.1.11:80 -w 3 ----修改权重值为3

删除真实服务器:ipvsadm -d -t 192.168.10.10:80 -r 192.168.1.11:80

清除虚拟服务:ipvsadm -C

查看状态:[root@LVS ~]# ipvsadm -Ln --stats

技术图片

 

 

如果是启动报错,处理方法:

[root@LVS ~]# ipvsadm --save > /etc/sysconfig/ipvsadm
[root@LVS ~]# systemctl start ipvsadm

 

 

2、配置LVS/DR模式负载均衡集群(负载均衡集群作为旁挂使用)生产环境中应用较多

       LVS服务器对客户端访问应用服务器时,对客户端到应用服务器的链接进行负载均衡,确保

应用服务器按照LVS算法进行负载分配,例如:用轮询的方式,这样应用服务器平均分配来自

客户端的访问压力

技术图片

 

 

 

 

 

2.1、搭建环境

给真实应用服务器realserver绑定虚拟IP(VIP)地址,并设置网络接口帮兄弟接口收发IP包,且忽略arp广播包

给分发器(LVS服务器)绑定虚拟IP(VIP)地址

真实服务器必须和虚拟IP在同一网段

LVS/DR通信原理:当客户端访问web应用服务器时,需要访问LVS/DR服务器上的虚拟IP(192.168.1.100),然后LVS服务器启动策略后通过真实IP(192.168.1.10)将客户端请求转发给web应用服务器的真实IP(192.168.1.11/192.168.1.12),真实应用服务器接受到请求后,将应答文件通过兄弟接口lo:1直接回复给客户端,不再由LVS转发。

注:

      客户端发起请求的地址时LVS服务器的eth0:1的IP地址,请求到达LVS服务器后,调用负载分发策略后,再通过eth0的ip地址向真实web应用服务器转发请求,真实web应用服务器从自己的eth0网卡收到请求后,将应答数据包提交给eth0:1的ip地址直接转发给客户端,为了保证真实web服务器应答文件能够不经过LVS服务器直接转发给客户端,因此就需要真实应用服务器的teh0:1的地址和LVS服务上的虚拟地址eth0:1的地址一样,也就是让客户端发送和接收文件的源、目地址一致。

      对于真实web应用服务器上只能选择lo口配置ip,因为lo上的ip只能和自己的主机通信,不能和其他主机通信,这样就避免了IP冲突,同时要让lo接口能够替本地的网卡eth0接收和发送数据包,就需要对lo口进行相应配置,又要避免ip冲突。这就需要要启用忽略arp广播包,这样当外界有向192.168.1.100的arp请求时,这样真实的web服务器就不会有响应,而是由LVS服务器上的eth0:1上的IP 192.168.1.100来响应,

      lo:1的ip地址要和LVS服务器上的虚拟IP地址一样,这样真实web应服务器在应答客户端请求时就不需要在经过LVS服务器转发,为了让客户端的数据包收发正常,即客户端在发送请求时的目的地址(192.168.1.100)和收到服务端的应答文件的地址需要一致都是(192.168.1.100),所以ip地址需要配成一致的。

 

1、给真实服务器配置虚拟IP,此时lo网卡上有两个IP地址,下面的配置只是临时生效

 

 

 

让本机的lo网卡和eth0网卡成为兄弟接口,让lo网卡替eth0收发包

 

技术图片

 

 [root@node2 ~]# cd /proc/sys/net/ipv4/conf/

 

[root@node2 conf]# cd lo/
[root@node2 lo]# ls

 

 

 

[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  -------------------arp_ignore该文里面的值默认0,改为1,表示让lo网卡忽略arp广播包,0表示不忽略
[root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ---------------帮助兄弟网卡eth0接收和发送数据包
[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore  
[root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 

 

重启网卡

 

[root@node1 ~]# ifconfig lo:1 192.168.1.100/32

[root@node2 ~]# ifconfig lo:1 192.168.1.100/32

让子网卡永久生效

法一、

在给文件/etc/rc.local里面添加ifconfig eth0:0 192.168.36.110 netmask 255.255.255.0 up,然后开机就会自动自行,但这个方法最方便,但不太可靠,有时会失灵。

法二:

cd /etc/sysconfig/network-scripts/

cp -r ifcfg-lo ifcfg-lo:1

vim ifcfg-lo:1

DEVICE=lo:1                //虚拟网络接口,随意                                    
ONBOOT=yes                    //系统启动时激活
BOOTPROTO=static             //使用静态ip地址                
IPADDR=192.168.1.100          //该虚拟网络接口的ip别名,随意
NETMASK=255.255.255.255         //子网掩码,对应ip别名
GATEWAY=192.168.1.1           //网关,对应ip别名
HWADDR=00:10:5A:5E:B1:E4      //网卡MAC地址,无需更改                   
USERCTL=no                    //是否给予非root用户设备管理权限

 

 

 

2、配置LVS服务器(分发服务器)

[root@LVS ~]# ifconfig eno16777736:1 192.168.1.100/32

[root@LVS ~]# yum -y install ipvsadm

添加策略:

[root@LVS ~]# ipvsadm -A -t 192.168.1.100:80 -s wrr---------------------添加虚拟服务,该IP为客户端访问时的地址

[root@LVS ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -w 3 -g-------添加真实应用服务器,"-g"表示用DR模式, -w表示权重
[root@LVS ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12:80  -g------------ 添加真实应用服务器,"-g"表示用DR模式

 

linux之集群LVS

标签:命令选项   方法   命令   ipaddr   别名   inux   服务端   信息   nbsp   

原文地址:https://www.cnblogs.com/scorpios/p/11756489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!