LVS+Keepalived

LVS
介绍
四层调度器:传输层)
    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
    最终目的是linux操作系统和lvs集群软件实现一个高可用的高性能低成本的服务器的应用集群
组成
前端: 负载均衡层   一台或多台负载调度器构成
中间: 服务器群组层  由一组时机运行应用服务的服务器组成
底端: 数据共享存储层  提供共享储存的空间的存储区域
术语
Director Server  调度服务器 :将负载分发到RealServer的服务器
Real Server  真实服务器   : 真正提供应用服务器的服务器
VIP  虚拟ip地址           : 公布给用户访问的虚拟ip地址
DIP  调度器连接后端节点服务器的ip地址
RIP  真实ip地址           : 集群点上使用的ip地址
工作模式
NAT模式   通过网络地址转换实现的虚拟服务器;大并发访问调度器性能成为瓶颈 
TUN模式   隧道模式 通过隧道方式实现虚拟服务器
DR模式    直接使用路由技术实现虚拟服务器;节点服务器需要配置vip,注意mac地址广播
一、NAT模式(VS-NAT)
原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。
优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。
缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!
二、IP隧道模式(VS-TUN)
原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选项
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。
三、直接路由模式(VS-DR)
原理:负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上。
优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。
缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上
调度算法
轮询、加权轮询、最少连接、加权最少连接、基于局部的最少连接、带复制的基于局部性的最少连接
目标地址散列调度、源地址散列调度、最短的期望的延迟、最少队列调度
NAT

1.环境准备:

 proxy调度器做路由器、client客户端、web1、web2、做web服务端并配置网页,网关指定调度器proxy

2.部署LVS-NAT模式调度器:

 echo 1 > /proc/sys/net/ipv4/ip_forward 临时开启路由转发配置
 echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf 永久开启路由转发配置
  sysctl -p: 刷新路由转发配置,查看路由转发配置文件

3.安装ipvsadm 进行管理调度器

yum -y install ipvsadm
ipvsadm -A -t 192.168.4.5:80 -s wrr
ipvsadm -Ln

4.创建集群服务器

ipvsadm -A(创建添加虚拟服务集群) -t 外网ip:端口 -s 调度算法
-A(add)是创建添加虚拟服务器集群
-t(tcp)后面指定集群VIP的地址和端口,协议是tcp协议
-s后面指定负载调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等等

5.添加真实服务器

ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
-a(add)往虚拟服务器集群中添加后端真实服务器IP,指定往-t 192.168.4.5:80这个集群中添加
-d 删除真实服务器
-r(real)后面跟后端真实服务器的IP和端口,这里不写端口默认是80端口
-w(weight)指定服务器的权重,权重越大被访问的次数越多,英语词汇:weight(重量,分量)
-m指定集群工作模式为NAT模式,如果是-g则代表使用DR模式,-i代表TUN模式

查看规则列表,配置: ipvsadm -Ln

保存配置: ipvsadm-save -n /etc/sysconfig/ipvsadm

DR

1、环境准备

proxy DIP:4.5 VIP:4.15
         Client 4.10
         Web1:ip 4.100  lo:隐藏ip:4.15
         Web2:ip 4.200  lo:隐藏ip:4.15

2、集群搭建:使用-g定义DR集群

3、client访问4.15测试

Lo网卡为虚拟网卡:伪装的IP地址,这个IP地址因为是用来做地址欺骗用的,假的就是假的,不能暴露(必须配置在lo本地回环网卡上面)。
lo网卡上面默认配置的IP是127.0.0.1。

4、防止地址冲突的问题

这里因为web1也配置与调度器一样的VIP地址,默认肯定会出现地址冲突;
sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包,只有调度器会响应,其他主机都不做任何响应,这样防止地址冲突的问题。
net.ipv4.conf.all.arp_ignore = 1   对应的为/proc/sys/net/ipv4/conf/all/目录 
net.ipv4.conf.lo.arp_ignore = 1   有arp广播问谁是192.168.4.15时,本机忽略该ARP广播,不做任何回应(防止进站冲突)
net.ipv4.conf.lo.arp_announce = 2   
net.ipv4.conf.all.arp_announce = 2本机不要向外宣告自己的lo回环地址是192.168.4.15(防止出站冲突)    /所有值默认为0
sysctl -p 立即生效

5、配置vip、DIP

6、配置LVS规则

ipvsadm -A -t 192.168.4.15:80 -s rr
ipvsadm -a -t 192.168.4.15:80 -r 192.168.2.100:80 -g
ipvsadm -a -t 192.168.4.15:80 -r 192.168.2.200:80 -g
ipvsadm -Ln
Keepalived

三大功能:

1.VRRP热备 :[配置vip]
2.配置lvs规则(ipvsadm)---开启lvs调度器作用
3.健康检查 --- 自动检查集群工作
keepalived运行时,会启动3个进程,分别为:core(核心进程),check和vrrp
 \- core:负责主进程的启动,维护和全局配置文件的加载;
 \- check:负责健康检查
 \- vrrp:用来实现vrrp协议

1、安装软件

yum -y install keepalived

2、修改配置文件

vim /etc/keepalived/keepalived.conf
global_defs {
  router_id  web1        #12行,设置路由ID号(实验需要修改)
    vrrp_iptables            #13行,清除防火墙的拦截规则(实验需要修改,手动添加该
vrrp_instance VI_1 {
  state MASTER            #21行,主服务器为MASTER(备服务器需要修改为BACKUP)
  interface eth0            #22行,VIP配在哪个网卡(实验需要修改,不能照抄网卡名)
  virtual_router_id 51        #23行,主备服务器VRID号必须一致
  priority 100            #24行,服务器优先级,优先级高优先获取VIP
  advert_int 1
  authentication {
    auth_type pass
    auth_pass 1111                       
  }
  virtual_ipaddress {        #30~32行,谁是主服务器谁获得该VIP(实验需要修改)
192.168.4.80 
  virtual_server 192.168.4.15 80 {        #设置ipvsadm的VIP规则(实验需要修改)
	  delay_loop 6                        #默认健康检查延迟6秒
	  lb_algo rr                            #设置LVS调度算法为RR
	  lb_kind DR                            #设置LVS的模式为DR(实验需要修改)
	  #persistence_timeout 50                #(实验需要删除)
	#注意persistence_timeout的作用是保持连接
	#开启后,客户端在一定时间内(50秒)始终访问相同服务器
	  protocol TCP                        #TCP协议
	  real_server 192.168.4.100 80 {        #设置后端web服务器真实IP(实验需要修改)
	    weight 1                            #设置权重为1
	    TCP_CHECK {                        #对后台real_server做健康检查(实验需要修改)
	    connect_timeout 3                #健康检查的超时时间3秒
	    nb_get_retry 3                    #健康检查的重试次数3次
	        delay_before_retry 3                #健康检查的间隔时间3秒
	    }
  }
	 real_server 192.168.4.200 80 {        #设置后端web服务器真实IP(实验需要修改)
   weight 2                        #设置权重为2
	    TCP_CHECK {                    #对后台real_server做健康检查(实验需要修改)
        connect_timeout 3            #健康检查的超时时间3秒
    nb_get_retry 3                #健康检查的重试次数3次
   delay_before_retry 3            #健康检查的间隔时间3秒、 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值