高可用群集HA介绍与LVS+keepalived高可用群集
一、Keepalived介绍
通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/
Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协议,是针对路由器一种备份解决方案,由多台路由器组成一个人热备组,通过共用的虚拟IP地址对外提供服务,每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务。

如图所示,Keepalived可实现多机热备,每个热备组可有多台服务器,最常用的就是双机热备,双机热备的故障切换时由虚拟IP地址的漂移来实现,适用于各种应用服务器。
二、配置举例
案例介绍:
本案例将实现基于Web服务的双机热备,漂移地址:192.168.10.72,主、备服务器:192.168.10.73、192.168.10.74,提供的应用服务:Web
(一)配置Keepalived服务器(主-从配置一样)
1、安装keepalived软件
[root@localhost ~]# yum -y install kernel-devel openssl-devel popt-devel #依赖包
[root@localhost ~]# tar -zxvf keepalived-1.2.13.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/keepalived-1.2.13/
[root@localhost keepalived-1.2.13]# ./configure --prefix=/ --with-kerneldir=/usr/src/kernels/2.6.32-431.el6.x86_64(指定内核位置)
[root@localhost keepalived-1.2.13]# make && make install
[root@localhost ~]# /etc/init.d/keepalived start
[root@localhost ~]# netstat -anp | grep keepalived
[root@localhost ~]# chkconfig --add keepalived
[root@localhost ~]# chkconfig keepalived on
2、主服务器配置
[root@localhost ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@localhost ~]# vim /etc/keepalived/keepalived.conf(和别的配置文件不同,它是以!作为注释标记)
修改:
global_defs {
router_id Web_HA1 !服务器名称
}
vrrp_instance VI_1 { !定义VRRP热备实例
state MASTER !热备状态,从服务器用slave
interface eth0 !承载vip的物理接口
virtual_router_id 51 !路由器的id号,同一个热备组里的id要一样
priority 100 !优先级,100是最高
advert_int 1 !心跳频率,就是几秒联系一下热备组的其他机器,没心跳了就挂掉了
authentication {
auth_type PASS !认证类型
auth_pass 1111 !密码是1111
}
virtual_ipaddress { !漂移ip地址(就是vip),可以有多个
192.168.10.72
}
}
注:配置文件中virtual_server段是配置director相关的参数,我们这个实验只考虑单一web服务,不需要配置,可以往下都删掉
[root@localhost ~]# service keepalived restart
[root@localhost ~]# ip add show dev eth0 #可以看到虚拟ip地址vip
3、从服务器配置
[root@localhost ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bak
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
修改:
global_defs {
router_id WEB_HA2
}
vrrp_instance VI_1 {
state BACKUP
priority 99
......
}
---其他参数与主服务器保持一致----
}
[root@localhost ~]# service keepalived restart
[root@localhost ~]# ip add show dev eth0 #从服务器没有虚拟ip地址
(二)验证:可以使用ping命令也可以使用web服务,当断掉主服务器的网络时,可以查看从服务器的虚拟ip,会发现从服务器有192.168.10.72这个漂移地址了
[root@localhost ~]# tail -f /var/log/messages #查看日志验证
三、LVS-DR+keepalived高可用群集

