18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集

发布时间:2024-03-04 点击:108
18.1 集群介绍
linux集群概述
根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 //通常对于大企业来说。可用程度达到99.99%%u6216者 是5个9 实现高可用的开源软件有:heartbeat、keepalived //centos6 bug 多,而且很久没有更新了,不建议继续使用 ;keepalived不仅有高可用还有负载均衡 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 实现负载均衡的开源软件有lvs、keepalived、haproxy、nginx,商业的有f5、netscaler 18.2 keepalived介绍
keepalived介绍
在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果
heartbeat 切换的时候会不是很及时
keepalived通过vrrp(virtual router redundancy protocl 中文为:虚拟路由器冗余协议)来实现高可用。
虚拟路由冗余协议(virtual router redundancy protocol,简称vrrp)是由ietf提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的rfc2338协议标准。vrrp广泛应用在边缘网络中,它的设计目标是支持特定情况下ip数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和n(n>=1)个backup角色。 master会通过组播的形式向各个backup发送vrrp协议的数据包,当backup收不到master发来的vrrp数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。 keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现vrrp协议的。 18.3/18.4/18.5 用keepalived配置高可用集
搭建高可用的前提,是先要有一个工具,然后需要有一个服务去让工具实现高可用,这个实验,就是让nginx作为一个服务,让它成为一个高可用的对象;因为nginx在企业里使用量比较大,所以就使用他来做服务对象
环境准备
master :192.168.133.131 (已经做过lnmp)
backup:192.168.133.130 (lamp,没有nginx服务)
两台机器都安装keepalived
执行yum install -y keepalived
为了方便做实验
检查两台机器的selinux,iptables两个防火墙情况,selinux需要关闭,iptables需要关闭firewalld
对backup机器安装nginx服务
yum install -y nginx master机器配置
服务工具准备好以后,就配置keepalived 默认的配置文件路径在
/etc/keepalived/keepalived.conf
global_defs { notification_email { //邮件 aming@aminglinux.com } notification_email_from root@aminglinux.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id lvs_devel } vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh" //检查服务是否正常,通过脚本实现,检查服务健康状态 interval 3 //检查时间 } vrrp_instance vi_1 { state master //定义master相关 interface ens33 //通过那个网站使用vrrp协议,配置时,需注意你的网卡配置文件是否是哪个。因为系统ens并不是固定的。 virtual_router_id 51 //定义路由器id ,配置的时候和从机器一致 priority 100 //权重, advert_int 1 authentication { //认证相关信息 auth_type pass auth_pass aminglinux>com } virtual_ipaddress { //定义一个公有ip(vip) 192.168.188.100 //更改为192.168.133.100 } track_script { chk_nginx } }
virtual_ipaddress:简称vip,这个vip,两台机器,一个主,一个从,正常的情况是主在服务,主宕掉了,从起来了,从启动服务,从启动nginx以后,,启动以后,访问那个ip呢?把域名解析到那个ip上呢?假如解析到主上,主宕掉了,所以这个,需要定义一个公有ip(主上用的ip,从上也用的ip);这个ip是随时可以换掉,去配置的
定义一个check的脚本
#!/bin/bash #时间变量,用于记录日志 d=`date –date today %y%m%d_%h:%m:%s` #计算nginx进程数量 n=`ps -c nginx –no-heading|wc -l` #如果进程为0,则启动nginx,并且再次检测nginx进程数量, #如果还为0,说明nginx无法启动,此时需要关闭keepalived if [ $n -eq "0" ]; then /etc/init.d/nginx start n2=`ps -c nginx –no-heading|wc -l` if [ $n2 -eq "0" ]; then echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalived //停止keepalived,涉及到一个“脑裂”知识 fi fi “脑裂” 在高可用(ha)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的ha系统,就分裂成为2个独立的个体。 由于相互失去了联系,都以为是对方出了故障。两个节点上的ha软件像“裂脑人”一样,争抢“共享资源”、争起“应用服务”,就会发生严重——或者共享资源被瓜分、2边“服务”都起不来了;或者2边“服务”都起来了,但同时读写“共享存储”,导致数据损坏
脚本创建完以后还要调整权限;如果不调整权限的话,文件就没有办法自动加载
启动keepalived
systemctl start keepalived
检查服务启动状态
[root@aminglinux-02 bin]# ps aux |grep keepalived root 2552 0.0 0.0 111708 1308 ? ss 12:34 0:00 /usr/sbin/keepalived -d root 2553 0.0 0.1 111708 2560 ? s 12:34 0:00 /usr/sbin/keepalived -d root 2554 0.0 0.0 111708 1528 ? s 12:34 0:00 /usr/sbin/keepalived -d root 2564 0.0 0.0 112664 976 pts/0

如何学会高端网页制作
网站首页问题-云服务器问题
小型云服务器配置
二级域名怎么生成?如何选择一个好域名呢?
什么叫网页优化 为什么要进行网页优化
怎么做好优化网站排名?分享优化网站知识
云服务器怎么看主频
泉州网站建设网站建设需要什么?要如何维护好网站?