从编译安装Keepalived 到 配置 负载均衡(LVS-DR)
最近在研究服务器高可用集群 (HA)……
Keepalived 是用C写的软路由。提供负载均衡与高可用特性。
负载均衡利用IPVS技术
高可用通过VRRP协议实现
更难能的贵的是,一直到最近还在更新
最近版本 Release 1.3.5 发布于 2017-03-19
安装过程官方推荐从源码编译,当然,负载均衡部分基于LVS,所以LVS部分直接YUM安装。
目标:
实现一个如下图所示的高可用服务器集群。
集群由两台调度器(DirectorServer,DS),三台真实服务器(RealServer,RS)构成。调度器一主一备,三台真实服务器进行负载均衡提供服务。
配置完成后只要能保证至少一台DS和一台RS工作正常,即可对外提供服务。并且管理员可以在邮箱收到相关服务器启停的邮件汇报。
准备:
服务器使用Oracle VM VirtualBox虚拟实现,虚拟机网络使用桥接,所有虚拟机(五台服务器)均在统一内网中,负载均衡工作在LVS的DR模式下。
虚拟机信息:
DS1 - master(CentOS-6.8-x86_64-minimal) : 192.168.0.201
DS2 - backup(CentOS-6.8-x86_64-minimal): 192.168.0.202
RS1 (CentOS-6.8-x86_64-minimal): 192.168.0.203
RS2 (CentOS-6.8-x86_64-minimal): 192.168.0.204
RS3 (CentOS-6.8-x86_64-minimal): 192.168.0.205
VIP: 192.168.0.200
keepalived编译与安装(两台DS上进行)
1)安装依赖库,配置防火墙开放端口。
yum install gcc openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel net-snmp-devel -y
iptables -I INPUT -i eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
iptables -I OUTPUT -o eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
service iptables save
2)获取最近版本源代码。
wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
tar -zxvf keepalived-1.3.5.tar.gz
3)进入目录,编译。
cd keepalived-1.3.5
./configure
make && make install
4)配置系统服务和开机启动:
cp ./keepalived/etc/init.d/keepalived /etc/init.d/
cp ./keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
chkconfig keepalived on
service keepalived status #验证系统服务安装成功
5)一些清理工作:
cd ..
rm -rf keepalived-1.3.5
keepalived配置
1)配置RS,提供WEB服务
三台RS使用Nginx对外提供服务,三个RS提供服务器的端口必须一致,例如80.
为了验证负载均衡效果,可以让三台服务器返回的页面略有区别,比如返回的页面中带上自己的hostname
计划配置LVS负载均衡工作在DR模式下。所以需要对RS进行ARP抑制配置。
配置脚本 realserver.sh 如下:
#!/bin/bash VIP=192.168.0.200 source /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
执行时使用 /path/to/realserver.sh start
三台RS均需要执行。
2)配置DS,实现HA与负载调度。
Keepalived的负载均衡功能直接利用了LVS,所以使用Keepalived自带的virtual_server配置方式配置负载均衡前,需要为两台DS均安装LVS:
yum install ipvsadm -y
LVS的DR模式没有端口转发功能。调度器对包暴漏的端口和服务器对外提供的服务使用的端口必须是一致的(本案为80端口)。
两台DS均需要开放80端口,以对外提供服务:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
在DS-Master创建keepalived配置文件:
mkdir /etc/keepalived
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { guang384@qq.com} notification_email_from guang384@163.comsmtp_server 127.0.0.1 #使用本地STMP服务,配置方式参考另一篇文章smtp_connect_timeout 30 #服务器全局属性,在收到提醒邮件的时候会用来作为当前服务器的标识,所以每台服务器都要唯一 router_id LVS_DR_DS1 } vrrp_instance VI_1 { state MASTER #指定Keepalived的角色, MASTER 为主机服务器, BACKUP 为备用服务器 interface eth0virtual_router_id 51 priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR。 advert_int 1 #心跳间隔,MASTER每隔1秒发送报文告知组内其他机器自己还活着。(主备状态依靠心跳维持) authentication {auth_type PASSauth_pass 1111} virtual_ipaddress {192.168.0.200 #设置主DR的虚拟IP地址(virtual IP),可多设,但必须每行1个 }smtp_alert #使用邮件通知 } virtual_server 192.168.0.200 80 { #注意IP地址与端口号之间用空格隔开 delay_loop 1 #设置健康检查时间,单位是秒 (是的,keepalived健康检查也是轮询模式)lb_algo rr #设置负载调度算法,默认为rr,即轮询算法,最优秀是wlc算法 lb_kind DR #设置LVS实现LB机制,有NAT、TUNN和DR三个模式可选 #persistence_timeout 50 #保持客户端的请求在这个时间段内全部发到同一个真实服务器,单位为秒 protocol TCP #指定转发协议类型,有TCP和UDP两种 real_server 192.168.0.203 80 { weight 1 #配置节点权值,数字越大权值越高 TCP_CHECK { connect_timeout 2 #表示2秒无响应,则超时 retry 2 #表示重试次数 delay_before_retry 1 #表示重试间隔 } } real_server 192.168.0.204 80 { weight 1TCP_CHECK {connect_timeout 2retry 2delay_before_retry 1} } real_server 192.168.0.205 80 { weight 1TCP_CHECK {connect_timeout 2retry 2delay_before_retry 1} } }
同样配置文件复制到 DS-BACKUP
修改3个地方(很多文章说只需要配置vrrp_instance中的 状态 和 优先级 两处即可,但是为了邮件提示的准确性,需要将 global_defs.route_id 配置不一样,当然,如果没有配置邮件提示而使用其他方式如nagios对服务器进行监控,这里配置什么其实无所谓)
keepalived.conf修改三个地方
1) router_id LVS_DR_DS2
2) state BACKUP
3 ) priority 50
keepalived 启动和停止:
service keepalived start|stop
keepalived执行日志默认位置:
tail -f /var/log/messages
直接前台模式启动(for 调试) :
keepalived -l -D -n -d
测试
略…… _(:3」∠)_ -
转载于:https://www.cnblogs.com/tugeler/p/6621959.html
从编译安装Keepalived 到 配置 负载均衡(LVS-DR)相关推荐
- centos安装nginx,配置负载均衡
1.安装nginx 安装教程,参照:http://mp.weixin.qq.com/s/RVaRlRpHqZRjCaXGmOlfKw 2.反向代理的配置 修改部署目录下conf子目录的nginx ...
- Lvs+Keepalived高可用负载均衡配置
Lvs+Keepalived高可用负载均衡配置 环境介绍: vip=192.168.3.80 (负载均衡虚拟ip) lvs+keepalived_master eth0:172. ...
- Nginx 概述 如何正规安装 静态网页配置 反向代理配置 负载均衡配置
目录 1. 基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx安装和配置 2.1 安装Nginx 2.2 配置 3. Nginx的使用 3.1 部署静态 ...
- NGINX基于Tomcat配置负载均衡
NGINX基于Tomcat配置负载均衡 本部署指南说明了如何使用NGINX开源和NGINX Plus在Apache Tomcat TM应用程序服务器池之间平衡HTTP和HTTPS流量.本指南中的详细说 ...
- 案例一(haproxy+keepalived高可用负载均衡系统)【转】
1.搭建环境描述: 操作系统: [root@HA-1 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) 地址规划: 主机名 IP地址 集群角 ...
- keepalived实现nginx负载均衡
keepalived 实现nginx 负载均衡+主备高可用 概述 nginx作为负载均衡器,所有请求都到nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机,后端web服务将无法提供 ...
- keepalived介绍和keepalived实现nginx负载均衡机高可用
1. keepalived简介 1.1 keepalived是什么? Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实 ...
- APACHE 2.2.8+TOMCAT6.0.14配置负载均衡
作者: jiake0504 链接:http://jiake0504.javaeye.com/blog/265000 发表时间: 2008年11月10日 声明:本文系JavaEye网站发布的原创博客 ...
- nginx 负载均衡 404_nginx配置负载均衡
- 负载均衡是网络基础架构的一个非常关键的组成部分,有了负载均衡,我们可以把应用服务器部署多台,避免了服务宕机,也增强了服务的性能及可用性. - 负载均衡的算法有很多 ,这里只是简单提下, - **轮 ...
最新文章
- 打造“新基建”核心支柱 数据中心产业期待提速提质
- 【SSM面向CRUD编程专栏 3】关于黑马程序员最全SSM框架教程视频,P37集老师跳过的模块创建以及tomcat下载安装配置和运行等诸多问题
- java 快速排序 递归_Java递归快速入门
- mysql datetime 比较大小_【知识点】分布式事务数据库 —-MySQL 数据库开发规范(第一节)...
- python3使用print打印带颜色的字符串
- type=button 字体大一点_CAD设计师喜欢用SHX字体的原因你知道吗?
- 我的CSDN账号被偷了
- JavaWeb教程———过滤器
- python+selenium从excel读取成语到谷歌搜索得到搜索结论数
- 辅助进度控制的计算机软件是指,辅助进度控制的计算机软件是指以( )为核心的项目管理软件包。...
- 链家数据爬取+地图找房
- C++ exception with description “bad optional access“ thrown in the test body.
- 联想服务器配置 RAID
- 网络编程和网络应用开发
- codeforces 584E
- 【大数据】 大数据计算系统
- Mac zshrc文件找不到问题
- Android面试宝典(转)
- 自然语言处理—文本情感分析
- B - Derangement