Keepalived

  keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。Keepalived是自动完成,不需人工干涉。

简介:

  Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

作用:

主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。
高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选 可不选)

环境:

Keepalived-Master:Centos6.8   192.168.126.129

Keepalived-Slave:  Centos6.8   192.168.126.136

Web-Server:Centos6.8    192.168.126.135

Web-Server:Centos6.8    192.168.126.134

事先已经搭建好Lvs,如果是全新环境,请参考:配置Lvs

1、安装编译环境、关闭防火墙

[root@localhost /]# service iptables stop
[root@localhost /]#yum -y install openssl-devel kernel-devel make gcc openssl-devel libnl* popt*

2、下载安装包

[root@localhost /]#wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
[root@localhost /]#http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm[root@localhost /]#yum -y install popt-static-1.13-7.el6.x86_64.rpm

3、解压安装Keepalived

[root@localhost /]#ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux  #设置软连接
[root@localhost /]#tar zxvf keepalived-1.2.7.tar.gz
[root@localhost /]#cd keepalived-1.2.7
[root@localhost keepalived-1.2.7]# ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/

执行完上条命令,看是否和下图红色框中一致

继续执行

4、编译

[root@localhost keepalived-1.2.7]# make && make install[root@localhost keepalived-1.2.7]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@localhost keepalived-1.2.7]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-1.2.7]# mkdir /etc/keepalived
[root@localhost keepalived-1.2.7]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost keepalived-1.2.7]# cp /usr/local/sbin/keepalived /usr/sbin/

5、The First:打开IP Forward功能,如不打开此功能下面的配置都无济于事

[root@localhost keepalived-1.2.7]# vim /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
#
# Use '/sbin/sysctl -a' to list all possible parameters.# Controls IP packet forwardingnet.ipv4.ip_forward = 1      #此处原本是0,一定要修改为1,一定要为1.
[root@localhost keepalived-1.2.7]# sysctl -p   #使配置立即生效

以上配置,需要在Master和Slave进行配置,以下配置请看清楚Master和Slave服务器

Master服务器进行Keepalived配置  -  Keepalived-Master

1、修改Keepalived配置

