lvs+keepalive构建高可用集群
- 在主机上使用动态路由协议(RIP、OSPF等)
- 在主机上配置静态路由
- 设置定时通告定时器;
- 用VRRP虚拟MAC地址响应路由器IP地址的ARP请求;
- 转发目的MAC是VRRP虚拟MAC的数据包;
- 如果是虚拟路由器IP的拥有者,将接受目的地址是虚拟路由器IP的数据包,否则丢弃;
- 当收到shutdown的事件时删除定时通告定时器,发送优先权级为0的通告包,转初始化状态;
- 如果定时通告定时器超时时,发送VRRP通告信息;
- 收到VRRP通告信息时,如果优先权为0,发送VRRP通告信息;否则判断数据的优先级是否高于本机,或相等而且实际IP地址大于本地实际IP,设置定时通告定时器,复位主机超时定时器,转BACKUP状态;否则的话,丢弃该通告包;
- 设置主机超时定时器;
- 不能响应针对虚拟路由器IP的ARP请求信息;
- 丢弃所有目的MAC地址是虚拟路由器MAC地址的数据包;
- 不接受目的是虚拟路由器IP的所有数据包;
- 当收到shutdown的事件时删除主机超时定时器,转初始化状态;
- 主机超时定时器超时的时候,发送VRRP通告信息,广播ARP地址信息,转MASTER状态;
- 收到VRRP通告信息时,如果优先权为0,表示进入MASTER选举;否则判断数据的优先级是否高于本机,如果高的话承认MASTER有效,复位主机超时定时器;否则的话,丢弃该通告包;
- CentOS Linux release 7.4.1708 (Core)
- ipvsadm-1.24
- keepalived.x86_64 0:1.2.7-3.el6
- httpd-2.4.6-67.el7.centos.6.x86_64

