借助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 ...
随机推荐
- 我也谈谈 代码调用存储过程超时,SQL Server Management Studio里运行很快的问题
最近遇到了一个问题就是 一个执行速度很快的存储过程,在代码中调用的时候却超时了. 后来看到了两篇文章: 其中一篇是这样介绍的 今天同事用代码调用存储过程时超时,在SQL Server Manageme ...
- UI学习笔记---第四天
事件处理 事件概述 UIEvent:事件,是由硬件捕捉的一个表示用户操作设备的对象 分三类:触摸事件\ 晃动事件\ 远程控制事件 触摸事件:会包含1个到多个触摸点 实现触摸 UIView支持触摸事件 ...
- Boot Repair-能一键修复ubuntu启动/引导项的软件(告别命令行)
如果你是windows+ubuntu的双系统,那么重装windows之后(非ghost 方式),是会直接进入windows的,之前的grub引导菜单会被抹掉,想要修复ubuntu的启动菜单的话,通常需 ...
- python爬虫抓网页的总结
python爬虫抓网页的总结 更多 python 爬虫 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自 ...
- URAL Mosaic(并查集)(欧拉回路)
Mosaic Time limit: 0.25 secondMemory limit: 64 MB There's no doubt that one of the most important an ...
- URAL 1934 Black Spot(最短路)
Black Spot Time limit: 1.0 secondMemory limit: 64 MB Bootstrap: Jones's terrible leviathan will find ...
- GNU C 扩展(转)
GNU CC 是一个功能非常强大的跨平台 C 编译器,它对 C 语言提供了很多扩展,这些扩展对优化.目标代码布局.更安全的检查等方面提供了很强的支持.这里对支持支持 GNU 扩展的 C 语言成为 GN ...
- Machine and Deep Learning with Python
Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...
- c++时间处理
struct tm;这是一个结构体,包括了时间的各个属性年月日,时分秒 time(time_t * t);获取从1900年到现在经过的毫秒数,或者也可以这么用time_t t=time(NULL); ...
- NLTK中的词性
NOUN n,VERB v ,ADJ a, ADV r, ADJ_SAT s NOUN: [('s', ''), ('ses', 's'), ('ves', 'f'), ('xes', 'x' ...