linux高可用群集(一)

群:

高可用(HA)集群:

解决架构中的单点故障。

有Heartbeat,rhcs

负载均衡集群:

解决架构中压力过大的问题。

高性能集群:

Hadoop

需要了解的一些HA集群的概念:

主节点:在HA集群中,优先成为活动节点并且提供服务

备用节点:在HA集群中,如果主节点出现故障,该节点会自动平滑地取代主节点成为活动节点提供服务

活动节点: 在HA集群中,当前获得了资源并且正在提供服务的节点

资源: 为了能够为客户提供服务而启动一些系统服务或者程序,常见的资源: 浮动IP,各种服务(httpd,vsftpd,mysqld等,只要是通过脚本启动的服务或程序都能叫做资源)

浮动IP: 当节点成为活动节点的时候需要绑定的IP,如果节点出现故障,该IP就会让替换该故障节点的备用节点所绑定。所以该IP实在HA集群中的节点之间浮动绑定的。

单点故障: 只要架构中存在某个点出现故障(包括服务器硬件、软件故障),整个架构就中断服务,那么该点股站就是单点故障。

故障迁移: HA集群中,某个故障出现了,备用节点取代故障节点,这个过程就叫故障迁移。

心跳: 用于集群节点之间传播集群状态信息和节点的健康状态信息。

HA集群的通用架构图:

例子:使用heartbeat实现简单的web高可用集群

客户端请求http://vip/ 或者 http://domain-name --> vip

|||

vip

|---------------|   <---- 生产网络

server1 server2

|---------------|    <---- 心跳网络

要求:

系统采用rhel6

server1 (主节点)

server1.josen365.net

eth0 192.168.1.52/24  <---- 生产网络

eth0:0 192.168.33.52/24  <---- 生产网络

eth1 192.168.100.52/24 <---- 心跳网络

gw 192.168.1.254 <---设定为生产网络

server2 (备用节点)

server2.josen365.net

eth0 192.168.1.50/24

eth0:0 192.168.33.50/24

eth1 192.168.100.50/24

gw 192.168.1.254  <---设定为生产网络

vip 192.168.33.53

谁对外提供服务,谁绑定该IP(集群套件自动绑定,不是手工绑定)。

客户端就是使用该IP访问服务,或者域名解析该IP

准备:

静态IP,FQDN主机名

相互绑定主机名到hosts文件

配置过程:

# cat /etc/hosts

...

...

192.168.100.50 server1.upl.com  《---选择心跳网络的IP绑定主机名

192.168.100.52 server2.upl.com

关闭NetworkManager服务,设定开机不启动

关闭iptables、selinux

软件仓库:

[Base]

name=Base

baseurl=ftp://192.168.100.1/el65/

enabled=1

gpgcheck=0

[HighAvailability]    《---rhel6需要原来这个分组

name=HighAvailability

baseurl=ftp://192.168.100.1/el65/HighAvailability

enabled=1

gpgcheck=0

一、集群节点都安装集群软件heartbeat

# yum install ./heartbeat-3.0.4-2.el6.x86_64.rpm  ./heartbeat-libs-3.0.4-2.el6.x86_64.rpm -y  --nogpgcheck

rhel6u5系统得另外执行:

# ln -s /usr/lib64/heartbeat/*  /usr/libexec/heartbeat/

6u5会错误地去/usr/libexec/heartbeat/找可执行文件

二、配置集群

1、在其中一个集群节点进行配置

# cp /usr/share/doc/heartbeat-3.0.4/{ha.cf,authkeys,haresources}  /etc/ha.d/

配置主配置文件

# vim /etc/ha.d/ha.cf

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 12

warntime 6

initdead 40

udpport 694  <---使用网络发送心跳使用的udp协议的端口

ucast eth1 192.168.100.52  使用本机eth1接口发送心跳给192.168.100.52

把配置文件同步到对端节点要修改IP

auto_failback on  主节点故障修复上线之后,会自动把资源抢回来成为活动节点

node    server1.upl.com   必须写节点的完整主机名(uname -n)

