http://anxiongbo.blog.51cto.com/805770/167705

 
CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第1张图片                以下是在 A B 两台数据库服务器上均需要创建的用户 :
用户
备注
mysql
mysql
运行 MySQL 实例的用户
hacluster
haclient
运行 heartbeat 的用户
 
一. FreeNAS 配置
       @ 版本: 0.735
       @NFS 配置
         1 .打开 http://192.168.0.34/, 登录 FreeNAS, 默认的用户名是 admin, 密码是 freenas

               CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第2张图片
 
         2 .在左边导航栏找到 NFS, 点击进入。

              CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第3张图片
 
       3. 选中 enable, 然后点击 Save and Restart 起用 NFS 服务
 
        CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第4张图片
 
       4. 添加 NFS 共享 , 如下图
        
      CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第5张图片
              CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第6张图片
       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  // 查看
        
  
 
        CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第7张图片
 
        
        CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第8张图片
以上证实 , 两台挂载 NAS NFS 共享没有问题 , 这是保证以下 HA 测试成功的基础 .
二. Heartbeat 安装
       @ 版本 : STABLE-2.1.4.tar.bz2
       @ 下载 : wget http://hg.linux-ha.org/lha-2.1/archive/STABLE-2.1.4.tar.bz2
       @ 依赖包安装:
       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 秒刷新一次
            CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第9张图片
             
              < 节点 1 资源起动状态正常 >
             
              CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第10张图片
              < 节点 2 资源起动状态正常 >
              现在 , 节点 1 处于关闭状态 , 将节点 1 起动 .
              CentOS5+FreeNAS+Heartbeat+MySQL5.1(一机多实例互备)详解(一)_第11张图片
< 节点 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
 
 
 
下一篇:http://anxiongbo.blog.51cto.com/805770/167706