高可用集群 HA

高可用集群  HA

模型  N+1模型 有N个在工作一个空闲

      N/N n个节点运行n个服务

 

共享存储

DAS 直接附加存储,通过系统总线连接出来一条线直接连接设备

 --RAID

 --SCSI

NAS 网络附加存储,通过另外的一台主机提供数据的存储,

  --NFS 

SAN 存储区域网络 

俩个主节点通过光纤交换机连接,主机通过光卡练到交换机,光交换机连接到存储空间

光模拟出来的SCSI总线,传输的数据时块级别的

   --FCoe 协议实现SCSI

   --iSCSI tcp/ip 协议上实现

 Brain-split ,脑裂   集群分裂成为几个团体,会征用一个共享资源

 Partitioned Cluster  

STONITH  电源交换机

   Shoot the oter node in the head 避免脑裂,

   Fence  隔离设备 RHCS提供的

重要目的就是保证服务器7X24小时在线

   要实现这种机制旧的使用multipaty

    quarom  法定人数,集群满足之后才叫做集群,必须大于半数(不能等于),数目跟服务器个数无关系,可以通过性能的比例给每个服务器票数,并且规定必须大于半数才提供服务。

       如果是两个节点是个例外

    Quarom disk     解决方法,在两个节点之间用一个共享存储,节点实时在共享存储里写数据,如果另个节点没有发现有数据写入则,自己代替他。

  定义故障转移域(范围)

  

  需要另外建立一个网络实现,主机之间的宣告, (组播 多播 广播)

四个层次

高可用集群 HA_第1张图片

  1,最底层 messaging/infrastructure 节点之间互相宣告

  2,  决策这个集群是否拥有法定票数 membership  需要的一个服务 CCM (cluster consensus membership)  service

  3 集群资源管理器(重要) cluster resource manager  Resource Allocation 这些都保存在一个xml的文件中(CIB-Cluster information Base),只需要编辑一份,然后同步到其他的节点上。可以手动同步,

   RHCS 中有个服务监控  CCSD

   Designated coordinator  定义的协调员

   Policy engine 策略引擎 决定决策的

   Transition engine  转变引擎 过度者

   Local resource manager 本地资源管理器

  4 Resouces Agent 资源代理,真正的集群  类型LSB  遵循linux 规范的start脚本

          能够在本地实现管理服务的脚本       OCF   LSB具有更大的通用性 

Heartbeat 具实现HA集群 heartbeat自身所带的CRM功能不是很强大,所以需要另外的安装pacemaker,支持2-16个节点 正在提供服务的主节点 备节点

支持传递心跳信息的方法

避免非法获取心跳信息,为了集群的可靠性,互相传递心跳信息需要认证。

 集群中的信息

Heartbeat

 

配置文件  /etc/ha.d/ha.cf  heatbeat的配置文件

          心跳信息加密的方式对称加密

         Ip 地址 需要配置在别名 每个节点有个主地址 和别名地址 (是一个资源,通过资源管理器实现) haresouce实现

         Gratuitous ARP GARP) broadcast

  工具 /usr/lib/heartbeat/

         Resouce scripts  位置:/etc/ha.d/resource.d  或者 /etc/init.d 支持LSB的脚本

如何配置,并启动HA集群

 /etc/ha.d/ha.cf      配置

 /etc/ha.d/haresources 资源

 /etc/ha.d/authkeys   要求权限必须为600

1,安装 hearbeat软件 版本 3(比较难理解)以2为准

2,配置 /etc/ha.d/ha.cf

3. 配置 /etc/ha.d/ha.d/haresources

4. 配置 /etc/ha.d/authkeys

                                  配置和启动HA 

两个node ip 192.168.0.140  192.168.10.140

           192.168.0.141            +> 表示在文件中增加,或者修改某行为后面的内容

#vim /etc/sysconfig/network

+> HOSTNAME=node1.z.org

#hostname node1.z.org

#vim /etc/hosts

+> 192.168.0.140  node1.z.org node1

+>  192.168.0.141  node2.z.org node2

#cd /etc/sysconfig/network-scripts/

#vim ifcfg-eth0

+>BOOTPROTO=static

  IPADDR=192.168.0.140

  GETWAY=192.168.0.254

#vim ifcfg-eth1

  IPADDR=192.168.10.181

  NETMASK=255.255.255.0

# service network restart  配置好一台node 开始配置另外一个

#使用SCP的时候不需要密码,基于密钥的认证

#ssh-keygen -t rsa 生成密钥对 在node1

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2

#scp /etc/hosts node2:/etc 拷贝node1上得hosts文件

#scp /etc/sysconfig/network-scripts/ifcfg-eth:{0,1} node2:/etc/sysconfig/network-scripts/

#node2上修改ifcfg-eth0 ifcfg-eth1

# lftp 192.168.0.254

lftp 192.168.0.254:/pub> cd /pub/Sources/Heartbeat2

lftp192.168.0.254:/pub/Sources/Heartbeat2>mget heartbeat-2.1.4-9.el5.i386.rpm heartbeat-gui-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm  perl-MailTools-1.77-1.el5.noarch.rpm 

2288285 bytes transferred                                        

Total 6 files transferred

lftp 192.168.0.254:/pub/Sources/Heartbeat2> bye

# yum --nogpgcheck localinstall *.rpm

#cd /usr/share/doc/heartbeat-2.1.4/  这个目录里有heartbeat的配置文件

#cp authkeys haresources ha.cf /etc/ha.d

#cd /etc/ha.d

#vim ha.cf  配置主配置文件

+>logfile /var/log/ha-log  记录错误日志

+>udpport   694  默认传输心跳信息的端口

+>bcast eth1   广播的方式传输心跳信息

+>node   node1.z.org  节点的主机名,必须和主机上使用 uname -n看见的名字一致

+>node   node2.z.org   有几个节点就写几个node

Keepalive 2 

Deadtime 30

Warntime 10

Initdead 120     主机刚启动之后的等待时间

# dd if=/dev/urandom bs=512 count=1 | openssl md5  取得随即数

#vim  authkeys

+> auth 1

   1  md5  随机码

#Chmod 600 authskeys

#Vim haresources

 +>node1.z.org  192.168.0.186/24/eth0/192.168.0.255  httpd

   主节点名字   流动地址/子网掩码/广播地址    服务名字

# Yum -y install httpd

#echo " <h1>Web1</>" > /var/www/html/index.html http服务,一个主页面

#service httpd start  启动服务测试一下,服务是否能正常运行

#service httpd stop  停止服务,让集群服务按需要启动服务

#chkconfig httpd off 取消开机重启

#cp /etc/init.d/httpd  /etc/ha.d/resource.d/ 最好把启动脚本放在这个目录下

#scp -p authkeys haresource ha.cf node2:/etc/ha.d/  拷贝配置文件到node2  -p 保持文件的权限

#service heartbeat start  启动集群服务

#less /var/log/messages  查看日志信息

#netstat -tnlp           查看服务的端口是否监听

#cd /usr/lib/heartbeat     这里有工具模拟测试集群服务

#./hb_standby 把自己设置为主机

#./hb_takeover 取回位置

你可能感兴趣的:(高可用集群 HA)