node    server2.upl.com

ping  192.168.100.1 选择心跳网络中最稳定一般不会出问题的设备的IP

用于辅助节点判断节点自身的网络健康情况

respawn hacluster /usr/lib64/heartbeat/ipfail  《--64位系统要把lib修改成lib64

apiauth ipfail gid=haclient uid=hacluster

编辑心跳加密配置文件

# vim /etc/ha.d/authkeys

auth 2

2 sha1 HI8sadkjfh23!

# chmod 600 /etc/ha.d/authkeys  必须保证权限正确

编辑HA集群中资源

vip --> httpd

格式:  主节点 资源1::参数1::参数2  资源2  资源3::参数

定义资源的时候,要根据资源的绑定顺序,从左到要右绑定资源

释放资源是从右到左

资源脚本的查找路径 /etc/ha.d/resources.d , /etc/rc.d/init.d/

# vim /etc/ha.d/haresources

server1.upl.com   IPaddr::192.168.100.53/24/eth0  httpd

2、同步配置文件到其余节点

# scp /etc/ha.d/{ha.cf,authkeys,haresources}  server2.upl.com:/etc/ha.d/

同步之后记得修改ha.cf中心跳对端IP

ucast eth1 192.168.100.50

三、充分测试好各种资源

vip  : 确定网络中没有其他设备占用了该IP

确定vip的掩码要正确

httpd: 确定安装了httpd,并且人工启动确定工作正常后,再必须手工关闭

# yum install httpd -y

要了更好看到“故障迁移”的效果,我们故意让两个节点的页面内容不一样:

server1 # echo "server1" >> /var/www/html/index.html

server2 # echo "server2" >> /var/www/html/index.html

# service httpd start

找客户端测试是否能够访问到该页面,如果可以,@@@@就关闭[email protected]@@@

为什么要关闭? 因为http已经作为HA集群中的资源,是由HA集群套件来决定是否需要启动

四、启动集群

所有集群节点都应该依次同时启动:

# service heartbeat start

验证:

1、如果集群启动成功,所有节点都健康的情况下,主节点优先获得资源成为活动节点

# lsof -i:80 -n

# ip addr show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 52:54:00:1d:e2:f5 brd ff:ff:ff:ff:ff:ff

inet 192.168.110.101/24 brd 192.168.110.255 scope global eth0

inet 192.168.100.53/24 brd 192.168.110.255 scope global secondary eth0

inet6 fe80::5054:ff:fe1d:e2f5/64 scope link

valid_lft forever preferred_lft forever

客户端使用vip访问

# elinks 192.168.100.53

2、手工友好地切换资源

活动节点把资源让出去:

# /usr/share/heartbeat/hb_standby

活动节点通过心跳包告诉对端节点:我要把资源让给你,你做好准备了,然后活动节点会首先(从右到左)释放所有资源,释放成功之后,告诉对端节点可以绑定资源了。最后对端节点才会去绑定资源成为新的活动节点

非活动节点主动抢资源:

# /usr/share/heartbeat/hb_takeover

3、直接把活动节点硬关机

模拟活动节点死机了

如果故障的节点是集群中主节点,那么该节点修复上线之后,会怎么样?

分析:

1、什么原因会导致故障迁移的发生?

一般是因为活动节点的心跳存在问题,导致备用节点接受不了活动节点的心跳,如果存在电源设备,那么备用节点会使用电源设备把故障的活动节点进行电源重置(重启),然后才会绑定资源成为活动节点,完成故障迁移。

如果设定中,没有存在电源设备,备用节点在接受不到活动节点的心跳的时候,会直接绑定资源。这样会有可能导致“脑裂”。因为有可能,活动节点的心跳无法正常接受,不一定是活动节点的问题,有可能网络的问题,导致活动节点和备用节点之间的心跳不正常。

要解决脑裂:最根本的方法就是使用电源设备。

如果没有电源设备,可以通过增加心跳网络来降低脑裂出现的机率。

