LVS+KeepAlived搭建双机热备负载均衡
来源:互联网 发布:淘宝网购酸枣面 编辑:程序博客网 时间:2024/05/06 19:46
1. 网络环境准备
1.1.网络拓扑环境搭建
1. 主服务器(master):虚拟IP-192.168.13.120
2. 备份服务器(backup):虚拟IP-192.168.13.120
3. 真实服务器1(real1):192.168.13.102
4. 真实服务器2(real2):192.168.13.105
5. 真实服务器3(real3):192.168.13.107
(测试可以省去备份服务器以及真实服务器2、3)主备和真实服务器的真实IP不重要,一下所写真实IP均为了举例方便,在相同网段即可1.2. 下载
本文所有内容的下载地址(ipvsadm,keepalived,keepalived.config,lvsdr.sh,realdr.sh)如下:
链接: https://pan.baidu.com/s/1qYVhhF2 密码: mtj9
2. 环境搭建配置
2.1. 环境检测
检查内核是否支持ipvs
# modprobe –l | grep ipvs
如果在/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs下有很多ip_vs*这样的文件说明ipvs模块已经加入,如果没有,请自行升级内核T T2.2. 安装ipvsadm(管理工具)
从下载内容包中找到ipvsadm-1.24.tar.gz,执行如下命令(运行命令出错的说明编译环境存在问题,请更新下载GCC)
# tar zxvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
# make && make install
# whereis ipvsadm
如果存在如下图的数据信息则说明安装成功2.3. 安装keepalived
从下载内容包中找到ipvsadm-1.24.tar.gz,执行如下命令(运行命令出错的说明编译环境存在问题,请更新下载GCC)
#tar -zxvf keepalived-1.1.15.tar.gz
#cd keepalived-1.1.15
#./configure --prefix=/usr/local/keepalived
#make;make install
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/2.4. 配置LVS
2.4.1. 创建主备服务器运行脚本(master,backup)
本脚本的主要作用是在主备服务器上创建虚拟IP,并通过该虚拟IP+使用端口路由到真实服务器IP上,其中命令”/sbin/ipvsadm -C”是清理路由表
注:由于本人项目使用了80 3131 5151三个端口,所以配置了三个,实际使用请按需增删
#vim /sbin/lvsdr.sh
!/bin/bash VIP=192.168.13.120 RIP1=192.168.13.102RIP2=192.168.13.107RIP3=192.168.13.105/etc/rc.d/init.d/functionscase "$1" instart) echo "start LVS of DirectorServer" #Set the Virtual IP Address /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev eth0:1 #Clear IPVS Table /sbin/ipvsadm -C #Set Lvs Add route link /sbin/ipvsadm -A -t $VIP:80 -s wrr -p 60 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP3 -g /sbin/ipvsadm -A -t $VIP:3131 -s wrr -p 60 /sbin/ipvsadm -a -t $VIP:3131 -r $RIP1 -g /sbin/ipvsadm -a -t $VIP:3131 -r $RIP2 -g /sbin/ipvsadm -a -t $VIP:3131 -r $RIP3 -g /sbin/ipvsadm -A -t $VIP:5151 -s wrr -p 60 /sbin/ipvsadm -a -t $VIP:5151 -r $RIP1 -g /sbin/ipvsadm -a -t $VIP:5151 -r $RIP2 -g /sbin/ipvsadm -a -t $VIP:5151 -r $RIP3 -g #Run Lvs /sbin/ipvsadm;;stop)echo "Close LVS Directorserver"/sbin/ifconfig eth0:1 down/sbin/ipvsadm -C;;*)echo "Usage0{start|stop}"exit 1esac· 分配权限
#/sbin/lvsdr.sh start
#ipvsadm –ln
如果是类似如下图所示,则表示配置正确(看看路由列表是否和自己配置相同)
#/sbin/lvsdr.sh stop
#ipvsadm –ln
2.4.2. 创建正式服务器运行脚本(real1,real2,real3)
要完成主备虚拟IP映射,必须在真实服务器上运行下面的脚本启动,建议将该脚本加入启动项中开机启动,不然每次重启都要运行该脚本。需要注意:执行servicenetwork restart命令后需要重新运行该脚本
#vim /sbin/realdr.sh
!/bin/bashVIP=192.168.13.120/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up/sbin/route add -host $VIP dev lo:0echo "1">/proc/sys/net/ipv4/conf/default/arp_ignoreecho "2">/proc/sys/net/ipv4/conf/default/arp_announceecho "1">/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2">/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p` 分配权限
2.5. 配置keepalived
2.5.1. 修改主备keepalived配置文件(master,backup)
该配置文件主要核心是监听我们指定其监听的端口,实时监测各个真实服务器(real1,real2,real3)的指定端口是否能连通,如果连接异常则将其从路由表中剔除,如果恢复则重新加入到路由表中。
详细参数说明请参见官网或其他资料,其中state MASTER参数在备份服务器中要改为state BACKUP。
#vim /etc/keepalived/keepalived.conf!Configuration File for keepalivedglobal_defs { notification_email {939248756@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL}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.13.120 }}virtual_server 192.168.13.120 80 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 60 inhibit_on_failure protocol TCP real_server 192.168.13.102 80 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} } real_server 192.168.13.107 80 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} } real_server 192.168.13.105 80 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} }}virtual_server 192.168.13.120 3131 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 60 protocol TCP real_server 192.168.13.102 3131 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} } real_server 192.168.13.107 3131 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} }real_server 192.168.13.105 3131 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} }}virtual_server 192.168.13.120 5151 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 60 protocol TCP real_server 192.168.13.102 5151 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} } real_server 192.168.13.107 5151 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} }real_server 192.168.13.105 5151 { weight 1 TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3} }}
2.5.2. 启动测试keepalived
*@!不要忘记先把路由脚本lvsdr.sh启动起来
#/sbin/lvsdr.sh start
#/etc/rc.d/init.d/keepalived start
查看此时路由状态,执行命令ipvsadm –ln,得到下图,从图中列表可以看出只有real1(IP 192.168.13.102)是连通的多进行几次测试就会知道其原理了,从而可以对配置文件进行更合适的修改
2.6. 设置自启动
【主备服务器】
#vim /etc/rc.local
添加如下内容:
/etc/rc.d/init.d/keepalived restart
/sbin/lvsdr.sh start
【真实服务器】
#vim /etc/rc.local
添加如下内容:
添加/sbin/realdr.sh start
3. 注意事项
- 要关闭所有服务器(master,backup,real1,real2,real3)的防火墙 :chkconfig iptables off重启关闭、service iptables stop立即关闭
- 一个端口要建立一个端口对应的映射配置(lvsdr.sh和keepalived.conf都要对应修改)
- Service network restart后的真实服务器一定要重新运行realdr.sh
- LVS+KeepAlived搭建双机热备负载均衡
- LVS+keepalived+nginx实现双机热备负载均衡
- LVS+Keepalived实现负载均衡和双机热备
- LVS+keepalived实现双机热备和负载均衡
- LVS+Keepalived实现负载均衡和双机热备
- Nginx负载均衡+keepalived双机热备
- keepalived+nginx双机热备+负载均衡
- ] keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- Keepalived+Nginx负载均衡双机热备
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- keepalived+nginx双机热备+负载均衡
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- apache tez
- 深入浅出mybatis中原始dao的开发和mapper代理开发
- Swift3.0语言教程比较、判断字符串
- VR、AR、MR和CR分别是什么
- laravel debugbar扩展包配置
- LVS+KeepAlived搭建双机热备负载均衡
- matlab遍历文件夹下所有图片和遍历所有子文件夹下图片
- CSS3能做什么?
- Python 函数
- 行人检测论文阅读
- leetcode:216. Combination Sum III
- xcode 断点卡死
- 微信硬件平台蓝牙设备开发(一)
- php源码之路第五章第七节 (对象)