Centos6.8 搭建Lvs+Keepalived
Keepalived
keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。Keepalived是自动完成,不需人工干涉。
简介:
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
作用:
环境:
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.-220.13..el6.x86_64/ /usr/src/linux #设置软连接
[root@localhost /]#tar zxvf keepalived-1.2..tar.gz
[root@localhost /]#cd keepalived-1.2.
[root@localhost keepalived-1.2.]# ./configure --with-kernel-dir=/usr/src/kernels/2.6.-358.2..el6.x86_64/
执行完上条命令,看是否和下图红色框中一致
继续执行
4、编译
[root@localhost keepalived-1.2.]# make && make install [root@localhost keepalived-1.2.]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@localhost keepalived-1.2.]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-1.2.]# mkdir /etc/keepalived
[root@localhost keepalived-1.2.]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost keepalived-1.2.]# cp /usr/local/sbin/keepalived /usr/sbin/
5、The First:打开IP Forward功能,如不打开此功能下面的配置都无济于事
[root@localhost keepalived-1.2.]# vim /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, is disabled, is enabled. See sysctl() and
# sysctl.conf() for more details.
#
# Use '/sbin/sysctl -a' to list all possible parameters. # Controls IP packet forwarding net.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.]# 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 #连接smtp服务器超时的实际
router_id LVS_MASTER #路由ID两台机器不能相同。LVS2更改为不同
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
state MASTER #keepalived 的角色 MASTER 表示主服务器。LVS2更改为:BACKUP
interface eth0 #指定监测网卡
virtual_router_id #虚拟路由标示,相同实例,需相同标示。
priority #优先级 数字越大 优先级越高 MASTER的优先级高于BACKUP优先级(如master ,backup )
advert_int #设定主备之间检查时间 单位s
authentication { #设定验证类型和密码
auth_type PASS
auth_pass
}
virtual_ipaddress { #设定虚拟IP地址 可以设置多个 每行一个
192.168.126.100
}
}
#虚拟服务器部分
virtual_server 192.168.126.100 {
delay_loop #设定运行情况检查时间 单位s
lb_algo rr #负载调度算法 rr即轮叫算法
lb_kind DR #设置LVS负载机制 NAT TUN DR 三种模式可选
persistence_timeout #会话时间
#会话保持在某个服务节点
#用户在动态页面50s内没有任何动作,那么后面就会被分发到其他节点
#用户一直动作,不受50s限制
protocol TCP #使用协议
#以下为real_server部分
real_server 192.168.126.135 {
weight #服务节点权值,数字越大,权值越高
#权值的大小可以为不同性能的服务器分配不同的负载
#这样才能有效合理的利用服务器资源
TCP_CHECK { #状态检查部分
connect_timeout #3s无响应超时
nb_get_retry #重试次数
delay_before_retry #重试间隔
connect_port #连接端口
}
}
real_server 192.168.126.134 {
weight #服务节点权值,数字越大,权值越高
#权值的大小可以为不同性能的服务器分配不同的负载
#这样才能有效合理的利用服务器资源
TCP_CHECK { #状态检查部分
connect_timeout #3s无响应超时
nb_get_retry #重试次数
delay_before_retry #重试间隔
connect_port #连接端口
}
}
}
2、重启服务
[root@localhost keepalived-1.2.]# chkconfig keepalived on
[root@localhost keepalived-1.2.]# service keepalived start
3、查看进程
[root@localhost keepalived-1.2.]# ps aux | grep keepalived 结果如下
Keepalived正常运行时,共启动3个进程,其中一个进程是父进程,负责监控其子进程;一个是vrrp子进程;另外一个是checkers子进程。
如果此时只看到2个进程,请从安装keepalived的步骤重新执行。 root 0.0 0.1 ? Ss : : keepalived -D #进程1
root 0.1 0.2 ? S : : keepalived -D #进程2
root 0.2 0.1 ? S : : keepalived -D #进程3
root 0.0 0.0 pts/ S+ : : grep keepalived
4、查看虚拟IP(重要)
[root@localhost keepalived-1.2.]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::::3f brd ff:ff:ff:ff:ff:ff
inet 192.168.126.129/ brd 192.168.126.255 scope global eth0
inet 192.168.126.100/ brd 192.168.126.100 scope global eth0:0 #如果看到此条信息,说明虚拟IP已经自动配置上了
inet6 fe80::20c:29ff:fe27:223f/ 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.]# 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.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_BACKUP #BACKUP
} vrrp_instance VI_1 {
state BACKUP #BACKUP
interface eth1
virtual_router_id #此数值两边保持一致
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.126.100
}
} virtual_server 192.168.126.100 {
delay_loop
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout
protocol TCP real_server 192.168.126.135 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
}
} real_server 192.168.126.134 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
2、重启服务
[root@localhost keepalived-1.2.]# chkconfig keepalived on
[root@localhost keepalived-1.2.]# 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、一些命令行的执行,少一些参数执行就可能会有一些问题。
.
Centos6.8 搭建Lvs+Keepalived的更多相关文章
- centos6.5搭建LVS+Keepalived
1.配置LVS负载调度器 (1)为eth0配置IP地址,为eth0:0配置VIP地址. vi /etc/sysconfig/network-scripts/ifcfg-eth0 …… DEVICE=e ...
- 基于VMware的虚拟Linux集群搭建-lvs+keepalived
基于VMware的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvsserver的的双机热备和真实server之间的负载均衡.这方面的blog挺多,可是每一个 ...
- (转)CentOS7 搭建LVS+keepalived负载均衡(一)
原文:http://blog.csdn.net/u012852986/article/details/52386306 CentOS7 搭建LVS+keepalived负载均衡(一) CentOS7 ...
- 搭建LVS+Keepalived负载均衡集群
这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...
- CentOS7 搭建LVS+keepalived负载均衡
1.实验环境 4台节点 Keepalived1 + lvs1(Director1):192.168.31.4 Keepalived2 + lvs2(Director2):192.168.31.3 Re ...
- 【Linux运维】Centos7上借助ansible搭建LVS+Keepalived
安装ansible 安装ansible: [root@localhost ~]# /etc/hosts 192.168.19.129 web129.yanglt.com web129 192.168. ...
- linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡
最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...
- 快速搭建lvs + keepalived + nginx
环境: VIP 192.168.2.224 LVS 192.168.2.217 centos7 nginx1 192.168.2.231 c ...
- LVS+Keepalived搭建
LVS+Keepalived搭建 原理说明 (推荐): http://www.cnblogs.com/likehua/archive/2014/06/19/3796849.html http://ou ...
随机推荐
- HDU 2049 不容易系列之(4)——考新郎 (递推,含Cmn公式)
不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- webpack的安装个配置
webpack在node下运行,首先先安装node 安装在全局:npm install webpack -g 在任何目录都可以运行 安装在局部:npm init -y npm install webp ...
- 如何动态地给vSphere虚拟机模板注入信息
在做vSphere自动化安装过程中,遇到这样一个需求:将vCenter Server做成模板,在给用户自动化装好vSphere后, 下载vCenter Server模板并启动虚拟机,然后将vCente ...
- openwrt: firstboot
# cat /sbin/firstboot #!/bin/sh /sbin/jffs2reset jffs2reset 是fstools里的工具.做的工作有: 在/proc/mtd里找到名为" ...
- 笔记整理--LibCurl开发
LibCurl开发_未了的雨_百度空间 - Google Chrome (2013/7/26 21:11:15) LibCurl开发 一:LibCurl 编程流程1.调用curl_global_ini ...
- 2016/06/13 phpexcel 未完待续
①准备工作: 1,php版本不能太低 2,去官网下载PHPExcel插件 http://phpexcel.codeplex.com/ 3,解压后提取classes文件夹到工作目录,并重命名为PH ...
- zTree async 动态参数处理
async:{ enable: true,//开启异步机制 url: opts.url,//异步地址 otherParam: { 'plateNo': function(){ return $('# ...
- html 常用转译空格字符
本人有时候做表格强迫症,字段有的是3个字有的是4个字,也有两个字的,所有不对齐感觉看着难受, 因此需要用空格来让表头文字对齐,找到了下面几个常用的转译字符. 1. &160#;不断行的空白( ...
- iOS 在UILabel显示不同的字体和颜色(ios6 and later)
在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel 使用不同的颜色或不同的字体来体现字符串,在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的at ...
- (linux)自旋锁及其衍生锁
自旋锁 毫秒以下. 自旋锁用于多个CPU系统中,在单处理器系统中,自旋锁不起锁的作用,只是禁止或启用内核抢占.在自旋锁忙等待期间,内核抢占机制还是有效的,等待自旋锁释放的线程可能被更高优先级的线程 ...