Linux的企业-高可用集群Haproxy+corosync+pacemaker+fence

一.Haproxy简介

Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

二.HAProxy的特点
1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
3、支持url检测后端的服务器出问题的检测会有很好的帮助。
4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。
6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)
10、不能做Web服务器即Cache。

三.高可用corosync+pacemaker介绍

高可用架构由两个核心部分组成,一个是心跳检测,判断服务器是否正常运行;一个是资源转移,用来将公共资源在正常服务器和故障服务器之间搬动。整个运行模式就是心跳检测不断的在网络中检测各个指定的设备是否能够正常响应,如果一旦发生设备故障,就由资源转移功能进行应用的切换,以继续提供服务。

corosync,心跳信息传输层,它是运行在每一个主机上的一个进程 。
pacemaker是一个集群管理器。它利用推荐集群基础设施(OpenAIS 或heartbeat)提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。用于资源转移。

四.环境配置

客户机:172.25.29.250

服务端

server1:172.25.29.1   haproxy  httpd8080  corosync+pacemaker

server4:172.25.29.4   corosync+pacemaker

RS:

server2:172.25.29.2   httpd

server3:172.25.29.3   httpd


1.安装haproxy

安装包依赖

配置指定路径

为了方便创建rpm包,先安装rpmbuild包

编译后做成*.rpm

安装做好后的haproxy包

2.配置haproxy

复制模版配置文件

创建haproxy用户和添加内核最大连接数量8000

配置主配置文件

3.测试

服务端口已经打开

可以轮询

haproxy监控页面正常

haproxy正常

五.Haproxy日志的配置

vim /etc/rsyslog.conf

测试显示日志正常

六.调度算法的设置

1.默认为rr轮询

2.设置权重weight 2

server2的权重变大

3.设置source算法原地址保持

七.设置动态页面访问php

1.载server1上配置文件

2.在server3上安装php,配置httpd

设置访问页面vim /var/www/html/index.php

设置httpd默认优先访问index.php

3.在客户机测试

八.设置acl禁止访问用户

客户机172.25.29.250无法访问


九.acl设置重定向

设置访问错误的重定向到本机的8080端口

将本机的httpd改为8080端口

十.acl设置动态写入

1.设置配置

2.在server2上安装php,设置好所需要的测试文件

在默认的html下放置上传文件的upload_file.php upload目录

3.设置好权限,并将文件传给server3

在server3上设置好权限

4.在客户机上测试

可以上传图片

可以访问images目录下的图片

十一.安装高可用pacemaker+corosync集群

1.安装配置

bindnetaddr 设置网段

多波设置改变一个mcastaddr和mcastport

底下添加service

server4与server1同样配置

2.校验集群配置文件,显示错误,需要安装接口插件crmsh

crmsh作为pacemaker的接口,而安装crmsh需要依赖pssh

3.两边启动corosync服务后,在server1上 crm_mon  监控集群健康状态,server1与server4 online

4.在server4上使用crm相关命令管理集群

STONITH
       shoot the other node in the head,这个RA类型主要是做节点隔离的,专为配置stonith设备耐用。
       使用STONITH主要目的就是为了避免由于网络原因,节点之间不能完全通信(比如分为了两部分,左边3台,右边2台),左边的3台能收到各自的心跳信息,右边的2台也可以收到各自的心跳信息,就是左边部分和右边部分收不到各自的心跳信息,因此,它们都各自以为对方故障了,就会各自重新推选出一台做为DC(Designated Coordinator),从而出现了两个集群,这就导致了资源争用;如果恰好双方都往其共享存储写数据,很可能就会导致文件系统崩溃,这种现象就叫做集群分裂(brain-split)。
       为了避免集群分裂,就出现了法定票数(quorum,票数>半数票数的集群成为满足法定票数)这一说法,就是在集群通信故障时,为了避免资源抢占,应该让一方放弃成为集群,具体应该哪方放弃呢?这就是投票的结果了,只有具有法定票数的一方才有资格做为集群,相反的一方就应该退出集群,但它放弃后并不代表服务停止,所以应该让其释放资源,关闭电源。stonith设备就是在这里用的,要让退出集群的设备彻底失效,电源交换机就是这个原理了
       而如果一个集群只有两个节点的话,这又是一种特殊的集群,万一出现集群分裂后,它们双方可能都不会具有法定票数,那结果可想而知,资源不会转移,导致整个资源都故障了,因为没有仲裁设备
       说这么多,就是为了说明下面两个比较重要的概念
       ①、corosync默认启用了stonith功能,而我们要配置的集群并没有stonith设备,因此在配置集群的全局属性时要对其禁用
       ②、当一个集群没有法定票数时,资源是不会正常转移的,当一个节点出现故障时,资源不会正常的转移到正常的节点上,就会导致所有的资源都故障了。所以,应该定义法定票数不足时做忽略而不是停止所有资源


5.安装fence

在server1上安装fence


在客户机上安装fence

端口1229已经开打

6.在server4上配置fence机制

在server1上crm_mon监控集群健康状态,fence已经启动正常

