菜鸟学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必须是可以远程启动图形客户端的远程访问软件
将其配置为同一个组 注意启动的前后顺序