②分别在二台lvs机上启动servcie keepalived start就可实现负载均衡及高可用集群;keepalived.conf内容说明如下:

●全局定义块

1、email通知。作用:有故障,发邮件报警。

2、Lvs负载均衡器标识(lvs_id)。在一个网络内,它应该是唯一的。

3、花括号“{}”。用来分隔定义块,因此必须成对出现。如果写漏了,keepalived运行时,不会得到预期的结果。由于定义块内存在嵌套关系,因此很容易遗漏结尾处的花括号,这点要特别注意。

●VRRP定义块

1、同步vrrp组vrrp_sync_group。作用:确定失败切换(FailOver)包含的路由实例个数。即在有2个负载均衡器的场景,一旦某个负载均衡器失效,需要自动切换到另外一个负载均衡器的实例是哪些?
2、实例组group。至少包含一个vrrp实例。
3、Vrrp实例vrrp_instance。实例名出自实例组group所包含的那些名字。

(1)实例状态state。只有MASTER和BACKUP两种状态,并且需要大写这些单词。其中MASTER为工作状态,BACKUP为备用状态。当MASTER所在的服务器失效时,BACKUP所在的系统会自动把它的状态有BACKUP变换成MASTER;当失效的MASTER所在的系统恢复时,BACKUP从MASTER恢复到BACKUP状态。

(2)通信接口interface。对外提供服务的网络接口,如eth0,eth1.当前主流的服务器都有2个或2个以上的接口,在选择服务接口时,一定要核实清楚。

(3)lvs_sync_daemon_inteface。负载均衡器之间的监控接口,类似于HA HeartBeat的心跳线。但它的机制优于Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在DR模式中,lvs_sync_daemon_inteface 与服务接口interface 使用同一个网络接口。

(4)虚拟路由标识virtual_router_id。这个标识是一个数字,并且同一个vrrp实例使用唯一的标识。即同一个vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同时在整个vrrp内是唯一的。

(5)优先级priority。这是一个数字,数值愈大,优先级越高。在同一个vrrp_instance里,MASTER 的优先级高于BACKUP。若MASTER的priority值为150,那么BACKUP的priority只能是140或更小的数值。

(6)同步通知间隔advert_int。MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位为秒。

(7)验证authentication。包含验证类型和验证密码。类型主要有PASS、AH两种,通常使用的类型为PASS,据说AH使用时有问题。验证密码为明文,同一vrrp实例MASTER与BACKUP 使用相同的密码才能正常通信。

4、 虚拟ip地址virtual_ipaddress。可以有多个地址,每个地址占一行,不需要指定子网掩码。注意:这个ip必须与我们在lvs客户端设定的vip相一致!

●虚拟服务器virtual_server定义块

虚拟服务器定义是keepalived框架最重要的项目了,是keepalived.conf必不可少的部分。

1、虚拟服务器virtual_server。这个ip来自于vrrp定义块的第“4”步,后面一个空格,然后加上端口号。定义一个vip,可以实现多个tcp端口的负载均衡功能。

(1)delay_loop。健康检查时间间隔,单位是秒。

(2)lb_algo。负载均衡调度算法,互联网应用常使用wlc或rr。

(3)lb_kind。负载均衡转发规则。一般包括DR、NAT、TUN3种,在我的方案中,都使用DR的方式。

(4)persistence_timeout。会话保持时间,单位是秒。这个选项对动态网站很有用处:当用户从远程用帐号进行登陆网站时,有了这个会话保持功能,就能把用户的请求转发给同一个应用服务器。在这里,我们来做一个假设,假定现在有一个lvs 环境,使用DR转发模式,真实服务器有3个,负载均衡器不启用会话保持功能。当用户第一次访问的时候,他的访问请求被负载均衡器转给某个真实服务器,这样他看到一个登陆页面,第一次访问完毕;接着他在登陆框填写用户名和密码,然后提交;这时候,问题就可能出现了---登陆不能成功。因为没有会话保持,负载均衡器可能会把第2次的请求转发到其他的服务器。

(5)转发协议protocol。一般有tcp和udp两种。实话说,我还没尝试过udp协议类的转发。

2、真实服务器real_server,也即服务器池。Real_server的值包括ip地址和端口号,多个连续的真实ip。

(1)权重weight,权重值是一个数字,数值越大,权重越高。使用不同的权重值的目的在于为不同性能的机器分配不同的负载,性能较好的机器,负载分担大些;反之,性能差的机器,则分担较少的负载,这样就可以合理的利用不同性能的机器资源。

(2)Tcp检查tcp_check。

