Linux 之HA集群酌置

HA(高可用 High avaiilable)集群

Web1 提供服务,如果1主宕机了,2备就可以马上启用,这样有用户这端没有任何影响。

在架构的时候要配置一条心跳线来传递信息。流动IP 也是就是VIP,是主从对外共同的IP。

[[email protected] ~]# iptables -F

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# vim /etc/hosts #在主上编译上

10.72.4.21 LNMP

10.72.4.14 OBird

[[email protected] ~]# vim /etc/hosts #复制到从上

10.72.4.21 LNMP

10.72.4.14 OBird

#

[[email protected] ~]# wget  www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm

#下载epel

[[email protected] ~]# rpm -ivh epel-release-6-8_64.noarch.rpm  #安装(主从都安装)

[[email protected] ~]# yum list |grep heartbeat

heartbeat.x86_64                            3.0.4-2.el6                  epel

heartbeat-devel.i686                        3.0.4-2.el6                  epel

heartbeat-devel.x86_64                      3.0.4-2.el6                  epel

heartbeat-libs.i686                         3.0.4-2.el6                  epel

heartbeat-libs.x86_64                       3.0.4-2.el6                  epel

主从各自安装 heaerbeat & libnet

[[email protected]LNMP ~]# yum install -y heartbeat

[[email protected]LNMP ~]# yum install libnet

[[email protected]OBird ~]# yun install -y heartbeat

[[email protected]OBird ~]# yum install libnet

[[email protected] ~]# cd /usr/share/doc/heartbeat-3.0.4/ #进到目录下拷贝样例

[[email protected] heartbeat-3.0.4]# ls

apphbd.cf  authkeys  AUTHORS  ChangeLog  COPYING  COPYING.LGPL  ha.cf  haresources  README

[[email protected] heartbeat-3.0.4]# cp authkeys ha.cf haresources /etc/ha.d/

[[email protected] heartbeat-3.0.4]#

[[email protected] heartbeat-3.0.4]# cd /etc/ha.d/

[[email protected] ha.d]# ls

authkeys  ha.cf  harc  haresources  rc.d  README.config  resource.d  shellfuncs

[[email protected] ha.d]# vim authkeys  #编译验证配置文件

#auth 1  #打开更改为 auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello! #打开md5验证:3 md5 Hello!

[[email protected] ha.d]# chmod 600 authkeys #编译目录权限,不然heartbeat 服务不能启动

[[email protected] ha.d]# cd /etc/sysconfig/network-scripts/ #配置虚拟网卡&IP

[[email protected] network-scripts]# ls

ifcfg-eth0   ifdown-eth   ifdown-post    ifdown-tunnel  ifup-eth   ifup-plip   ifup-routes    init.ipv6-global

ifcfg-lo     ifdown-ippp  ifdown-ppp     ifup           ifup-ippp  ifup-plusb  ifup-sit       net.hotplug

ifdown       ifdown-ipv6  ifdown-routes  ifup-aliases   ifup-ipv6  ifup-post   ifup-tunnel    network-functions

ifdown-bnep  ifdown-isdn  ifdown-sit     ifup-bnep      ifup-isdn  ifup-ppp    ifup-wireless  network-functions-ipv6

