keepalived实现高可用的负载均衡

keepalived

一.Keepalived的介绍

Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障,使多台节点安装keepalived。其他节点用来提供真实的服务,同样的,他们对外表现出一个虚拟IP。当主服务器宕机时,从服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

Keepalived主要由两大模块,VRRP static和checkers,实现HA集群中失败切换功能。Keepalived通过VRRP功能再结合LVS负载均衡即可部署一个高性能的负载均衡集群系统。Checkers主要实现对服务器运行的状态监测和故障隔离,其中ipvs和realserver健康状态检查通过配置文件就可以实现,而其他服务则需要编写脚本,然后通过keepalived文件调用。

Keepalived运行有3个守护进程。父进程主要负责读取配置文件初始化、监控2个子进程等;然后两个子进程,一个负责VRRP,另一个负责Cheackers健康检查。其中父进程监控模块为WacthDog,工作实现:每个子进程打开一个接受unix域套接字,父进程连接到那些unix域套接字并向子进程发送周期性(5s)hello包。

1

上图是Keepalived的功能体系结构,大致分两层:用户空间(user space)

和内核空间(kernel space)。

内核空间:主要包括IPVS(IP虚拟服务器,用于实现网络服务的负载均衡)

和NETLINK(提供高级路由及其他相关的网络功能)两个部份。

二.Keepalived的特性

1.配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能

2.稳定性强:keepalived是一个类似于layer3, 4 & 7交换机制的软件,具备我们平时说的第3层、第4层和第7层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。

3.成本低廉:开源软件,可直接下载配置使用,没有额外费用。

4.应用范围广:因为keepalived可应用在多个层面,所以它几乎可以对所有应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等等

5.支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择。

三.什么是VRRP

VRRP (Virtual Router Redundancy Protocol ,虚拟路由冗余协议)可以认为是实现路由器高可用的协议,简单的说,当一个路由器故障时可以由另一个备份路由器继续提供相同的服务。

VRRP 根据优先级来确定虚拟路由器中每台路由器的角色(Master 路由器或Backup 路由器)。VRRP 优先级的取值范围为0 到255 ( 数值越大表明优先级越高 ),可配置的范围是1 到254 ,优先级0 为系统保留给路由器放弃Master 位置时候使用,255 则是系统保留给IP 地址拥有者使用。优先级越高,则越有可能成为Master 路由器。当两台优先级相同的路由器同时竞争Master 时,比较接口IP

四.Keepalived软件介绍

Keepalived:

程序包:keepalived            #通过yum源安装

/etc/keepalived/keepalived.cong #主配置文件

/etc/sysconfig/keepalived #启动时的添加参数

/etc/rc.d/init.d/keepalived #启动脚本

/usr/sbin/keepalived #启动程序

五.实验

实验环境:主从服务器两台,两台实现LNMP的rs-server两台

主服务器:vip : 192.168.1.100

DIP:192.168.19.113

从服务器:VIP:192.168.1.100

DIP:192.168.19.114

Rs-server1:192.168.19.111

RS-server2:192.168.19.112

 

 

关闭selinux策略和防火墙,安装keepalived包,并且已经实现过DR

配置主服务器:

  1. vim /etc/keepalived/keepalived.cong

! Configuration File for keepalived

 

global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

state MASTER

interface ens37

virtual_router_id 76

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.100

}

}

 

virtual_server 192.168.1.100 80 {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

 

real_server 192.168.19.111 80 {

weight 1

HTTP_GET{

url {

path /

}

connect_timeout 3

delay_before_retry 3

 

}

}

 

real_server 192.168.19.112 80 {

weight 1

HTTP_GET{

url {

path /

}

  1. 配置从服务器

! Configuration File for keepalived

 

global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

state BACKUP

interface eth1

virtual_router_id 76

priority 80

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.100

}

}

 

virtual_server 192.168.1.100 80  {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

 

real_server 192.168.19.111 80 {

weight 1

HTTP_GET {

url {

path /

}

connect_timeout 3

delay_before_retry 3

}

}

real_server 192.168.19.111 80 {

weight 1

HTTP_GET {

url {

path /

}

connect_timeout 3

delay_before_retry 3

connect_timeout 3

 

}

}

3.systemctl   start  keepalived

4.查看ipvsadm

2

5.测试

3

 

6.将主服务器的keepalived停用,模拟宕机

 

4

7.查看VIP是否漂移

5

8.测试

3

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88391

赞 (1)
TouchTouch
上一篇 2017-11-13 21:16
下一篇 2017-11-13 21:53

相关推荐

  • 8.6正则表达式grep及其他文本处理命令练习

    正则表达式grep及其他文本处理命令练习 上课练习 1 1、centos 6找出ifconfig命令结果中本机的IPv4地址 [root@qzx ~]# ifconfig|head -n 2|tail -n 1|tr -s ' [:alpha:]'&…

    Linux干货 2016-08-07
  • 逻辑卷的创建与移除

    一、弹性控制磁盘大小的lvm:     假如有这样一个场景,在初始安装linux系统时给 /home分区设置了一定大小,但是过了一段时间后,你发现初始分配的大小远不能满足公司的扩大,员工增加,需要分配的账号的磁盘空间也变大,这时你应该怎么办?是挂载一块更大的硬盘,将原来的小硬盘拆除掉吗?其实在linux中有lvm可动态增大文件系…

    Linux干货 2016-08-30
  • Linux基础知识—Vim编辑器/crond周期性任务计划

    vim文本编辑 vim是vi文本编辑的增强版本,因其编辑功能强大、且支持各种语言开发环境关键字自动增亮功能,也可称为是开发工具。在Centos7/RHEL7开始,默认将vi定义成vim –color=auto,已经取代了vi的地位。下面总结下关于vim工具的使用 vim有三种模式,每个模式下有其特定的功能;我们可自由在三者之间切换使用: COMM…

    Linux干货 2016-11-01
  • 第三周:文本处理工具wc,cut,sort,uniq,tr,tee命令练习和用户及组相关命令练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可; [root@app1 tmp]# who | cut -d" " -f1| uniq root dts centos 2、取出最后登录到当前系统的用户的相关信息; [r…

    Linux干货 2016-09-27
  • 编程能力与编程年龄

    程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希…

    Linux干货 2016-08-15
  • 第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f1,7 roo…

    Linux干货 2017-01-07