热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxkeepalived双主模式,keepalived实现双主模式高可用集群

keepalived起初是为lvs设计的,专门用来监控集群中各个服务器节点的状态,后来加入了VRRP的功能,它的作用是解决静态路由出现的单

keepalived起初是为lvs设计的,专门用来监控集群中各个服务器节点的状态,后来加入了VRRP的功能,它的作用是解决静态路由出现的单点故障问题,它能够保证网络不间断、稳定的运行,综上所述,keepalived一方面具有健康监测的功能,另一方面也具有HA Cluster的功能,因此,可以通过这个软件可以搭建一个高可用的集群。

高可用集群有几种模式,这里就简单介绍一下。

高可用-主备模式:一个VIP或多个,一台主机对外提供服务,另外一台做备用机,当主服务器出现问题,备用服务器接管IP继续提供服务。

高可用-主主模式:二个VIP或多个,两台主机都对外提供服务,可以是同一个服务,也可以是不同的服务,这种模式提高了硬件的投入,也对负载均衡起到一定的效果

相信主备模式的网络上已经有很多可以参考的资料了,我这里就介绍一下高可用的主主模式。

先介绍一下我这里的环境:centos6.4 64位

master1 eth0:192.168.2.13 主VIP 192.168.2.10 备VIP 192.168.2.9

eth1: 192.168.1.10

master2 eth0:192.168.2.14 主VIP 192.168.2.9 备VIP 192.168.2.10

eth1: 192.168.1.11

出于测试方便,所以两台机器上分别安装nginx,实际生产环境我们也是在用的nginx,用什么其实都一样,本文主要介绍的是keepalived的双主高可用集群,nginx安装就不介绍了,很简单。

centos自带的yum源就有keepalived,所以利用yum安装就可以

#yum install -y keepalived (目前安装的是1.2.7的版本,官方最新的是1.2.9的)

下面开始配置,因为是双主模式,所以要配置2个不同的vrrp_instance,互为主备的,下面看一下我的配置文件。

! Configuration File for keepalived

global_defs {

notification_email {

13661122705@163.com #通知收件人地址,可以写换行写多个

}

notification_email_from root@localhost #发件人地址

smtp_server 127.0.0.1 #邮件smtp服务器地址

smtp_connect_timeout 30 #邮件smtp连接超时时间

router_id KEEPALIVED_TEST #运行Keepalived服务器的标识,自定义;发邮件时显示在邮件标题中的信息

}

vrrp_script notification { #定义一个外部脚本

script "/etc/keepalived/notification.sh" #脚本的路径

interval 1 #通知间隔

weight 2

}

vrrp_script chk_alive {

script "/etc/keepalived/chk_alive.sh"

interval 1

weight 2

}

vrrp_instance master1 {

state MASTER #角色{MASTER|BACKUP}

interface eth1 #HA监测的网卡

virtual_router_id 56 #虚拟路由ID;一组集群ID号必须一样

priority 100 #权重,BACKUP不能高于MASTER

advert_int 1 #检测时间间隔

garp_master_delay 1

authentication {

auth_type PASS #认证类型

auth_pass 1234 #认证密码,同一集群密码要一样

}

virtual_ipaddress { #定义虚拟IP地址,可以有多个

192.168.2.10

}

track_script { #定义状态跟踪

chk_alive #名称为vrrp_script中定义的

}

notify_master "/etc/keepalived/notification.sh master" #指定切换到Master状态时执行的脚本

notify_backup "/etc/keepalived/notification.sh backup" #指定切换到Backup状态时执行的脚本

notify_fault "/etc/keepalived/notification.sh fault" #指定切换到Fault状态时执行的脚本

}

vrrp_instance master2 {

state BACKUP

interface eth1

virtual_router_id 58

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 4321

}

virtual_ipaddress {

192.168.2.9

}

track_script {

chk_alive

}

}

由于篇幅的问题,master2的配置就不贴出来了,只是把master改为backup,priority大小改一下就可以了,master的priority要大于backup的,这样就可以。

chk_alive.sh是检测nginx是否存活的脚本,notification.sh是切换主备时的通知脚本,地址为

其实本文主要阐述的不是配置,是要阐述一下keepalived的工作原理,只要懂得了原理,这些都不是很难,双主集群的原理是每一台服务器都有一个主的和一个备的,互为主备,如果是web应用,想要实现2台服务器都绑定一个域名,就需要利用dns轮询的方式来做,如果后端有web服务器,前端可以利用lvs或者其他的负载均衡软件,如果只有2台,每台上面都安装web程序就可以,只要保证2台服务器上的数据一致,就可以有效的减少故障时间,还要提到的一点是,高可用集群要考虑到连接2台服务器的交换机,如果交换机死掉了就会出现脑裂的情况,所以尽量要利用2块网卡做健康监测,最好有2台交换机。

以上文章可能不够详细,如果有不明白的地方可以发评论,我会很快的回复的,谢谢大家支持。



推荐阅读
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • 本文详细介绍如何在忘记MySQL服务器密码的情况下进行密码重置,包括具体的步骤和注意事项。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 在Ubuntu 20.04 Linux系统中部署Git的详细步骤与最佳实践
    在Ubuntu 20.04 Linux系统中部署Git时,首先确保您的操作系统版本正确,并已以具备sudo权限的用户身份登录。推荐使用APT软件包管理器进行安装,这是最简便且可靠的方法。此外,遵循最佳实践,如定期更新Git版本和配置全局设置,可以进一步提升使用体验和安全性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
author-avatar
熊砚龙_587
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有