说明:
1.两台lvs间做keepalive高可用
2.两台web只简单安装Apache用于测试
实验清单
ip | 类型 |
192.168.128.169 | lvs_S |
192.168.128.171 | lvs_M |
192.168.128.172 | web_1 |
192.168.128.173 | web_2 |
一、更改主机名(每台机子)
echo "192.168.128.169 lvs_S" >>/etc/hosts
echo "192.168.128.171 lvs_M" >>/etc/hosts
echo "192.168.128.172 web_1" >>/etc/hosts
echo "192.168.128.173 web_2" >>/etc/hosts
二、时间同步
yum install -y ntp
/usr/sbin/ntpdate ntp6.aliyun.com
echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com &> /dev/null" > /tmp/crontab
crontab /tmp/crontab
三、master配置(lvs_M,lvs_S)
mkdir -p /usr/local/src/lvs/
cd /usr/local/src/lvs/
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
lsmod|grep ip_vs
uname -rm //查看内核版本
ln -s /usr/src/kernels/2.6.32-431.el6.i686/ /usr/src/linux //可能会显示多个内核,选上个命令查看的版本
tar xf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make && make install
ipvsadm //启动内核
lsmod |grep ip_vs
ifconfig eth0:0 192.168.128.180/24 up //设置vip为192.168.128.180
route add -host 192.168.128.180 dev eth1
ipvsadm –C //清空默认
ipvsadm --set 30 5 60 //设置超时
ipvsadm -A -t 192.168.128.180:80 -s wrr -p 20 // 添加虚拟服务
ipvsadm -L –n //查看服务
ipvsadm -a -t 192.168.128.180:80 -r 192.168.160.132:80 -g -w 1 //添加real server
ipvsadm -a -t 192.168.128.180:80 -r 192.168.160.135:80 -g -w 1
ipvsadm –d -t 192.168.128.180:80 -r 192.168.160.132:80 // 删除
脚本:
执行脚本结果:
四、realserver配置脚本(web_1,web_2)
lvs+keepalive构建高可用集群的更多相关文章
- Linux企业集群用商用硬件和免费软件构建高可用集群PDF
Linux企业集群:用商用硬件和免费软件构建高可用集群 目录: 译者序致谢前言绪论第一部分 集群资源 第1章 启动服务 第2章 处理数据包 第3章 编译内容 第二部分 高可用性 第4章 使用rsync ...
- 基于Keepalived实现LVS双主高可用集群
Reference: https://mp.weixin.qq.com/s?src=3×tamp=1512896424&ver=1&signature=L1C7us ...
- LVS+Keepalived实现高可用集群
LVS+Keepalived实现高可用集群来源: ChinaUnix博客 日期: 2009.07.21 14:49 (共有条评论) 我要评论 操作系统平台:CentOS5.2软件:LVS+keepal ...
- Apache httpd和JBoss构建高可用集群环境
1. 前言 集群是指把不同的服务器集中在一起,组成一个服务器集合,这个集合给客户端提供一个虚拟的平台,使客户端在不知道服务器集合结构的情况下对这一服务器集合进行部署应用.获取服务等操作.集群是企业应用 ...
- 构建高可用集群Keepalived+Haproxy负载均衡
重点概念vrrp_script中节点权重改变算法vrrp_script 里的script返回值为0时认为检测成功,其它值都会当成检测失败:weight 为正时,脚本检测成功时此weight会加到pri ...
- lvs + keepalived + httpd 高可用集群(转)
实验信息和拓扑:备注:Centos 6.5 selinux –disabled iptables off ServerName Ipaddress information LVSMaster 172. ...
- keepalived+nginx 高可用集群
一.什么是高可用? nginx做负载均衡,能达到分发请求的目的,但是不能很好的避免单点故障. 1.nginx集群单点问题 分发器宕机怎么处理? 假如nginx服务器挂掉了,那么所有的服务也会跟着瘫 ...
- MySQL8.0 MIC高可用集群搭建
mysql8.0带来的新特性,结合MySQLshell,不需要第三方中间件,自动构建高可用集群. mysql8.0作为一款新产品,其内置的mysq-innodb-cluster(MIC)高可用集群的技 ...
- 阿里云搭建k8s高可用集群(1.17.3)
首先准备5台centos7 ecs实例最低要求2c4G 开启SLB(私网) 这里我们采用堆叠拓扑的方式构建高可用集群,因为k8s 集群etcd采用了raft算法保证集群一致性,所以高可用必须保证至少3 ...
随机推荐
- ABP Zero 导航菜单之角色权限
本文的项目是官网生成,项目名称为XX,WEB为MVC,以Users权限模块为例解说文章. 1.定义PermissionNames PermissionNames是一个静态类,它在/XX.Core/Au ...
- Codeforces 888E Maximum Subsequence
原题传送门 E. Maximum Subsequence time limit per test 1 second memory limit per test 256 megabytes input ...
- 从浏览器多进程到JS单线程,JS运行机制的一次系统梳理
前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正. ----------超长文+多图预警,需要花费不少时间.---------- 如果看完本文后,还对进程线程傻傻分不清,不清楚浏 ...
- bzoj:1187: [HNOI2007]神奇游乐园
Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一个游乐场,专为旅途中疲惫的人设计. ...
- RabbitMQ 使用demo
1.新建一个控制台应用程序:如图 2.代码如下: using RabbitMQ.Client;using RabbitMQ.Client.Events;using System;using Syste ...
- UEP-树和表
Model Select:表格要展示的数据Tree DataSource:树的数据源数据源是自定义java类实现接口:ITreeRetriever创建根节点.判断子节点.创建子节点 --数据源 pac ...
- 你必须知道的session与cookie
Session本质 提到Session我们能联想到的就是用户登录功能,而本身我们使用Session的基础是通过url进行访问的,也就是使用http协议进行访问的,而http协议本身是无状态的,那么问题 ...
- in运算符(javascript)
in的用法,如x in y: 1.如果第二个运算数为对象,则in运算符用来检测第一个运算数是否是第二个运算数的属性名.是,返回true,否则返回false. 例: var obj = {x:1,y:2 ...
- Oracle_基本函数查询综合
Oracle_基本函数查询综合 --[1]查询出每各月倒数第三天受雇的所有员工 select; --[2]找出早于30年前受雇的员工 select>; select; select; ...
- myeclipse中git的使用
1.右键项目,team-->commit,勾选修改了的文件,点击commit(将更新提交到本地仓库)2.右键项目,team-->pull,合并本地仓库和远程服务器仓库,pull后有一些文件 ...