借助LVS+Keepalived通过DR模式实现负载均衡
1.测试环境4台server,全部初始化一下,该关的关了
# vim /etc/hosts
192.168.1.101 lvs-master DIP
192.168.1.102 lvs-slave DIP
192.168.1.161 lvs-web1 RIP
192.168.1.162 lvs-web2 RIP
192.168.1.200 vip yum clean all
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
2. 在两台web服务器上配置httpd和realserver脚本
[root@host161 ~]# yum -y install httpd
[root@host161 ~]# systemctl start httpd
[root@host161 ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multiuser.target.wants/httpd.service'
[root@host161 ~]# cat /var/www/html/index.html
hello this lvs-web1 [root@host161 ~]# vim /etc/init.d/realserver
SNS_VIP=192.168.1.200
/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_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
[root@host161 ~]# chmod 755 /etc/init.d/realserver
[root@host161 ~]# /etc/init.d/realserver start
3.在两台负载均衡server上配置keepalived,back节点只需要改动state和priority
[root@host101 keepalived]# yum install -y keepalived [root@host101 keepalived]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
mail@126.com
}
notification_email_from sns-lvs@gmail.com
smtp_server 192.168.80.1
smtp_connection_timeout 30
router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的
}
vrrp_instance VI_1 {
state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备
interface eno16777736 #指定Keepalived的角色,MASTER为主,BACKUP为备
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
advert_int 1 #检查间隔,默认为1s
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200 #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个
}
}
# 定义对外提供服务的LVS的VIP以及port
virtual_server 192.168.1.200 80 {
delay_loop 6 # 设置健康检查时间,单位是秒
lb_algo wrr # 设置负载调度的算法为wlc
lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.1.161 80 { # 指定real server1的IP地址
weight 3 # 配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.162 80 { # 指定real server2的IP地址
weight 3 # 配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
[root@host101 keepalived]# systemctl start keepalived
4.在负载均衡server上安装ipvsadm,我们可以通过命令看到LVS集群的状态,也可以管理配置LVS虚拟服务器组和相应的调度算法
[root@host101 ~]# yum -y install ipvsadm.x86_64
[root@host101 ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.200:http wrr
-> lvs-web1:http Route 3 0 0
-> lvs-web2:http Route 3 0 0
5.通过浏览器访问http://192.168.1.200进行测试,包括可以分别关闭主/备节点上的keepalived和web服务器的httpd进行测试。结果发现web流量可以在两台web上来回漂移
6.说明:LVS环境有分为内核层与用户层。
a.内核层负责核心算法的实现,它已经集成在现有的Linux内核模块中,LVS的内核模块名称为ip_vs。(# lsmod |grep ip_vs 查看)。
b.用户层需要安装ipvsadm工具。有了这个命令工具,用户就可以将需要的工作模式与实现算法传递给内核。
c.本实验中Keepalived与realserver脚本的搭配会自动调用内核的ip_vs模块去数据分发。
d.keepalived的作用是web服务器的健康检查,和主备LVS负载均衡节点的监听切换。
e.本实验中不安装ipvsadm同样可以完成LVS集群的配置,只是你无法查看它的状态罢了。
f.如果单用ipvsadm命令工具去创建LVS集群的确可以实现流量分流,但是无法做负载均衡器的HA和web服务器的健康检查。
参考文章,写的很全的
http://www.cnblogs.com/edisonchou/p/4281978.html
http://www.importnew.com/11229.html
https://fengqi.me/unix/55.html
借助LVS+Keepalived通过DR模式实现负载均衡的更多相关文章
- LVS+Keepalived搭建MyCAT高可用负载均衡集群
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...
- LVS + Keepalived 实现高可用、负载均衡 Web 集群
简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...
- LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)
一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...
- 三台CentOS 5 Linux LVS 的DR 模式http负载均衡安装步骤
Linux负载均衡软件LVS(概念篇) 一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是ww ...
- LVS+keepalived 的DR模式的两种做法
LVS DR模式搭建 准备工作 三台机器: dr:192.168.13.15 rs1:192.168.13.16 rs2: 192.168.13.17 vip:192.168.13.100 修改DR上 ...
- LVS基于DR模式搭建负载均衡群集
LVS -DR模式集群架构原理图
- centos7下通过LVS的DR模式实现负载均衡访问
一.两台服务器作为real server ,一台作为director director:172.28.18.69 vip:172.28.18.70 real server1:172.28.18.71 ...
- 通过LVS+Keepalived搭建高可用的负载均衡集群系统
1. 安装LVS软件 (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...
- lvs+keepalived+vsftp配置FTP服务器负载均衡
LVS+Keepalive 实现服务器的负载均衡高可用一.安装两台机器的安装是一样的,这里只记录一遍.1. 下载LVS+Keepalive 所需安装包http://www.keepalived.org ...
随机推荐
- (实用篇)php处理单文件、多文件上传代码分享
php处理 单文件.多文件上传实例代码,供大家参考,具体内容如下 后台处理文件submit_form_process.php <?php /************************** ...
- jquery保存用户名和密码到cookie里面
http://blog.sina.com.cn/s/blog_633ad0ae0101guij.html
- 转:【Spring MVC Controller单例陷阱】
http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1 ...
- 20145220 实验五 Java网络编程
20145220 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务 ...
- (转) ICML2016 TUTORIAL参会分享
ICML2016 TUTORIAL参会分享 本文转自: https://mp.weixin.qq.com/s?__biz=MzI3MDE4NTk4MQ==&mid=2658399541& ...
- ceph
http://docs.ceph.com/docs/master/radosgw/swift/java/
- C#实现通过模板自动创建Word文档的方法
原文地址:http://www.jb51.net/article/55332.htm 本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧.分享给大家供大家参考.具体实现方法 ...
- 02-Java 数组和排序算法
一.Java 数组 1.数组定义:数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来做唯一标识. 2.数组的分类:一维.二维.三维. 3.数组声明及内存分配: 为数组分配内存空间:如果不分 ...
- 自定的 HttpModule 为什么总是执行两次
其实可以看一下Html页面就知道了. 其实它又请求了一次.要关了这个或者忽略之.
- linux服务之smtp
实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...