在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器。本案例将以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的LVS网站群集平台。
配置方法先配置LVS-DR群集,再配置keepalived双机热备。
在配置LVS时,主从调度器的虚拟ip要配置成网卡ip,而在keepalived配置文件中设置vip
[root@localhost ~]# ipvsadm -A -t 192.168.10.73:80 -s rr #添加虚拟director的vip地址,轮询的调度算法
[root@localhost ~]# ipvsadm -A -t 192.168.10.74:80 -s rr #添加虚拟director的vip地址,轮询的调度算法 virtual_ipaddress { !漂移ip地址(就是vip),可以有多个
192.168.10.72
在测试时,可通过主、从调度器的/var/log/messages 日志文件,可以跟踪故障切换过程,可执行ipvsadm -lnc等命令查看负载分配情况
四、LVS-NAT+keepalived高可用群集
由于nat模式director的VIP就是外网IP,因此主director宕机后,从director也能发出数据
一、配置LVS服务器(主-从两台)
1、配置IP
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
[root@localhost ~]# service network restart
2、调整响应参数(主-从配置一样)
[root@localhost ~]# vim /etc/sysctl.conf
修改:
net.ipv4.ip_forward = 1
添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
[root@localhost ~]# sysctl -p
3、安装并配置ipvsadm(主-从配置一样)
[root@localhost ~]# rpm -ihv /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
[root@localhost ~]# service ipvsadm start
[root@localhost ~]# chkconfig --add ipvsadm
[root@localhost ~]# chkconfig ipvsadm on 二、配置Keepalived服务器
4、安装keepalived软件(主-从配置一样)
[root@localhost ~]# yum -y install kernel-devel openssl-devel popt-devel
[root@localhost ~]# tar -zxvf keepalived-1.2.13.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/keepalived-1.2.13/
[root@localhost keepalived-1.2.13]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-
431.el6.x86_64
[root@localhost keepalived-1.2.13]# make && make install
[root@localhost ~]# /etc/init.d/keepalived start
[root@localhost ~]# netstat -anp | grep keepalived
[root@localhost ~]# chkconfig --add keepalived
[root@localhost ~]# chkconfig keepalived on
4.1、主服务器配置
[root@localhost ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bak
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
修改:
global_defs {
router_id LVS_DEVEL_R1
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.72
}
}
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.1
}
}
virtual_server 192.168.10.72 80 {
delay_loop 15
lb_algo rr
lb_kind NAT
protocol TCP
real_server 192.168.10.73 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 192.168.10.74 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
[root@localhost ~]# service keepalived restart
[root@localhost ~]# ip add show dev eth0
4.2、从服务器配置
[root@localhost ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bak
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
修改:
global_defs {
router_id LVS_DEVEL_R2
}
vrrp_instance VI_1 {
state BACKUP
priority 99
......
---其他参数与主服务器保持一致----
}
[root@localhost ~]# service keepalived restart
[root@localhost ~]# ip add show dev eth0 三、配置WEB节点服务器
1、配置IP地址
1)设置IP
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
2、配置http服务
WEB-1:
[root@localhost ~]# echo "welcome to 192.168.10.73 web server" > /var/www/html/index.html
[root@localhost ~]# service httpd restart
[root@localhost ~]# chkconfig --add httpd
[root@localhost ~]# chkconfig httpd on
WEB-2:
[root@localhost ~]# echo "welcome to 192.168.10.74 web server" > /var/www/html/index.html
[root@localhost ~]# service httpd restart
[root@localhost ~]# chkconfig --add httpd
[root@localhost ~]# chkconfig httpd on
三、验证:
一)使用ping命令
客户端:ping -t 192.168.10.72
断开主LVS的网卡,查看客户端的ping情况。
重启主LVS的网卡,查看客户端的ping情况。
二)客户端
1、访问:
http://192.168.10.72/
在主LVS上查看:
[root@localhost ~]# ipvsadm -Lnc
2、断开主LVS的网卡
客户端访问:http://192.168.10.72/
在主-从LVS上查看:
[root@localhost ~]# ipvsadm -Lnc
在主-从LVS上查看:
[root@localhost ~]# ip addr show dev eth0
3、重启主LVS的网卡
客户端访问:http://192.168.10.72/
在主-从LVS上查看:
[root@localhost ~]# ipvsadm -Lnc
在主-从LVS上查看:
[root@localhost ~]# ip addr show dev eth0
高可用群集HA介绍与LVS+keepalived高可用群集的更多相关文章
- LVS+Keepalived 高可用群集部署
LVS+Keepalived 高可用群集部署 1.LVS+Keepalived 高可用群集概述 2.LVS+Keepalived高可用群集部署 1.LVS+Keepalived 高可用群集概述: LV ...
- 1. lvs+keepalived 高可用群集
一. keepalived 工具介绍 1.专为lvs 和HA 设计的一款健康检查工具 2.支持故障自动切换 3.支持节点健康状态检查 二. keepalived 实现原理剖析 keepalived ...
- 22.LVS+Keepalived 高可用群集
LVS+Keepalived 高可用群集 目录 LVS+Keepalived 高可用群集 keepalived工具介绍 Keepalived实现原理剖析 VRRP(虚拟路由冗余协议) VRRP 相关术 ...
- LVS+Keepalived 高可用环境部署记录(主主和主从模式)
之前的文章介绍了LVS负载均衡-基础知识梳理, 下面记录下LVS+Keepalived高可用环境部署梳理(主主和主从模式)的操作流程: 一.LVS+Keepalived主从热备的高可用环境部署 1)环 ...
- LVS+Keepalived高可用负载均衡集群架构实验-01
一.为什么要使用负载均衡技术? 1.系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查, ...
- 测试LVS+Keepalived高可用负载均衡集群
测试LVS+Keepalived高可用负载均衡集群 1. 启动LVS高可用集群服务 此时查看Keepalived服务的系统日志信息如下: [root@localhost ~]# tail -f /va ...
- LVS+Keepalived高可用部署
一.LVS+Keepalived高可用部署 一.keepalived节点部署 1.安装keepalived yum install keepalived ipvsadm -y mkdir -p /op ...
- Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】
1.环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2 初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3 初始接管VIP:14 ...
- Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
随机推荐
- Selection II
[Selection II] 1.上.下.左.右键可以移动Selection 1个像素.按住Shift键,可以一次移动10个像素. 2.Add Selection模式的快捷键是Shift,Sub Se ...
- SQL优化的部分内容
为什么要优化: 随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能会有一些差异,这时我们 就需要做一个优化调整. 数据库优化这个课题较 ...
- react-native 生命周期
一.前言 问: 什么是组件的生命周期? 组件的生命周期中都包含哪些方法,各有什么作用? 生命周期的方法都在什么时候调用? 生命周期: 顾名思义,一个主体从出生到死亡的整个过程 学习组件(React的基 ...
- unity5-GI是什么?
GI是什么? GI =直接光照+间接光照+环境光+反射光.直接光照先不用说了,间接光照是光线在物体上反射所带来的光照. 核心参数: 每个光源上的Bounce Intensity.环境光可以直接理解为你 ...
- Shared Libraries with Eclipse on 86_64 (64 bits) systems[z]
If you followed my previous post http://linuxtortures.blogspot.com/2012/02/shared-libraries-with-ecl ...
- DevExress笔记
最近用DevExpress的WPF图表控件做柱形图看板,总结记录了一些笔记: 1.显示图例: <dxc:ChartControl.Legend> <dxc:Legend /> ...
- Python爬虫利器六之PyQuery的用法
前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...
- TF Boys (TensorFlow Boys ) 养成记(六): CIFAR10 Train 和 TensorBoard 简介
圣诞节玩的有点嗨,差点忘记更新.祝大家昨天圣诞节快乐,再过几天元旦节快乐. 来继续学习,在/home/your_name/TensorFlow/cifar10/ 下新建文件夹cifar10_train ...
- Converting HTML to PDF with pdfHTML
https://itextpdf.com/itext7/pdfHTML pdfHTML 的一个例子 一个基本的例子将显示使用 pdfHTML.为此, 我们将使用下面的 HTML 和 CSS. < ...
- SQLSERVER带端口号的链接方式
SQLSERVER带端口号的链接方式 <add key="BBAcnn" value="server=IP,端口号\实例名;database=TESTDB;uid= ...