RHEL6 搭建 keepalived + lvs/DR 集群
搭建 keepalived + lvs/DR 集群
使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务:
LVS1调度器真实IP地址为192.168.4.50
LVS2调度器真实IP地址为192.168.4.55
服务器VIP地址设置为192.168.4.252
真实Web服务器地址分别为192.168.4.51、192.168.4.52
实验拓扑图:

实验步骤:
实验准备:
配置yum源
# service iptables stop //关闭防火墙
# chkconfig iptables off //关闭开机自启
# setenforce 0 //设置SELinux 为宽松模式
配置WEB服务器 pc51 / pc52
#yum -y install httpd
#service httpd start
#chkconfig httpd on
[root@pc51 ~] #echo " 192.168.4.51 " > /var/www/html/test.html
[root@pc52 ~] #echo " 192.168.4.52 " > /var/www/html/test.html
本次实验有些步骤就不详细介绍了,具体有关 keepalived 和 ipvsadm 的相关配置 可以参考
keepalived 配置高可用集群 : https://blog.51cto.com/13558754/2060950
ipvsadm 配置LVS/DR 负载均衡集群:https://blog.51cto.com/13558754/2060405
1 在web服务上 配置 VIP地址 pc51 / pc52
# ifconfig lo:1 192.168.4.252/32 //只拥有ip 就可以
# ifconfig lo:1
lo:1 Link encap:Local Loopback
inet addr:192.168.4.252 Mask:0.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
# cd /proc/sys/net/ipv4/conf/
# echo 1 > lo/arp_ignore
# echo 2 > lo/arp_announce
# echo 1 > all/arp_ignore
# echo 2 > all/arp_announce
2 配置分发器 50(主) 55(备) 分别安装keepalived软件 装包 ipvsadm
# rpm -q ipvsadm keepalived
ipvsadm-1.26-4.el6.x86_64
keepalived-1.2.13-5.el6_6.x86_64
4 修改配置文件
[root@pc50 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER // 描述信息 MASTER为主服务器
interface eth0 // 定义网络接口
virtual_router_id 51 //主 备VRID号必须一致
priority 150 //服务器优先级
advert_int 1
authentication {
auth_type PASS //验证方式
auth_pass 1111 //验证密码 主 备服务器密码必须一致
}
virtual_ipaddress {
192.168.4.252 //VIP地址
}
}
virtual_server 192.168.4.252 80 { //配置 VIP为192.168.0.252 80 端口
delay_loop 6
lb_algo rr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.51 80 {
weight 1 //设置权重为1
}
real_server 192.168.4.52 80 {
weight 1 //设置权重为1
}
}
使用第一个虚拟服务的模版
其余的都删除
主机55
[root@pc55 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP // 描述信息 BACKUP为备用服务器
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.252
}
}
virtual_server 192.168.4.252 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.51 80 {
weight 1
}
real_server 192.168.4.52 80 {
weight 1
}
}
5 启动服务
# service keepalived start
[root@pc50 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.252:80 rr persistent 50
-> 192.168.4.51:80 Route 1 0 0
-> 192.168.4.52:80 Route 1 0 0
[root@pc50 ~]# ip addr show | grep 192.168.4
inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0
inet 192.168.4.252/32 scope global eth0
[root@pc55 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 0 0 0 0 0
-> 192.168.4.51:80 0 0 0 0 0
-> 192.168.4.52:80 0 0 0 0 0
[root@pc55 ~]# ip addr show | grep 192.168.4
inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0
6 客户端访问
# elinks --dump 192.168.4.252
192.168.4.52
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.51
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.52
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.51
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.52
# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 5 25 0 2075 0
-> 192.168.4.51:80 2 10 0 830 0
-> 192.168.4.52:80 3 15 0 1245 0
[root@pc55 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 0 0 0 0 0
-> 192.168.4.51:80 0 0 0 0 0
-> 192.168.4.52:80 0 0 0 0 0
模拟50 故障 验证Keepalived 高可用
[root@pc50 ~]# service keepalived stop
[root@pc50 ~]# ip addr show | grep 192.168.4
inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0
[root@pc55 ~]# ip addr show | grep 192.168.4
inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0
inet 192.168.4.252/32 scope global eth0
客户端访问
# elinks --dump 192.168.4.252
192.168.4.52
# elinks --dump 192.168.4.252
192.168.4.51
# elinks --dump 192.168.4.252
192.168.4.52
# elinks --dump 192.168.4.252
192.168.4.51
# elinks --dump 192.168.4.252
192.168.4.52
# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 5 25 0 2075 0
-> 192.168.4.51:80 2 10 0 830 0
-> 192.168.4.52:80 3 15 0 1245 0
转载于:https://blog.51cto.com/13558754/2061009
RHEL6 搭建 keepalived + lvs/DR 集群的更多相关文章
- Keepalived+LVS+nginx搭建nginx高可用集群
1. 环境准备 1. VMware; 2. 4台CentOs7虚拟主机:192.168.122.248,192.168.122.68, 192.168.122.110, 192.168.122.167 ...
- 每秒处理3百万请求的Web集群搭建-用 LVS 搭建一个负载均衡集群
这篇文章是<打造3百万次请求/秒的高性能服务器集群>系列的第3部分,有关于性能测试工具以及优化WEB服务器部分的内容请参看以前的文章. 本文基于你已经优化好服务器以及网络协议栈的基础之上, ...
- 用 LVS 搭建一个负载均衡集群(转)
http://blog.jobbole.com/87503/ 第一篇:<如何生成每秒百万级别的 HTTP 请求?> 第二篇:<为最佳性能调优 Nginx> 第三篇:<用 ...
- Keepalived高可用集群应用
Keepalived高可用集群应用 1.keepalived服务说明 1.1.keepalived介绍 Keepalived是一个用C语言编写的路由软件.该项目的主要目标是为Linux系统和基于Lin ...
- Nginx+Keepalived高可用集群应用实践
Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...
- 使用Kubeadm搭建高可用Kubernetes集群
1.概述 Kubenetes集群的控制平面节点(即Master节点)由数据库服务(Etcd)+其他组件服务(Apiserver.Controller-manager.Scheduler...)组成. ...
- 亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...
- 亿级Web系统搭建——单机到分布式集群[转]
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...
- 【web】 亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架 ...
随机推荐
- 【Linux】网络应用
一. 网络基本配置 setup 永久网络设置 (IP 网关 DNS) vim /etc/sysconfig/network-scripts/ifcfg-eth0 (网卡信息文件) route -n 查 ...
- iOS岗位招聘标准水涨船高,五年iOS程序员表示面试太难了
人才济济的iOS开发者,你凭什么脱颖而出? 与岗位要求相去甚远,如何挑战极限? 想去心怡公司,如何马到成功? 那么,你的绝招是什么呢? 在这个iOS岗位供不应求的市场,对iOS开发者对要求日益增长,面 ...
- web.xml被文件加载过程,各节点加载顺序总结
web.xml被文件加载过程,各节点加载顺序总结 博客分类: J2EE WebXMLSpringServletBean 今天2010-3-11日,上班无事,想来将web.xml项目描述文件的加载过程 ...
- AJ学IOS(39)UI之核心动画之CABasicAnimation(基础动画)
AJ分享,必须精品 一.CABasicAnimation简介 CAPropertyAnimation的子类 属性解析: fromValue:keyPath相应属性的初始值 toValue:keyPat ...
- [总结]最近公共祖先(倍增求LCA)
目录 一.定义 二.LCA的实现流程 1. 预处理 2. 计算LCA 三.例题 例1:P3379 [模板]最近公共祖先(LCA) 四.树上差分 1. 边差分 2. 点差分 3. 例题 一.定义 给定一 ...
- 运输层--------运输层与网络层的关系、UDP、TCP
一.运输层与网络的区别: 网络层提供了主机之间的逻辑通信,而运输层为运行在不同主机上的进程之间提供了逻辑通信 二.实例证明: 考虑有两个家庭,一家位于美国东岸,一家位于美国西海岸,每家有12孩子.东海 ...
- yum 下载全量依赖 rpm 包及离线安装(终极解决方案)
目录 简介 验证环境 查看依赖包 方案一(推荐):repotrack 方案二:yumdownloader 方案三:yum 的 downloadonly 插件 离线安装 rpm 参考资料 简介 通常生产 ...
- python操作MySQL数据库报错问题解决
编写好Python操作数据库的脚本后,运行报错如下: 报错1:“AttributeError: 'NoneType' object has no attribute 'encoding'” 解决办法: ...
- 大佬整理出来的干货:LDA模型实现—Python文本挖掘
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...
- 阿里Canal框架数据库同步-实战教程
一.Canal简介: canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 二.背景介绍: ...