Linux集群架构(一)

本文介绍了Linux集群中的高可用集群和负载均衡集群。通过Keepalived实现Web服务的高可用,详细讲解了Keepalived的工作原理、安装配置以及与Nginx的结合使用。此外,还探讨了LVS的负载均衡技术,包括NAT模式、调度算法以及NAT模式下的LVS集群搭建步骤。
摘要由CSDN通过智能技术生成

集群从功能实现上分为两种:高可用集群和负载均衡集群。

高可用集群,顾名思义,当一台服务器宕机不能提供服务了,还有另外的服务器替代提供服务。

负载均衡集群,简单讲就是把用户的大量请求按一定的调度算法分摊到多台服务器上,从而让每台服务器都不至于负载太高。


18.1 搭建高可用集群

高可用集群,即“HA集群”,也称为“双机热备”,用于关键业务。

常用实现高可用集群的开源软件有heartbeat和Keepalived,其中Keppalived还有负载均衡的功能。这两个软件类似,核心原理都是通过心跳线连接两台服务器,正常情况下由一台服务器提供服务,当这台服务器宕机,备用服务器顶替。这里建议使用Keepalived。


Keepalived工作原理

VRRP(Virtual Router Redundancy Protocol)协议叫做虚拟路由冗余协议,它是实现路由高可用的一个通信协议。

VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个)。而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话,就是MASTER,或者是通过算法选举产生的,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等,其他设备不具有该IP,状态是BACKUP。除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能,当MASTER失效时,BACKUP将接管原先MASTER的网络功能。

Keepalived就是基于VRRP协议实现的。Keepalived要有三个模块,分别是core、check和vrrp。其中core模块为Keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;check模块负责健康检查;vrrp模块用来实现VRRP协议。


安装Keepalived

刚刚提到的VRRP协议有1个master角色和至少一个backup角色,所以做本实验需要准备至少两台linux机器。这里我用了两台虚拟机来完成实验。

master		192.168.33.128

backup		192.168.33.129
  • 在两台机器上都安装keepalived:
# yum install -y keepalived

Keepalived+Nginx实现Web高可用

在生产环境中,很多企业把Nginx作为负载均衡器使用,它很重要,一旦宕机就会导致整个站点不能访问。这种情况下需要再准备一台备用Nginx,Keepalived用在这种场景下非常合适。

在配置之前,我把两台机器的IP、角色罗列一下:

master		192.168.33.128		keepalived/nginx

backup		192.168.33.129		keepalived/nginx

VIP(虚拟ip)		192.168.33.100

VIP(虚拟IP)是由Keepalived给服务器配置上的,服务器靠这个VIP对外提供服务,当master机器宕机,VIP就会被分配到backup机器上继续对外提供服务,而用户是无法感知的。


配置master
  • master上编辑keepalived配置文件:
# vim /etc/keepalived/keepalived.conf				#更改为下面内容

global_defs {
   
   notification_email {
   
     lzx@lzxlinux.com				#定义接收告警的人
   }
   notification_email_from root@lzxlinux.com				#定义发邮件的地址
   smtp_server 127.0.0.1				#定义发邮件服务器地址,若为127.0.0.1则使用本机自带邮件服务器发送
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
   				#chk_nginx为自定义名字,后面会用到
    script "/usr/local/sbin/check_ng.sh"				#自定义脚本,该脚本为监控nginx服务的脚本
    interval 3				#每隔3s执行一次该脚本
}

vrrp_instance VI_1 {
   
    state MASTER				#角色为master
    interface ens33				#针对哪个网卡监听VIP
    virtual_router_id 51
    priority 100				#设置权重为100,master权重必须要比backup大,因为权重越大优先级越高
    advert_int 1
    authentication {
   
        auth_type PASS
        auth_pass lzxlinux>com				#定义密码,这个密码自定义
    }
    virtual_ipaddress {
   
        192.168.33.100				#定义VIP地址
    }

    track_script {
   
        chk_nginx				#定义监控脚本,这里和上面vrrp_script后面的字符串保持一致
    }
}

keepalived要实现高可用,监控nginx服务是必须的,它本身没有这个功能,需要借助自定义脚本来实现。

  • 定义监控Nginx服务的脚本:
# vim /usr/local/sbin/check_ng.sh
#!/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" ]; th
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值