keepalived 详解(包含相关概念和示例)

本文详细介绍了keepalived的相关概念,包括HA Cluster、VRRP协议及其术语,以及mailx的安装和使用。在keepalived部分,讲解了其实现方式、组件结构,并提供了配置示例。重点讨论了vrrp_script的使用,解释了优先级更新策略和节点权重改变算法,阐述了Keepalived中Master和Backup角色的选举策略。
摘要由CSDN通过智能技术生成

相关概念

1、HA Cluster

1、集群类型:LB(lvs/nginx(http/upstream, stream/upstream))、HAHP

2、单点故障:SPoF:(Single Point of Failure)

3、系统可用性的公式:A=MTBF/MTBF+MTTR4、系统故障:硬件故障(设计缺陷、wear out、自然灾害、……)和 软件故障(设计缺陷)

5、提升系统高用性的解决方案之降低MTTR:采取冗余手段(redundant:active/passive(主备),active/active(双主))

6、高可用的是“服务”:
	# HA nginx service:vip/nginx process[/shared storage]		
	# shared storage:NAS(文件共享服务器)或 SAN(存储区域网络,块级别的共享)
	# Network partition:网络分区

7、Failover:故障切换,即某资源的主节点故障时,将资源转移至其它节点的操作

8、Failback:故障移回,即某资源的主节点故障后重新修改上线后,将转移至其它节点的资源重新切回的过程

9HA Cluster实现方案:
	# vrrp协议的实现(keepalived)
	# ais:完备HA集群(RHCS(cman)、heartbeat、corosync)

2、VRRP

vrrp协议:Virtual Redundant Routing Protocol。

2.1 相关术语

虚拟路由器:Virtual Router 

虚拟路由器标识:VRID(0-255)

物理路由器:
		  # master:主设备
	      # backup:备用设备
		  # priority:优先级
		  
VIP:Virtual IP 

VMAC:Virutal MAC (00-00-5e-00-01-VRID)

2.2 其它介绍

通告:进行心跳,优先级等信息周期性进行发送

模式:抢占式,非抢占式

安全工作:认证方式
	# 无认证
	# 简单字符认证
	# MD5

工作模式:
	# 主/备:单虚拟路径器
	# 主/主:主/备(虚拟路径器1),备/主(虚拟路径器2

3、mailx

3.1 安装

[root@neo-neo ~]# yum install mailx -y

[root@neo-neo ~]# rpm -ql mailx
/bin/mail
/bin/mailx
/etc/mail.rc
/usr/bin/Mail
/usr/bin/nail
/usr/share/doc/mailx-12.5
/usr/share/doc/mailx-12.5/AUTHORS
/usr/share/doc/mailx-12.5/COPYING
/usr/share/doc/mailx-12.5/README
/usr/share/man/man1/Mail.1.gz
/usr/share/man/man1/mail.1.gz
/usr/share/man/man1/mailx.1.gz
/usr/share/man/man1/nail.1.gz

3.2 使用

[root@neo-neo ~]# echo "hello" | mail -s "hi" root@localhost     # 进行邮件发送, -s 指定邮件主题
[root@neo-neo ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 2 messages 2 new
>N  1 root                  Thu Oct  3 09:58  18/603   "hi"
 N  2 root                  Thu Oct  3 09:58  18/602   "hi"
& 2
Message  2:
From root@neo-neo.localdomain  Thu Oct  3 09:58:44 2019
Return-Path: <root@neo-neo.localdomain>
X-Original-To: root@localhost
Delivered-To: root@localhost.localdomain
Date: Thu, 03 Oct 2019 09:58:44 -0400
To: root@localhost.localdomain
Subject: hi
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@neo-neo.localdomain (root)
Status: R

hello

& exit
You have mail in /var/spool/mail/root

keepalived

1、实现方式

vrrp协议的软件实现,原生设计的目的为了高可用ipvs服务:

  • 基于vrrp协议完成地址流动
  • 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
  • 为ipvs集群的各RS做健康状态检测
  • 基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务

2、组件介绍

  • 核心组件

    vrrp stack
    ipvs wrapper
    checkers
    
  • 控制组件:配置文件分析器

  • IO复用器

  • 内存管理组件
    在这里插入图片描述

  • 分为两大层:内核空间(Kernel Space)、用户空间(User Space)

  • IPVS(IP Virtual Server): 实现传输层负载平衡,也称为第4层交换

  • NETLINK: 用于在内核和用户空间进程之间传输信息

Keepalived 分为3个守护进程:

  1. 父进程: 很简单,负责 fork 子进程,并监视子进程健康(图中 WatchDog 周期性发送检测包,需要的话重启子进程)
  2. 子进程A: 负责VRRP框架(图中 VRRP Stack)
  3. 子进程B: 负责健康检查(图中 Checkers)

3、HA Cluster的配置前提

  1. 各节点时间必须同步(使用 ntp, chrony 进行实现)
  2. 确保iptables及selinux不会成为阻碍
  3. 各节点之间可通过主机名互相通信(对KA并非必须):(建议使用/etc/hosts文件实现)
  4. 确保各节点的用于集群服务的接口支持MULTICAST通信(使用D类地址:224-239)

4、keepalived 安装

CentOS 6.4 以上的版本随base仓库提供。

5、keepalived 程序环境

主配置文件:/etc/keepalived/keepalived.conf
主程序文件:/usr/sbin/keepalived
Unit File:keepalived.service
Unit File的环境配置文件:/etc/sysconfig/keepalived

6、主配置文件组件部分

TOP HIERACHY
	# GLOBAL CONFIGURATION
		# Global definitions
		# Static routes/addresses
	# VRRPD CONFIGURATION
		# VRRP synchronization group(s):vrrp同步组
		# VRRP instance(s):每个vrrp instance,即一个vrrp路由器
	# LVS CONFIGURATION
		# Virtual server group(s)
		# Virtual server
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值