菜鸟学Linux 第088篇笔记 配置heartbeat基于crm管理





内容总览

上节回顾

CIB Cluster Information Base

/usr/lib/hearbeat下的文件解析

组播地址

配置heartbeat 基于crm来进行资源管理

基于gui的方式来实现集群的配置

基于hb v2, crm来实现MySQL高可用集群






上节回顾

web

vip,http,filesystem



HA services




Resource Type

primitive (native)

group

clone

STONITH (Shot The Other Node In The Head)

Cluster Filesystem

dlm: Distributed Lock Manager

master/slave

drbd: distribution replicated block device 



资源粘性

资源是否倾向于留在当前节点

正数:乐意

负数:离开


资源约束

location

colocation

order



heartbeat

authkeys

ha.cf

node

keepalive

bcast,mcast,ucast(先其一)

haresource


HA:

时间同步

ssh互信

主机名称要与uname -n保持一致,并通过/etc/hosts解析




CIB Cluster Information Base 集群信息库

同haresources配置文件




/usr/lib/hearbeat下的文件解析

ha_propagate 当某台节点上的资源信息配置文件更改,用来将其同步其它节点使用的

haresources2cib.by 用来将/etc/ha.d/haresources所配置的资源转换为xml格式 并存放

   至/var/lib/heartbeat/crm目录下

send_arp 当节点间资源切换时用来发广播自问自答,自己的节点再回复广播(mac变更)

pengine (policy engine) 计算

tengine (transaction engine) 协调

quorumd 法定票数

lrmd (local resource manager)

ccm (cluster configuration manager) 管理cib提供的专用管理工具




CRM (Cluster Resource Manager)

为那些非ha-aware的应用程序提供调用的基础平台

提供命令行式的交互来管理资源、配置等


crmd 进程  提供一个管理的API

提供GUI接口

提供CLI接口


crm --> pacemaker 管理功能变得非常强大



组播


原理简介


  组播报文的目的地址使用D类IP地址, 范围是从224.0.0.0到239.255.255.255。D类

址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径

是从地址路由到目的地址,利用“逐跳”(hop-by-hop)的原理在IP网络中传输。然而在

ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都

加入 到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组

中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和

离开组播组。



组播组分类

  组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为

永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久

组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使

用的ip组播地址,可以被临时组播组利用。

  224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不

做分配,其它地址供路由协议使用;

  224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;

  224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内

有效;

  239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。



常用预留组播地址

  列表如下:

  224.0.0.0 基准地址(保留)

  224.0.0.1 所有主机的地址 (包括所有路由器地址)

  224.0.0.2 所有组播路由器的地址

  224.0.0.3 不分配

  224.0.0.4 dvmrp 路由器

  224.0.0.5 ospf 路由器

  224.0.0.6 ospf dr

  224.0.0.7 st 路由器

  224.0.0.8 st 主机

  224.0.0.9 rip-2 路由器

  224.0.0.10 Eigrp 路由器

  224.0.0.11 活动代理

  224.0.0.12 dhcp 服务器/中继代理

  224.0.0.13 所有pim 路由器

  224.0.0.14 rsvp 封装

  224.0.0.15 所有cbt 路由器

  224.0.0.16 指定sbm

  224.0.0.17 所有sbms

  224.0.0.18 vrrp

  以太网传输单播ip报文的时候,目的mac地址使用的是接收者的mac地址。但是在传

输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使

用的是组播mac地址。组播mac地址是和组播ip地址对应的。

iana(internet assigned number authority)规定,组播mac地址的高24bit为0x01005e

,mac 地址的低23bit为组播ip地址的低23bit。

  由于ip组播地址的后28位中只有23位被映射到mac地址,这样就会有32个ip组播地址

映射到同一mac地址上。




配置heartbeat 基于crm来进行资源管理

crm respawn 在ha.cf添加此条则表示要基于crm来管理资源


配置后将其配置文件同步到其它节点

# /usr/lib/heartbeat/ha_propagate



配置heartbeat 使用组播发送 心跳信息 (在生产环境中建议使用此种方式)



基于gui的方式来实现集群的配置 (注意一定要连接到DC的节点上)

heartbeat-gui 需要安装此rpm包

调用heartbeat-gui需要使用账号密码,安装heartbeat会自动创建该账号,

只需要修改其密码即可  hacluster账号

# passwd hacluster


运行图形窗口的heartbeat-gui(前提你的远程访问接口得支持,xmanager支持)

# hb_gui &

参数解析

linux-ha

with quorum 具有法定票数

No Quorum Policy 无法定票数所采取的动作 stop(默认) igonre freeze

Symmetric Cluster 对称自动流转 非对称需要指定流转

Stonith Action

Default Resource Stickiness

Default Resource Failure Stickiness

Is Managed Default 是否可管理

Cluster Delay


Advanced


Resources

add

native

IPaddr::192.168.11.100/16/eth0

gruop

location

order

colocation





定义组可以将资源都限定放到同一个节点中(资源的顺序即为启动资源的顺序)


定义资源的约束也可以做限定,限定其运行的节点,启动顺序等

先添加单个资源








基于hb v2, crm来实现MySQL高可用集群


nfs, samba, iscsi


NFS: MySQL app, data


/etc/my.cnf --> /etc/mysql/mysql.cnf

$MYSQL_BASE

--default-extra-file=


node1 uid gid mysql, mysql


3台电脑 两台ha  一台nfs


nfs ip 192.168.11.105

ha1 ip 192.168.11.101

ha2 ip 192.168.11.102



        1. 在nfs系统里创建lvm (logical volume manager)分区

         pvcreate

         vgcreate

         lvcreate -L #G -n name vg-name

        

         将lvm添加到开机挂载 /etc/fstab

         /dev/myvg/mydata /mydata ext3 defaults 0 0

        

         # mkdir /mydata

         # mount -a

        

        

        2. 创建mysql用户mysql组 id 3306 (注意ha也要创建相同ID的mysql)

         groupadd -g gid g-name

         useradd -u uid -g g-name -s /sbin/nologin -M mysql

        

         mkdir /mydata/data

         chown -R mysql.mysql /mydata/data

        

        

        3. 建立nfs共享目录

         vim /etc/exports

         /mydata/data 192.168.11.101/32(no_root_squash,rw),192.168.11.102(rw)

         (切记要配置no_root_squash要不然mysql初始化无法进行)

         exportfs -arv

        

         ha手动先测试是否可以挂载,并可以进行读写

         先创建相同的mysql组id和mysq用户id 

         然后再进行挂载测试 可以先给mysql一个家目录 测试可以写操作后 再改为不可登录 

         测试成功后umount

        

        4. ha1配置二进制mysql安装初始化

         安装和初始化这里不细说前边章节有详细安装过程

        

         注意先将nfs目录挂载至本地再执行如下选项 测试成功后将挂载再次umount

        

         配置/etc/my.cnf

         datadir = /mydata/data

         innodb_file_per_table = 1

        

         添加mysql服务脚本时,,切记不要让其开机自动启动

         chkconfig --add mysql

         chkconfig mysql off

        

         ha2只需要安装二进制mysql软件和将nfs目录挂载即可

         复制ha1上的配置文件my.cnf mysql服务脚本

         如果测试完成没有问题后将mysql服务关闭,并umount

        

        

        5.基于hb_gui来配置mysql的高可用

        ha mysql

         vip, mysql, filesystem

        

         vip --> filesystem --> mysqld

        

         # ha_gui &

         个人使用的xmanager必须是可以远程启动图形客户端的远程访问软件

        

         将其配置为同一个组 注意启动的前后顺序