[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth0\:1 #配置虚拟网卡&IP

[[email protected] network-scripts]# vim ifcfg-eht0\:1

DEVICE=eth0:1

#HWADDR=00:0C:29:5A:02:3F

TYPE=Ethernet

#UUID=22567e42-4d72-40e9-8ca3-98098c239d9c

ONBOOT=no #开机不不启动,楼主是桥接模式,所以是静态且不启动

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=10.72.4.110

NETMASK=255.255.254.0

#GATEWAY=10.72.4.1

~

[[email protected] network-scripts]# /etc/init.d/network restart #重新启动网络服务,可以看到两个IP

[[email protected] ha.d]# vim haresources #编译

#node1  10.0.0.170 Filesystem::/dev/sda1::/data1::ext2 #直接加下面一行,更改当前行为下一行

LNMP    10.72.4.111/23/eth0:0 nginx

[[email protected] ha.d]# >ha.cf #清空配置

[[email protected] ha.d]# vim ha.cf  #写入以下内容

debugfile /var/log/ha-debug  #日志文件,和下面的ha.log 记录的东西差不多

logfile /var/log/ha-log

logfacility   local0         #日志的级别,此处是local 0,不要看成了10

keepalive     2              #多长时间探测一次对方是否还在

deadtime    30               #30秒Ping通宣告死亡

warntime    10               #10秒Ping不通发出警告

initdead    60               #防止对方服务器在重启,缓冲的时间

udpport     694              #心跳线通讯的端口  694

ucast eht0 10.72.4.14        # 对方的IP ,也可用bcast广播

auto_failback on             #如果备机启用,当主再次激活时还原主

node        LNMP             #master

node        OBird            #slave

ping 10.72.4.1               #仲裁地址,一般用路由或交换机,用稳定的设置

respawn hacluster /usr/lib64/heartbeat/ipfail #以哪个用户的身份来运行脚本。脚本是检测网络连通性的,检测对方是否存活。

[[email protected] ha.d]# scp authkeys haresources ha.cf OBird:/etc/ha.d/

[[email protected] ha.d]# vim ha.cf #从上的配置 ,只需要更改IP 到对方,其它配置无需更改

ucast eht0 10.72.4.21

启动:先启动主,后启动从。先后顺序不要搞错了。

[[email protected] ha.d]# /etc/init.d/heartbeat start #也是信了邪,主上的heartbeat 可以启动

Starting High-Availability services: INFO:  Resource is stopped

Done.

[[email protected] ha.d]# /etc/init.d/heartbeat start #同样的配置在从上却启动不了

#在网上寻求解决方法

做HA实验时,启动heartbeat出现错误:

ERROR: Client child command [/usr/lib/heartbeat/ipfail] is not executable

ERROR: Heartbeat not started: configuration error.

ERROR: Configuration error, heartbeat not started.

因为楼主的linux是64位的,ha.cf 配置文件里

/usr/lib/heartbeat/ipfail 这一句要改为:

/usr/lib64/heartbeat/ipfail

再次启动/etc/init.d/heartbeat start

Starting High-Availability services: INFO:  Resource is stopped

Done.成功(但是楼主不明,为何从上的配置的lib,为什么又可以启动)

[[email protected] ha.d]# vim ha.cf

[[email protected] ha.d]# /etc/init.d/heartbeat start #从上的heartbeat 启动成功

Starting High-Availability services: INFO:  Resource is stopped

Done.

[[email protected] ha.d]# ip add  #vip启动了

[[email protected] ha.d]# ps aux |grep nginx  #nginx 启动,详见下图

[[email protected] ha.d]# ps aux |grep nginx  #从上的nginx 是可能启动的,如果启动则说明HA失败

root      3654  0.0  0.0 103252   824 pts/0    S+   22:42   0:00 grep nginx

下面用nginx 的黙认页来做测试

[[email protected] ~]# vim /data/dis

[[email protected] dis]# echo "2016-12-19-masterLNMP" > forum.php

#楼主的主(master)是在LNMP的环境中,没有重新安装装ngixn ,路径和黙认路径不一样。

#C:\Windows\System32\drivers\etc  10.72.4.21 www.linux.com

[[email protected] dis]# iptables -A INPUT -p icmp -j DROP #关掉主上的 ping ,心跳线是基于ping 的

查看日志

在从上写入以下内容,通过VIP 访问。和上图比较,内容已发生改变,ha搭建成功。

[[email protected] ha.d]# echo "2016-12-19-masterSlvepppppppppppppppp" > /usr/share/nginx/html/index.html  #在从上的nginx黙认目下写入以下内容,通过IE 访问

查看从上的nginx 服务启情况,

时间: 2024-08-14 01:03:22

Linux 之HA集群酌置的相关文章

Linux系统架构(LB—HA集群)-HA集群配置

HA集群配置 准备两台设备,分别为主从 主: [[email protected] ~]# ifconfig eth0       inet addr:192.168.137.21 从: [[email protected] ~]# ifconfig eth0      inet addr:192.168.137.23 先开始配置 主上: [[email protected] ~]# hostname master [[email protected] ~]# iptables -F [[ema

Linux HA集群

HA(High Availability,高可用)集群的主要目的是提高服务的在线率,也就是缩短平均无故障的时间.实际上就是当一个提供服务的服务节点不在线时,有另一个提供相同服务的节点可以继续提供服务,避免出现单点故障. HA集群相关概念 一.相关名词解释 1.在线率 在线率是衡量HA集群的一个重要指标,就算方式如下: 在线率=平均无故障时间/(平均修复时间 + 平均无故障时间) 所以提高系统的可用性: 1).增加平均无故障时间 2).缩短平均修复时间 (可以通过冗余机制实现) 2.资源 这里的资

