以下是在 A 和 B 两台数据库服务器上均需要创建的用户 :
用户 | 组 | 备注 |
mysql | mysql | 运行 MySQL 实例的用户 |
hacluster | haclient | 运行 heartbeat 的用户 |
一. FreeNAS 配置
@ 版本: 0.735
@NFS 配置
1 .打开 , 登录 FreeNAS, 默认的用户名是 admin, 密码是 freenas
2 .在左边导航栏找到 NFS, 点击进入。
3. 选中 enable, 然后点击 Save and Restart 起用 NFS 服务
4. 添加 NFS 共享 , 如下图
5. 通过 SecureCRT 或 Putty 工具登录 nas 主机 (192.168.0.34), 创建以下两个目录 , 用于保存数据库数据 .
# mkdir /mnt/da0/db1
# mkdir /mnt/da0/db2
# chmod –R 777 /mnt/da0
6. 分别登录 MySQL1 和 MySQL2, 创建本地挂载点 , 两机均需要执行以下命令 .
# mkdir -p /var/mysql/db1
# mkdir –p /var/mysql/db2
7. 测试 MySQL1 和 MySQL2 挂载 NAS 的 NFS 共享
如下图:
# mount -t nfs 192.168.0.34:/mnt/da0/db1 /var/mysql/db1
# mount –t nfs 192.168.0.34:/mnt/da0/db2 /var/mysql/db2
# df // 查看挂载情况
或者是: # showmount –a 192.168.0.34 // 查看
以上证实 , 两台挂载 NAS 的 NFS 共享没有问题 , 这是保证以下 HA 测试成功的基础 .
二. Heartbeat 安装
@ 版本 : STABLE-2.1.4.tar.bz2
@ 下载 : wget
@ 依赖包安装:
libnet( 网络相关的库 )
# wget http://jaist.dl.sourceforge.net/sourceforge/libnet-dev/libnet-1.1.4.tar.gz
安装:
# tar zxvf libnet-1.1.4.tar.gz && cd libnet* # ./configure && make && make install
注 : 这个版本 libnet 还不错 , 以前遇到的 libnet 源代码都存在很多问题 .
@ 安装 Heartbeat
# mkdir /usr/share/doc/heartbeat-2.1.4
# tar zxvf STABLE-2.1.4.tar.bz2
# cd Heartbeat-STABLE-2-1-STABLE-2.1.4
# ./ConfigureMe configure
# make && make install
@FAQ
1. WARNING: Cimom not found, MOF will not be installed! CIMOM 即公共信息模型对象管理器( Common Information Model Object Manager ),是一个描述操作系统构成单元的对象数据库, 为 MMC 和脚本程序提供了一个访问操作系统构成单元的公共接口。 注 : 从网上查到以上介绍 , 不清楚这里是不是指这下概念 , 这里先忽略这个警告 . 2. configure:2199: result: configure: WARNING: The GUI managment module needs GNU/TLS header files ==================== configure:2199: result: configure: WARNING: The quorum server module needs GNU/TLS header files ==================== |
三.H A 简单配置并进行 IP 和磁盘漂移测试
@HA 简易配置
进入 heartbeat 解压源文件根目录下 :
# cd /opt/Heartbeat-STABLE-2-1-STABLE-2.1.4
# cp doc/authkeys /etc/ha.d/
# cp doc/ha.cf /etc/ha.d/
# cp doc/haresources /etc/ha.d/
对三个文件做简单修改 ( 进入 /etc/ha.d 目录 )
1. more authkeys
auth 2 2 sha1 HI! |
# chmod 600 authkeys
以上是设置文件权限,这个是必须的,否则 heartbeat 可能无法正常起动。
2. sed -e '/^#/d' -e '/^$/d' ha.cf
keepalive 2 deadtime 30 warntime 10 initdead 60 udpport 694 # 使用 udp 端口 694 做心跳监测 bcast eth0 # 通过 eth0 做心跳检测 auto_failback on watchdog /dev/watchdog node db_cluster1 # 节点定义 node db_cluster2 # 节点定义 ping 192.168.0.34 # 检查自己的状态是否正常 respawn root /usr/lib/heartbeat/ipfail apiauth ipfail gid=root uid=root crm on respawn hacluster /usr/lib/heartbeat/cibmon -d apiauth cibmon uid=hacluster use_logd yes |
3. sed '/^#/d' haresources
db_cluster1IPaddr::192.168.0.32 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs db_cluster1IPaddr::192.168.0.33 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs |
# mv haresources haresources.bak // 最好这样重命名 , 否则日志里有警告
4. 生成 cib.xml(/var/lib/heartbeat/crm/cib.xml)
# /usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources.bak |
5. 两个节点配置 /etc/hosts 文件 , 配置是一样的 .
192.168.0.30 db_cluster1 192.168.0.31 db_cluster2 |
6. heartbeat 加入到系统服务 , 以随系统起动 .
# chkconfig --add heartbeat
以后,重启 heartbeat 可以
# service heartbeat start/stop/restart
@ 基本测试
原则 , 一次只开启一台测试 , 直到没有问题 , 将出现问题的配置更新到第二台 , 再进行第二台测试 , 直到全部 OK.
# service heartbeat start # 起动 heartbeat
# tail –f /var/log/message # heartbeat 运行日志查看
以下是正常启动的图示 :
< 第一阶段测试 :>
测试内容 :@ 节点 1 单独起动 , 是否正常
@ 节点 2 单独起动 , 是否正常
@ 起动节点 1, 测试资源切换
##########################################################
注 : Heartbeat 起动过程需要做许多事 , 所以需要等 2 分钟左右 , 才能完全起动 , 当然 , 这个得根据你的配置和你的应用环境 .
可以通过 # crm_mon –i2 查看资源状态 ,2 代表每 2 秒刷新一次
< 节点 1 资源起动状态正常 >
< 节点 2 资源起动状态正常 >
现在 , 节点 1 处于关闭状态 , 将节点 1 起动 .
< 节点 1 和 2 两节点状态均正常 , 并且实现了资源向节点 1( 主节点 ) 切换 > , 其配置是通过在 /etc/ha.d/haresources 配置 , 如下图 , 左边的 db_cluster1 被指定为主节点 .
##################################################################################### 第二阶段测试 :
测试内容 :@ 配置每个节点负责一个资源组
@ 增加一网卡 , 单独用于心跳监测
##################################################################################### @ 测试内容 1 配置 , 在每个节点上做以下修改 .
db_cluster1IPaddr::192.168.0.32 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs db_cluster1IPaddr::192.168.0.33 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs |
将以上修改为 :
db_cluster1IPaddr::192.168.0.32 Filesystem::192.168.0.34:/mnt/da0/db1::/var/mysql/db1::nfs db_cluster2IPaddr::192.168.0.33 Filesystem::192.168.0.34:/mnt/da0/db2::/var/mysql/db2::nfs |
然后 重新生成 cib.xml, 执行以下命令前 , 最好先手动删除一下 /var/lib/heartbeat/crm/ 下的文件 .
# /usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources.bak |
下一篇:
本文出自 “” 博客,请务必保留此出处