7.在server4上配置虚拟IP,并重启corosync服务

在server1上crm_mon监控集群健康状态,vip已经启动正常

8.测试fence机制

关闭server4上节点,服务到server1上

十二.添加负载均衡Haproxy

1.server4配置haproxy

修改绑定的VIP

将server1的haproxy传给server4

2.server4安装haproxy

在高可用上配置haproxy

crm node standby操作节点的备用属性以确定资源是否可在此节点上运行

在资源里更新server1 的haproxy

3.server4节点上线,集群正常,VIP已经到server4

4.测试,停止server4节点,服务到server1

server4网卡down掉,服务到server1

时间: 2024-10-08 09:21:10

Linux的企业-高可用集群Haproxy+corosync+pacemaker+fence的相关文章

高可用集群之Corosync+Pacemaker及用CRM命令和NFS-server构建一个HA高可用集群

红帽5.0使用的是OpenAIS作为内核中的信息通信API,然后借助CMAN作为Messager Layer,再使用ramanager作为CRM进行资源的管理 Corosync具有比heartbeat在设计上更好的信息通信机制 红帽6.0直接使用Corosync用来作为集群的Messager Layer 不同的公司的API机制所调用的库,函数类型,返回方式各不相同,这就必须使用一个标准,使不同公司的API保持最大的兼容 比如你买了华硕的主板使用其他公司的鼠标照样可以使用 应用接口规范(AIS)就

Linux HA Cluster高可用集群之HeartBeat2

一.阐述Linux HA Cluster的使用背景: 1.1 高可用集群定义: 高可用集群全称:High Availability Cluster,简单的说,集群就是一组高可扩展.高可用性.高性价比的计算机.它们作为一个整体向用户提供一组网络资源.其中单个的计算机系统就是一个集群的节点.高可用集群软件的主要作用就是实现故障检查和业务切换的自动化,以提供不中断的服务. 1.2 集群系统的主要优点: (1)高可扩展性:  (2)高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点.可以有效防

Linux集群系列——高可用集群之corosync基础概念及安装配置.

高可用衡量标准 :corosync : 集群管理引擎 SA Forum -->OpenAIS-->Wilson-->corosync 向后延伸为衍生出来的版本REHL 6.x RHCS :corosyncREHL 5.x RHCS :OpenAIS , cman ,rgmanager corosync : Messaging Layer 需要CRM (+ pacemaker)SUSE Linux Enterprise server Hawk WEB GUILCMC : Linux Clu

linux下高可用集群之corosync详解

1.corosync相当于heartbeat功能,提供Messaging Layer,收集节点之间心跳等信息 pacemaker相当于haresources,提供crm管理资源信息 2.实验:双集群节点为node1.willow.com,IP为1.1.1.18 node2.willow.com,IP为1.1.1.19 在node1.willow.com主机配置如下:(与node2.willow.com集群配置全部相同) 2.1.安装corosync和pacemaker等需要安装的包 cluste

dubbo+Springmvc+zookeeper高可用集群搭建

核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 1.     项目核心代码结构截图    项目模块依赖 特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化 核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,

配置高可用集群(环境)

一准备三个虚拟机,把/etc/hosts/文件配置好 192.168.43.9 node0 192.168.43.10 node1 192.168.43.11 node2 node0,node1,node2上配置时间同步服务器 1:在node0上安装配置chrony服务,同步国内互联网时间服务器的时间 yum install -y chrony 2:编辑配置文件/etc/chrony.conf 修改默认的centos时间同步服务器地址为国内时间同步服务器地址,且允许192.168.43.0/24

linux企业常用服务---lvs+Keepalived高可用集群

部署前准备: iptables和selinux没配置,关掉 挂载系统镜像作为本地yum源,修改yum文件 源码包准备keepalived-1.2.13.tar.gz 环境介绍: 主服务器ip:192.168.100.157(keeplived+lvs) 从服务器ip:192.168.100.156(keeplived+lvs) 节点服务器ip:192.168.100.153-192.168.100.155(httpd) 集群vip:192.168.100.95 1.安装keepalived(在两

linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实施linux集群架构,才能既有效保证网站健康运行,又能节省运维成本呢?下面依据近几年的运维经历,简单梳理下自己的一点感悟. (1)机房的选择如果有自己公司的机房那是再好不过的了:如果没有,建议放在BGP机房内托管,如果有选择的话,最好是选择带有硬件防火墙的机房,这样在安全方面也有保障:网站如若是放在

企业主流MySQL高可用集群架构三部曲之PXC

前段时间,老张给大家介绍了企业中主流MySQL高可用集群架构三部曲中的前两部,有不了解的同学可以去访问我之前的博客内容. 第一部曲直通车>> 企业中MySQL主流高可用架构实战三部曲之MHA 第二部曲直通车>>企业中MySQL高可用集群架构三部曲之MM+keepalived 独家新课程上线>>MySQL体系结构深入剖析及实战DBA视频课程 今儿给大家介绍最后一部曲,是percona公司的percona xtraDB cluster.简称PXC.它是基于GaLera协议的