keepalived高可用群集与lvs群集结合搭建
keepalived双机热备
1:keepalived双机热备,主要是用来提供故障切换,和对节点服务器的健康检查。当故障主机回复之后加入群集
2:keepalived是基于vrrp协议的方式进行热备方式,除了一个主服务器之外可以有多个从服务器,而且每一台从服务器的优先级等级各不相同。
3:工作的时候只有主服务器在工作其他服务器处于冗余状态,只要主服务器一旦发生宕机,从服务器,优先级最高的将接任主服务器的位置,以此类推。当主服务器故障排除之后,将重新夺得控制权
VIP 地址为192.168.1.254
主调度器 从调度器 web1服务器 web2服务器 nfs服务器
192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5
keepalived的安装与服务控制
在编译安装keepalived之前首先解决安装内核的开发包kernel-devel、openssl-devel、popt-devel以及ipvsadm等支持库,当然ipvsadm是在后续的lvs群集中使用
1)安装支持软件
#yum -y install kernel-devel openssl-devel popt-devel
#yum -y install ipvsadm
2)编译安装keepalived
#tar zxf /mnt/keepalived-1.2.13.tar.gz -C /usr/src
# cd /usr/src/keepalived-1.2.13/
[root@centos1keepalived-1.2.13]#./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ 安装到“/”目录和指定内核路径
#make && make install
3)使用keepalived服务
#chkconfig --add keepalived
#chkconfig keepalived on
2.主服务器的配置
#cd /etc/keepalived
#cp keepalived.conf keepalived.conf.back
#vim keepalived.conf
global_defs {
router_id LVS_HA_R1 //主调度器的名称
}
vrrp_instance VI_1 { //定义VRRP热备实例
state MASTER //主调度器的热备状态
interface eth0 //承载VIP地址的物理接口
virtual_router_id 1 //虚拟路由器的ID号,每个热备组保持一致
priority 100 //优先级,数值越大优先级越高
advert_int 1 //通告间隔秒数(心跳频率)
authentication { //认证信息,每个热备组保持一致
auth_type PASS //认证类型
auth_pass 123456 //密码字串
}
virtual_ipaddress {
192.168.1.254 //指定漂移地址(vip),可以多个
}
}
3.启动keepalived服务
#service keepalived start
4.备用服务器的配置
1)路由器的名称和优先级不同,其他都一样
5.测试双击热备功能
1)查看ip地址,发现在主服务器上出现VIP
[root@centos1 keepalived]# ip add show dev eth0 或者 ip a
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.254/32 scope global eth0 //自动设置的VIP地址
从服务器的vip查看
1)ping测试。在客户机上ping -t 192.168.1.254,然后禁用主服务器eth0网卡,发现中断了1或2个包即恢复正常,说明,其他服务器已经接替了VIP的地址
2)访问web,主服务器正常的情况下,看到是主服务器的网页,主服务器down掉后就是从服务器的内容,主服务器恢复后看到的还是主服务器的内容
3)查看/var/log/messages日志
从服务器查看将看到:VRRP_Instance(VI_1) Entering BACKUP STATE
主服务器查看将看到:VRRP_Instance(VI_1) Entering MASTER STATE
二、LVS+keepalived高可用群集
1.配置主调度器(lvs负载调度器这一部分可以省略了,完全由keepalived配置完成)
1)全局配置,热备配置(此部分略,保留之前的配置就可以了)
#vim /etc/keepalived/keepalived.conf
2)web服务器池的配置
#vim /etc/keepalived/keepalived.conf
virtual_server 192.168.1.254 80 {//虚拟服务器地址(vip)、端口
delay_loop 6//健康检查的间隔时间(秒)
lb_algo rr//轮询(rr)调度算法
lb_kind DR//直接路由(DR)群集工作模式
! persistence 60//连接保持时间(秒),若启用请去掉!号
protocol TCP//应用服务采用的是tcp协议
real_server 192.168.1.3 80 {//第一个web节点的地址和端口
wright 1//节点的权重
TCP_CHECK {//健康检查方式(手工添加)
connect_port 80 //检查的目标端口
connect_timeout 3 //连接超时(秒)
nb_get_retry 3 //重试次数
delay_before_retry 4 //重试间隔(秒)
}
}
rel_server 192.168.1.4 80 { //第二个web节点的地址和端口
........
}
3)重启keepalived服务
#service keepalived restart
2.配置从调度器(同主服务器,只需将web服务器池的配置添到/etc/keepalived/keepalived.conf中即可)
3.配置web节点服务器(这部分和lvs的DR模式一样了)
(1)配置虚拟ip地址
#cd /etc/sysconfig/network-scripts/
#cp ifcfg-lo ifcfg-lo:0
#vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.1.254
NETMASK=255.255.255.255
ONBOOT=yes
#ifup lo:0
(2)为本机添加一条路由,将访问vip的数据波限制在本地
#route add -host 192.168.2.254 dev lo:0
(3)调整/proc响应参数
#vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
#sysctl -p 重启 /etc/sysctl.conf 配置文件
另一台web服务器相同的配置
4.测试LVS+keepalived高可用群集+lvs
在客户机上访问web
http://192.168.1.254
①首先验证lvs,多次刷新页面认真观察
②再将主服务器的eth0网卡down掉,看看还能不能访问
查看是否可以访问的到节点服务器网页内容
5:将nfs共享存储服务器的内容都挂载到web服务器中,保证服务对外的统一性
首先对nfs的web网页进行编辑
然后在/etc/exports文件中设置共享资源,另外为root用户分配权限控制
之后重新启动nfs服务和rpcbind两个服务
通过客户端网页进行测试
说明调度器的HA群集是成功的
补充内容:启用邮件通知功能,以便及时了解各web节点的健康状况
1.修改主配置文件
global_defs {
router_id LVS_HA_R1
notification_email {
root
}
notification_email_from root root
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_HA_R1
}
2.然后,重启keepalived服务
#service keepalived restart
3.查看邮件,down掉web2
#tail /var/spool/mail/root
[root@centos1 ~]# tail /var/spool/mail/root
Date: Sun, 16 Apr 2017 09:32:45 +0000
From: root@centos1.benet.com
Subject: [LVS_HA_R1] Realserver [192.168.2.4]:80 - DOWN
X-Mailer: Keepalived
To: root@centos1.benet.com
Message-Id: <20170416093245.D1C882009FF@centos1.benet.com>
=> TCP CHECK failed on service <=

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
海量数据处理算法
1. Bloom Filter 【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,有一定的概率判断错误。因此,Bloom Filter不适合那些“零错误”的应用场合。 而在能容忍低错误率的应用场合下,Bloom Filter比其他常见的算法(如hash,折半查找)极大节省了空间。 Bloom Filter的详细介绍:海量数据处理之Bloom Filter详解 【适用范围】可以用来实现数据字典,进行数据的判重,或者集合求交集 【基本原理及要点】 原理要点:一是位数组, 而是k个独立hash函数。 1)位数组: 假设Bloom Filter使用一个m比特的数组来保存信息,初始状态时,Bloom Filter是一个包含m位的位数组,每一位都置为0,即BF整个数组的元素都设置为0。 2)k...
- 下一篇
程序包管理rpm,yum用法解析及自动化部署apache server实战,让您轻松拥有apache网站!
= 程序包管理器rpm,yum用法及apache httpd服务的自动化部署 程序包管理? 通常来说在windows中将需要安装的程序,程序名.exe下载下来然后点击setup的安装程序或直接点击程序包,下一步下一步即可.而Linux中程序包不是exe,不同的主流发行版有着不同的程序包管理机制.比较主流的主要是rpm程序包管理器和deb程序包管理. 这里要区别: 包名(PACKAGEFILE): rpm包程序文件的全名程序名(PACKAGENAME): rpm包不带版本号的程序名,比如QQ而不是QQ-8.0.1.exe 现在先了解一下rpm的管理命令是如何"双击"安装卸载管理rpm包的? rpm:RPM Package Manager -q<程序名>查看程序是否安装,一般配合其他选项来查询 -p<包名>一般用于查看未安装程序的信息,配合其他选项使用可用于预览程序 -V<包名>验证包的来源及安全性 -K验证数字签名(没有检测工具,默认notok) -v显示详细信息 -vv显示的更为详细 -U|-F升级程序包,会删除旧程序包(慎用) -R检查包依赖关系...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Mario游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池