[root@localhost keepalived-1.2.7]# vim /etc/keepalived/keepalived.conf
具体的参数详情请参考:http://zhumeng8337797.blog.163.com/blog/static/100768914201191762253640/
下面是我配置好的文件内容
(可以删除原先的配置,把下面的配置进行修改然后粘贴进去,邮箱我这边没有配置,如果你有需求可以进行配置)
global_defs {notification_email {willam@cn.accommate.com   #设置报警邮件单个或多个地址}notification_email_from server@laiwojia.la #邮件的发送地址smtp_server 192.168.138.10 #smtp 地址smtp_connect_timeout 30 #连接smtp服务器超时的实际router_id LVS_MASTER  #路由ID两台机器不能相同。LVS2更改为不同
}
#vrrp 实例定义部分
vrrp_instance VI_1 {state MASTER  #keepalived 的角色 MASTER 表示主服务器。LVS2更改为:BACKUPinterface eth0 #指定监测网卡virtual_router_id 51 #虚拟路由标示,相同实例,需相同标示。priority 150 #优先级 数字越大 优先级越高 MASTER的优先级高于BACKUP优先级(如master 150,backup 100)advert_int 1 #设定主备之间检查时间 单位sauthentication {  #设定验证类型和密码auth_type PASSauth_pass 1111}virtual_ipaddress { #设定虚拟IP地址 可以设置多个 每行一个192.168.126.100}
}
#虚拟服务器部分
virtual_server 192.168.126.100 80 {delay_loop 6 #设定运行情况检查时间 单位slb_algo rr #负载调度算法 rr即轮叫算法lb_kind DR #设置LVS负载机制 NAT TUN DR 三种模式可选persistence_timeout 0  #会话时间#会话保持在某个服务节点#用户在动态页面50s内没有任何动作,那么后面就会被分发到其他节点#用户一直动作,不受50s限制protocol TCP  #使用协议#以下为real_server部分real_server 192.168.126.135 80 {weight 1  #服务节点权值,数字越大,权值越高#权值的大小可以为不同性能的服务器分配不同的负载#这样才能有效合理的利用服务器资源TCP_CHECK {  #状态检查部分connect_timeout 3 #3s无响应超时nb_get_retry 3  #重试次数delay_before_retry 3   #重试间隔connect_port 80 #连接端口}}real_server 192.168.126.134 80 {weight 1  #服务节点权值,数字越大,权值越高#权值的大小可以为不同性能的服务器分配不同的负载#这样才能有效合理的利用服务器资源TCP_CHECK {  #状态检查部分connect_timeout 3 #3s无响应超时nb_get_retry 3  #重试次数delay_before_retry 3   #重试间隔connect_port 80 #连接端口}}
}

2、重启服务

[root@localhost keepalived-1.2.7]# chkconfig keepalived on
[root@localhost keepalived-1.2.7]# service keepalived start

3、查看进程

[root@localhost keepalived-1.2.7]# ps aux | grep keepalived结果如下
Keepalived正常运行时,共启动3个进程,其中一个进程是父进程,负责监控其子进程;一个是vrrp子进程;另外一个是checkers子进程。
如果此时只看到2个进程,请从安装keepalived的步骤重新执行。root       5082  0.0  0.1  42172  1008 ?        Ss   07:02   0:00 keepalived -D   #进程1
root       5084  0.1  0.2  44400  2312 ?        S    07:02   0:00 keepalived -D   #进程2
root       5085  0.2  0.1  44276  1640 ?        S    07:02   0:00 keepalived -D   #进程3
root       5087  0.0  0.0 103324   892 pts/2    S+   07:03   0:00 grep keepalived

4、查看虚拟IP(重要)

[root@localhost keepalived-1.2.7]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:27:22:3f brd ff:ff:ff:ff:ff:ffinet 192.168.126.129/24 brd 192.168.126.255 scope global eth0inet 192.168.126.100/32 brd 192.168.126.100 scope global eth0:0     #如果看到此条信息,说明虚拟IP已经自动配置上了inet6 fe80::20c:29ff:fe27:223f/64 scope link valid_lft forever preferred_lft forever

还有3个命令在先列示下,并不用执行

显示集群中服务器ip信息:ipvsadm -ln

查看日志:tail -f /var/log/messages

查看请求转发情况:ipvsadm -lcn | grep 虚拟IP

至此,Keepalived_MASTER服务器已经配置好并启动了

------------------------------------------------------------------------------------------------

Slave服务器进行Keepalived配置  -  Keepalived-Slave

1、修改Keepalived配置文件

[root@localhost keepalived-1.2.7]# vim /etc/keepalived/keepalived.conf (注:相比keepalived-master,只有三处不同global_defs中的router_id、vrrp_instance中的state、priority
(注意keepAlived的配置文件中有一个网卡设备,虚拟机的网卡设备可能是不一样的,有的是eth0,有的是eth1,所以也是要改动的,否则从服务器的服务器很有可能服务不正常)
)! Configuration File for keepalived
global_defs {notification_email {willam@cn.accommate.com}notification_email_from admin@test.comsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_BACKUP     #BACKUP
}vrrp_instance VI_1 {state BACKUP    #BACKUPinterface eth1virtual_router_id 51   #此数值两边保持一致priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.126.100}
}virtual_server 192.168.126.100 80 {delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0persistence_timeout 50protocol TCPreal_server 192.168.126.135 80 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.126.134 80 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

2、重启服务

[root@localhost keepalived-1.2.7]# chkconfig keepalived on
[root@localhost keepalived-1.2.7]# service keepalived start

测试LVS层

1、执行ip a主服务器

LVS_Master中的IP信息

LVS_Backup中的IP信息

现在停掉LVS_Master的Keepalived服务,看看LVS_Backup中是否可以自动家长虚拟IP地址,并且转发请求

LVS_Master

LVS_Backup:

切换成功,访问网页:http://192.168.126.100 看看是否能正常显示

测试WEB服务器,断掉web2访问网页

断掉web1开启web2访问网页

经过不断的测试,终于完成了,望大家能够指正。还有一点就是很多时候都是配置文件中的一些小毛病造成的,比如:

1、keepAlived中的通知邮箱好像必须要写,否则不正确;

2、keepAlived中的网卡设备要注意,按照服务器的实际情况填写;

3、使用时,必要的端口要打开,或者关掉防火墙。否则有事不提供服务;

4、一些命令行的执行,少一些参数执行就可能会有一些问题。

.

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan

转载于:https://www.cnblogs.com/willamwang/p/8086660.html

Centos6.8 搭建Lvs+Keepalived相关推荐

  1. Mac内CentOS7虚拟机搭建lvs+keepalived+nginx双机主从热备

    Mac内CentOS7虚拟机搭建lvs+keepalived+nginx双机主从热备 [目前列出操作大纲,后续复习完善详细配置内容] MAC:00:50:56:38:3D:80 2核4G,硬盘20G ...

  2. lvs服务器需要开启web服务么_Centos7搭建LVS+Keepalived高可用Web

    LVS + Keepalived 高可用集群 Keepalived的设计目标是构建高可用的LVS负载均衡的集群,可以调用ipvsadm工具创建虚拟机,不仅仅用作双机热备,还可以使用keepalived ...

  3. 实践 | Centos 7搭建LVS+Keepalived高可用Web服务群集群

    LVS + Keepalived 高可用集群 Keepalived的设计目标是构建高可用的LVS负载均衡的集群,可以调用ipvsadm工具创建虚拟机,不仅仅用作双机热备,还可以使用keepalived ...

  4. linux cenos7搭建lvs,CentOS7 搭建LVS+keepalived负载均衡

    本文中只涉及一台负载均衡服务器,和两台真实服务器,主要是初步体验负载均衡:实际的环境中,lvs和keepalived一起用才是黄金搭档,下篇将继续讲述lvs+keepalived的搭建过程 一.本次搭 ...

  5. 【Linux运维】Centos7上借助ansible搭建LVS+Keepalived

    安装ansible 安装ansible: [root@localhost ~]# tail -5 /etc/hosts 192.168.19.129 web129.yanglt.com web129 ...

  6. 华为云搭建lvs+keepalived+nginx(apache)

    一.问题 (1)先部署lvs 原因:在先部署web时,路由添加因为虚拟IP绑定在web上,所以路由到达地址为本地或者另一个虚拟机上. 二.配置过程 (1)LVS-DR模式搭建 1.先配置LVS < ...

  7. centos6.4下LVS+keepalived的高可用(LVS/DR模式)

    LVS负载均衡机制: LVS工作在网络层.相对于其它负载均衡的解决办法,比如DNS域名轮流解析.应用层负载的调度.客户端的调度等,它的效率是非常高的.LVS的通过控制IP来实现负载均衡.IPVS是其具 ...

  8. LVS+Keepalived 高可用群集的介绍和搭建步骤

    文章目录 一.LVS+Keepalived 高可用群集 1.1 工作原理 1.2 Keepalived实现原理剖析 1.3 VRRP (虚拟路由冗余协议) 二.LVS+Keepalived 高可用群集 ...

  9. LVS + Keepalived 实现高可用负载均衡

    前言 本文以DR模式来进行实验! 首先这次研究这个LVS的前景,是因为公司要给客户的Master服务器做一个虚拟IP来提供访问,是在一个局域网下.想通过虚拟IP访问正式的环境,通过Master本身的I ...

最新文章

  1. java命令行生成jar_命令行生成可执行的jar包
  2. 手把手教你做关键词匹配项目(搜索引擎)---- 第九天
  3. html支持的语音文件格式,html5中如何设置audio支持音频格式
  4. Python协程--迭代器
  5. FreeBSD的功能特点
  6. c++ 之 关键字--explicit
  7. 2015蓝桥杯C++A:饮料换购
  8. Spring ——《第一章》Spring的基本应用
  9. NGN学习笔记6——NGN的业务提供技术
  10. java播放加密后的wav文件,使用Java实时同时播放WAV文件
  11. 龙芯2f笔记本安装debian错误--bzcat
  12. MICCAI 2022 | 深圳大学医学部智能超声实验室6篇论文分享!
  13. 统计学中的quartile
  14. 亚马逊服务器EC2无法ping通的问题
  15. 打散线条lisp_cad细线模式(cad中宽线炸开后变成细线是怎么回事)
  16. c#实现批量坐标方位角计算
  17. ETL对文件数据进行处理,进入到数据仓库
  18. MySQL DELETE 操作后没有释放磁盘空间
  19. matlab角频率怎么表示,[Matlab]频率f,角频率Ω和数字频率w的物理含义
  20. OpenFire源码学习之二十九:openfire集群配置

热门文章

  1. mysql链接丢失_mysql 连接丢失错误解决(转载)
  2. 状态栏和navigationbar 关联上,结构体总是通过被复制的方式在代码中传递,因此请不要使用引用计数。...
  3. allegro中焊盘的设置
  4. Python学习笔记之类(二)
  5. Tomcat 服务器介绍和使用
  6. 爬虫python代码网易云_python-网易云简单爬虫
  7. ES5(二)——替换this 之call()、apply()和bind()
  8. Java通过引用操作对象的“共享”特性
  9. java线程wait()使一个线程一直运行,一直提供服务
  10. Dw序号列表如何通过html语言加,使用DW软件实现html编码转换的详细步骤