搭建LVS+Keepalived高可用负载集群

搭建LVS+Keepalived高可用负载集群

最近,本屌接到公司的任务,公司新上20台服务器,需要搭建一整套架构来运行公司的业务,其中有应用服务器,认证服务器,数据库服务器等。服务器基础架构中的应用服务器集群要有高可用性,且需要负载均衡。当我接到这个任务的时候,脑子里第一个想法就是LVS+Keepalived。

由于公司资金有限,直接上硬件的负载均衡设备是不可能的了,所以只好使用软件来实现,LVS在负载均衡集群中无疑是一种很好的方案,使用LVS可以同时分发10台以下的设备,用在我们这个项目中是再合适不过的,而为了干掉LVS负载均衡集群中分发服务器这个单点故障,我又引入了Keepalived高可用技术。

LVS(Linux Virtual Server,Linux虚拟服务器)技术,由现任职淘宝的章文嵩博士创始,是一套开源的负载均衡软件,是中国国内最早出现的自由软件项目之一。

LVS架构由前端分发服务器,中间应用服务器,后端共享存储共同组成,分发服务器根绝其分发策略将用户请求分发到中间的应用服务器上,应用服务器根据LVS的模式来响应用户请求。LVS相关术语如下:

1、Director Server调度服务器,将负载分发到Real Server的服务器

2、Real Server:真实服务器,真正提供应用服务的服务器

3、VIP:虚拟IP地址,公布给用户访问的IP地址

4、RIP:真实IP地址,集群节点上使用的IP地址

5、DIP:Director连到Real Server的IP地址

LVS负载均衡方式:

NAT:通过网络地址转换实现的虚拟服务器,Director server将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server。

NAT模式下,所有请求全部要经过Director server的处理,所以,在并发量较大的时候,Director server就会成为系统的瓶颈。

DR:直接使用路由技术实现虚拟服务器,通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端。

TUN:通过隧道方式实现虚拟服务器,Director采用隧道技术将请求发至Real Server后,Real Server直接响应客户端。

为了避免系统瓶颈,所以采用DR方式来实现请求转发。

LVS提供了10种调度算法,这些算法决定了以什么方式来转发请求,常用的调度算法有4种:

轮询(Round Robin):将客户端请求平均分发到Real Server。

加权轮询(Weighted Round Robin):根据Real Server的性能设置权重,再进行轮询调度。

最少连接(Least Connections):根据Real Server的性能设置权重,再进行轮询调度。

加权最少连接( Weighted Least Connections ):根据Real Server的性能设置权重,再将网络请求调度到已建立的连接数最少的服务器上。

由于公司采购的服务器的配置完全相同,性能没有什么差异,所以在调度算法上采用RR轮询的方式。

为了避免负载均衡分发器单点故障,所以再多加一台备用分发器,一旦当前的分发服务器发生故障,则启用备用服务器,保证业务不中断。

使用keepalived技术,实现对分发器以及应用服务器的高可用,自动剔除故障服务器,自动转移lvs负载均衡分发服务器。当故障服务器回复后,keepalived服务会自动将恢复的服务器重新加入集群继续提供服务。

以下为服务器配置过程:

一、IP地址划分

LVS-Master:10.60.77.150

LVS-Backup:10.60.77.151

VIP:10.60.77.152(此为对外提供服务的地址,本文中以私有IP代替)

web1:10.60.77.153

web2:10.60.77.154(web服务器即为应用服务器,本文以两台为例)

二、在LVS分发服务器上安装软件(两台服务器上都要安装)

[[email protected]~]# yum -y install epel-release

[[email protected]~]# yum -y install ipvsadm keepalived

三、配置LVS-Master服务器

修改keepalived配置文件