附注:以上就是lvs+keepalived的基本配置步骤,有兴趣的同学建议可做下lvs的1+2的基本架构实验,即不需要keepalived,采用单lvs的方式,其lvs_dr脚本如下

  1. #vim /usr/local/sbin/lvs-dr.sh

  2. #!/bin/bash

  3. #website director vip.

  4. SNS_VIP=192.168.1.188

  5. SNS_RIP1=192.168.1.104

  6. SNS_RIP2=192.168.1.105

  7. ./etc/rc.d/init.d/functions

  8. logger $0 called with $1

  9. case "$1" in

  10. start)

  11. # set squid vip

  12. /sbin/ipvsadm --set 30 5 60

  13. /sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up

  14. /sbin/route add -host $SNS_VIP dev eth0:0

  15. /sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3

  16. /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1

  17. /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1

  18. touch /var/lock/subsys/ipvsadm >/dev/null 2>&1

  19. ;;

  20. stop)

  21. /sbin/ipvsadm -C

  22. /sbin/ipvsadm -Z

  23. ifconfig eth0:0 down

  24. route del $SNS_VIP

  25. rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1

  26. echo "ipvsadm stoped"

  27. ;;

  28. status)

  29. if [ ! -e /var/lock/subsys/ipvsadm ];then

  30. echo "ipvsadm stoped"

  31. exit 1

  32. else

  33. echo "ipvsadm OK"

  34. fi

  35. ;;

  36. *)

  37. echo "Usage: $0 {start|stop|status}"

  38. exit 1

  39. esac

  40. exit 0

最新版更新内容如下:

①每台服务器都有二块网卡,分别连接内外网;后端的mysql数据库与web连接采用内网方式,整个网络环境采用内网;

②增加了keepalivedyiyyy .conf语法内容;

③删除了lvs.sh脚本内容,直接让keepalived内容更直接明了,新增加了单lvs的配置脚本lvs_dr.sh;

④lvs主从机上的keepalived.conf文件我直接从生产服务器上download下来了,可方便大家使用。

转载于:https://blog.51cto.com/changjianglinux/1862127

企业级WEB的负载均衡高可用之LVS+Keepalived(3)相关推荐

  1. saltstack实现haproxy+keepalived负载均衡+高可用(二)

    一键部署haproxy+keepalived实现负载均衡+高可用 实验环境: !!!!    特别注意: www.westos.org为test1的minion名字 test1: 172.25.1.1 ...

  2. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

  3. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  4. nginx负载均衡高可用

    1.1   什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了屏蔽负载均 ...

  5. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  6. Nginx+KeepAlived实现负载均衡高可用原理

    作者:田超凡 原创博文,严禁复制转载,仿冒必究 nginx负载均衡高可用 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务 ...

  7. Nginx+keepalived负载均衡高可用篇第③版

    Nginx+keepalived负载均衡高可用篇第③版 对付中.小型企业,假如没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepa ...

  8. Open***异地机房互连以及负载均衡高可用解决方案

    架构方案如下: ---Open××× server 搭建部署 1.在Open×××-1 server上安装流程 (1.添加epel源 [root@ShangHai-×××-1 ~]# yum inst ...

  9. LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

最新文章

  1. VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018...
  2. 蚂蚁森林合种计划(2020.10.31,7天有效,每周更新)
  3. java运行机制是什么_JAVA运行机制
  4. NET问答: 对 Linq 中的 Union 和 Concat 的用法困惑
  5. sp_xml_preparedocument 处理xml文档
  6. C及C++中的一些基础知识点(持续更新)
  7. rabbitmq direct 多个消费者_RabbitMQ从零开始
  8. 没车牌也能开上国产特斯拉:北京3年租赁每月1万1,全国最低7千
  9. 設置Linux保留物理內存並使用 (1)
  10. B - 简单暴力(计算今年第几天)
  11. Kubernetes集群安全:Api Server认证
  12. 数据增广Data Augmentation 动手学深度学习v2
  13. hfss螺旋平面_微波射频网HFSS平面螺旋天线设计
  14. SAP License:ERP项目升级评标会偶遇以前同事感慨
  15. 【整理】3dsMax中毒了怎么办
  16. django 文件下载到本地
  17. Android信鸽推送全解
  18. ckplayer 如何在PC上完美支持 m3u8播放
  19. 人工智能和溯因推理 AI的历史一直被演绎和归纳所主导
  20. 仿钉钉考勤统计圆形控件

热门文章

  1. 一句命令删除docker所有镜像或容器
  2. Gym 101128A :Promotions (Southwestern Europe Regional Contest )
  3. redis动态扩展内存
  4. x86_64的内存映射
  5. vfork()系统调用
  6. iOS之github第三方框架(持续更新)
  7. RAC 安装完成后 节点间通信不依赖于SSH
  8. 未来10年,最具颠覆性的5大指数型技术(附应用建议)
  9. 崩溃!新浪程序员加班错失 77 万年会大奖
  10. 〖谷腾读书会GTC〗Digital economy