有写HA集群套件还能支持基于资源的故障迁移: 如果活动节点的资源,例如httpd因为故障死掉了,不能提供服务,集群套件会及时发现,并且把相关资源都释放,让备用节点去绑定资源,进行故障迁移。如果要使用heartbeat来实现,必须使用style2(版本2以上的新配置语法)

2、如何实现故障迁移之后,节点还能提供一致的服务和内容

可以适当地根据项目和应用的特点选择使用共享存储

变化频率低的数据: 可以采用手工同步的方法实现

例如:网站应用的代码文件

变化频率高的数据: 采用共享存储

例如:用户上传的附件

数据库的数据:  使用同一个数据库服务器

时间: 2024-11-05 13:40:32

linux高可用群集(一)的相关文章

LINUX 高可用群集之 ~Corosync~

Corosync:它属于OpenAIS(开放式应用接口规范)中的一个项目corosync一版本中本身不具 备投票功能,到了corosync 2.0之后引入了votequorum子系统也具备了投票功能了,如果我们用的是1版本的,又需要用到票数做决策时那该如何是好呢:当然,在红帽上把 cman + corosync结合起来用,但是早期cman跟pacemaker没法结合起来,如果想用pacemaker又想用投票功能的话,那就把cman当成 corosync的插件来用,把cman当成corodync的

使用RHCS创建Linux高可用群集

基础环境准备 环境拓扑图 Linux基本服务设定 关闭iptables #/etc/init.d/iptables stop #chkconfig iptables off #chkconfig list | grep iptables 关闭selinux #setenforce 0 #vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of

高可用群集HA介绍与LVS+keepalived高可用群集

一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/ Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协

45.Keepalived高可用群集

Keepalived高可用群集 Keepalived采用VRRP热备份协议,以软件的方式实现linux服务器的多机热备功能,当一方故障时,自动切换备份服务器进行工作. Keepalived部署环境:一台主调度服务器,一台从调度服务器,多台节点服务器 Keepalived部署步骤: v 安装支持组件 #yum -y install kernel-devel openssl-devel popt-devel  ipvsadm v 源码安装keepalived工具 #tar xzvf keepaliv

CentOS7.4—构建LVS+Keepalived高可用群集

LVS+Keepalived高可用群集 目录第一部分 环境准备第二部分 使用Keepalived搭建双机热备第三部分 配置Web节点服务器第四部分 测试LVS+Keepalived高可用群集 第一部分 环境准备一:调度器两台(双机热备)系统:Linux-CentOS 7.4IP地址:192.168.80.10(主)IP地址:192.168.80.20(备)二:Web服务器两台系统:Linux-CentOS 7.4IP地址:192.168.80.30(SERVER AA)IP地址:192.168.

CentOS7.4—构建最新版haproxy高可用群集

CentOS7.4-构建haproxy高可用群集 目录第一部分 实验环境第二部分 搭建配置web服务器第三部分 安装配置haproxy服务器第四部分 测试验证第五部分 haproxy配置相关详细解释 第一部分 实验环境 一台harpoxy调度服务器IP地址:192.168.80.10需要软件:haproxy-1.7.10.tar 两台Web服务器(基于nginx)IP地址:192.168.80.20(web01)IP地址:192.168.80.30(web02)需要软件:nginx-1.13.9

LVS + Keepalived 高可用群集 【DR模式】

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

LVS+keepalived 实现高可用群集

高可用群集(High Availability Cluster) 以提高应用系统的可靠性.尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果.列如,“故障切换”,“双机热备”,“多机热备”等都属于高可用集群技术. HA 的工作方式包括双工和主从两种,双工即所有节点同时在线:主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点. LVS+Keepalived 实现高可用负载均衡集群 随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5

keepalived实现高可用群集

一,实验架构 本实验由两台keepalived服务器实现高可用群集,最终将master网卡down,使用ping vip的方式进行验证. master 172.24.3.20 slave 172.24.3.25 vip 172.24.3.50 二,实验过程 master与slave安装过程一致 1,安装支持软件kernel-devel, openssl-devel, popt-devel 2,编译安装keepalived 3,使用keepalived服务 4,修改主配文件 master slav