[[email protected] ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {     //设置报警邮件

[email protected]

}

[email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS1    //设置router_id,此值在该网络中需要具有唯一性

}

vrrp_instance VI_1 {

state MASTER     //当前服务器设置为主服务器

interface eth0

virtual_router_id 51

priority 100     //优先级,主服务器应该在网络中最高

advert_int 1

authentication {

auth_type PASS  //设置认证方式

auth_pass password  //设置认证密码

}

virtual_ipaddress {     //设置VIP,掩码需要我们自己设置

10.60.77.152/24

}

}

virtual_server 10.60.77.152 80 {   //VIP监听的端口

delay_loop 6

lb_algo rr   //调度算法,此处为轮询方式

lb_kind DR   //LVS负载均衡方式,此处为DR模式

persistence_timeout 50

protocol TCP

real_server 10.60.77.15380 {     //指定real-server

weight 1     //指定该服务器的权重

TCP_CHECK {

connect_timeout3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 10.60.77.15480 {

weight 1

TCP_CHECK {

connect_timeout3

nb_get_retry 3

delay_before_retry 3

}

}

}

准备虚拟网卡配置文件

[[email protected] ~]# cd /etc/sysconfig/network-scripts/

[[email protected] ~]# cp ifcfg-eth0 ifcfg-eth0:0

[[email protected] ~]# vim ifcfg-eth0:0

DEVICE=eth0:0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

IPADDR=10.60.77.152

PREFIX=24

四、配置LVS-Backup服务器

修改keepalived配置文件,只需修改以下几条即可:

[[email protected] ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

[email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS2    //修改router_id

}

vrrp_instance VI_1 {

state BACKUP     //修改状态为BACKUP,该项配置必须为大写

interface eth0

virtual_router_id 51

priority 90      //修改优先级低于LVS-Master服务器

advert_int 1

authentication {

auth_type PASS      //此处配置必须与LVS-Master完全相同

auth_pass password

}

其余配置与LVS-Master完全相同

分别启动LVS-master和LVS-backup的keepalived服务

[[email protected] ~]# service keepalived start

[[email protected] ~]# chkconfig keepalived on

[[email protected] ~]# service keepalived start

[[email protected] ~]# chkconfig keepalived on

五、配置realserver(所有web服务器配置全部相同)

1、拒绝ARP响应

[[email protected] ~]# vim /etc/sysctl.conf

在该文件末尾添加如下四行配置:

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.lo.arp_ignore = 1

[[email protected] ~]# sysctl -p

2、准备虚拟回环接口配置文件

[[email protected] ~]# cd /etc/sysconfig/network-scripts/

[[email protected] network-scripts]# cp ifcfg-lo ifcfg-lo:0

[[email protected] network-scripts]# vim ifcfg-lo:0

DEVICE=lo:0

IPADDR=10.60.77.152

NETMASK=255.255.255.255

BROADCAST=10.60.77.152

ONBOOT=yes

[[email protected] network-scripts]# service network restart

六、测试

时间: 2024-11-06 20:24:19

搭建LVS+Keepalived高可用负载集群的相关文章

搭建LVS+keepalived高可用负载均衡集群

重点:各节点之间同步时间 netdate time.windows.com 1.关闭防火墙和SELinux    service iptables stop   setenforce 0 2.环境规划 3.配置  1)DR1     安装ipvsadm     yum -y install ipvsadm     安装keepalived  yum -y install keepalived     修改keepalived配置文件 vim /etc/keepalived/keepalived.

Keepalived+LVS实现web高可用负载集群

目标:基于LVS的DR模型实现keepalived高可用负载集群 拓扑图: 一.准备好DR模型的Real server1和Realserver2两个节点 1.此处我就用脚本来快速的部署这两个节点,脚本内容如下: #!/bin/bash vip=192.168.1.100 interface="lo:0" case $1 in               start)                   echo 1 > /proc/sys/net/ipv4/conf/all/ar

nginx结合keepalived做高可用负载集群服务

一.概述 前面几篇介绍了nginx做web网站以及https网站,反向代理,LVS的NAT与DR调度负载,但由于nginx本身负载是七层,需要套接字,即使基于upstream模块模拟成四层代理也是瓶颈,因此本文介绍nginx基于keepalived做高可用负载均衡集群服务,目标就是两台keepalived对nginx反向代理负载服务做检查与调度,做成双主模式,nginx负载调度后端的httpd网站,任何一台调度器(nginx或keepalived服务)故障,不影响业务;后端任何一台web故障也不

(2)LVS+Keepalived高可用负载均衡架构原理及配置

1.keepalived 介绍2.keepalived 优缺点3.keepalived 应用场景4.keepalived 安装配置5.keepalived+lvs 高可用6.keepalived+nginx 高可用7.keepalived 切换原理8.性能优化9.常见故障 一.keepalived 介绍 1.keepalived 定义keepalived是一个基于VRRP(virtual route redundent protocol)协议来实现的LVS服务高可用方案,可以利用其来避免单点故障

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.17.64.14 真实web服务器IP:14.17.64.4-12 实现效果:去往14.17.64.13或14的报文,转发给14.17.64.4-12中的一台服务器处理,实现负载均衡. 要求1:当一台真实web服务器故障后,自动把该IP从负载均衡中踢除,恢复后自动加入集群. 要求2:当一台LVS服

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.17.64.14 真实web服务器IP:14.17.64.4-12 实现效果:去往14.17.64.13或14的报文,转发给14.17.64.4-12中的一台服务器处理,实现负载均衡. 要求1:当一台真实web服务器故障后,自动把该IP从负载均衡中踢除,恢复后自动加入集群. 要求2:当一台LVS服

lvs+keepalived 高可用负载均衡模式分析

1. 前言 在<keepalived 双机热备>这篇文章中,我写了利用keepalived 这个开源软件实现高可用的功能,以及keepalived 高可用所使用的协议--利用vrrp 协议,在高可用网络组内广播自己的优先级,优先级最高的就能抢占vip资源,充当MASTER 主机,提供服务.在今天这篇文章,我们来看看lvs 如何与keepalived 的高可用功能结合,实现对负载均衡调度器的高可用. 经过<lvs_nat 负载均衡模式及抓包分析> 和<lvs_dr 负载均衡模式

Centos 7搭建LVS+Keepalived高可用Web服务群集

一.LVS+Keepalived高可用群集 Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器.管理服务器池,而不仅仅用作双机热备.使用Keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性:对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,三台以上的节点服务器.此博客将以DR模式的

lvs+keepalived高可用负载均衡集群双主实现

项目说明 1.         使用LVS负载均衡用户请求到后端web服务器,并且实现健康状态检查 2.         使用keepalived高可用LVS,避免LVS单点故障 3.         集群中分别在LK-01和LK-02运行一个VIP地址,实现LVS双主 4.         用户通过DNS轮训的方式实现访问集群的负载均衡(不演示) 环境拓扑 环境介绍 IP地址 功能描述 LK-01 172.16.4.100 调度用户请求到后端web服务器,并且和LK-02互为备份 LK-02