架构之高可用性(HA)集群(Keepalived)

Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管, 它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的.功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测.资源接管,检测集群中的服务,在集群节点转移共享IP地址的所

HA集群之DRBD浅析及实现DRBD高可用

一.DRBD概述 DRBD (Distributed Replicated Block Device) 是 Linux 平台上的分散式储存系统. 由内核模组.用户空间工具组成,通常用于高可用性(high availability, HA)集群.其实现方式是通过网络在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像.你可以把它看作是一种网络RAID1. DRBD的工作模式如下图: DRBD工作的位置在文件系统的buffer cache和磁盘调度器之间,数据进入Buffer Cache后,DRB

HA集群之CoroSync+Pacemaker浅析及实现

一.CoroSync corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以说corosync是OpenAIS的一部分,然而后面的发展超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案.如Redhat的RHCS集群套件就是基于corosync实现. corosync只提供了message layer(即实现HeartBeat + CCM),而没有直接提供CRM,一般使用Pacemaker进行资源管理. OpenAIS是基于SA Forum 标准的

linux高可用集群heartbeat实现http的高可用

linux高可用集群的种类很多,比如常见的heartbeat,corosync,rhcs,keepalived,这些集群软件的出现为我们的业务生产环境提供了高可用的保证,本文将简单介绍一下用heartbeat的v2版本来处理一个简单的http高可用集群的搭建. 在实现http高可用集群之前,首先至少需要2台主机,并且需要做3点基本的准备工作: 1.设置节点名称,并且集群中的所有节点都能通过节点名称去解析集群中的所有主机.为了集群服务的高可用性,这里选择使用/etc/hosts,而且要保证unam

使用QJM部署HDFS HA集群

一.所需软件 1. JDK版本 下载地址:http://www.oracle.com/technetwork/java/javase/index.html 版本: jdk-7u79-linux-x64.gz 2. Hadoop软件 下载地址:http://hadoop.apache.org/releases.html 版本: hadoop-2.6.0.tar.gz 二.配置ssh免密码登陆: 查阅之前博客:http://www.cnblogs.com/yinchengzhe/p/4967928.

CentOS linux 高可用集群之heartbeat

CentOS linux 高可用集群之heartbeat Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能. Heartbeat是Linux-HA工程的一个组件,自1999年开始到现在,发布了众多版本,是目前开源Linux-HA项目最成功的一个例子,在行业内得到了广泛的应用. 随着Linux在关键行业应用的逐渐增多,它必将提供一些

HA集群之Heartbeat v1 高可用安装讲解

什么是高可用集群        高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组计算机系统内部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断.从这个定义可以看出,集群必须检测节点和服务何时失效,何时恢复为可用.这个任务通常由一组被称为"心跳"的代码完成.在Linux-HA里这个功能由一个叫做heartbeat的程序完成. Heartbeat简介        Heartbeat是Linux-H