Linux 高可用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

环境

     

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.1.1硬件:                                                                           

1)节点服务器:2

2)网络(公用网,私用网络)和网卡(4个,每个节点2个)

3)心跳线(交叉线)

 

1.1.2软件

1centos 5系统

2heartbeat软件

1.1.3拓扑结构

     <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

1.1.4实验规划:

IP
规划:主服务器(A主用节点):

Eth0:192.168.60.241   node1   lan ip

Eth0:0192.168.60.243  
    virtual IP

Eth1  10.1.1.2       priv1    privateIP

            
备用服务器(B备用节点):

 

Eth0:192.168.60.240  node2   lan ip

Eth1:10.1.1.3       priv2     privaeip

 

1.1.5实验目的:主服务器与备用服务器间内部通信,相互监控工作,当主服务器失效后备用服务器自动切换;主服务器恢复后备服务器自动切换回。

 

1.1.6 heartbeat技术原理

    
1)集群成员一致性管理模块(CCM

        CCM
用于管理集群节点成员,管理节点之间关系和节点之间资源分配。负责检测主次节点的运行状态。

      
2)本地资源管理器(LRM

        LRM
负责本地资源的启动,停止和监控,一般由LRM守护进程lrmd和监控进程Stonith组成lrmd守护进程负责节点之间的通信;Stonith通常是一个设备,主要用于监控节点状态,当一个节点出现问题是处于正常的节点会通过FENCE设备将其重启或关机以释放IP,等资源,始终保持被一个资源拥有,防止资源争用发生。

      
3)集群资源管理模块(CRM

        CRM
用于处理节点和资源的关系,管理节点对资源的使用。当一个节点出现故障时负责协调另一个节点上的进程进行合理的资源接管。

1.1.7配置步骤

   
 
1)分别配置A,B节点:

使用命令:vi /etc/hosts

代码:        192.168.60.241             node1

              192.168.60.240             node2

              10.1.1.2                   priv1

              10.1.1.3                   priv2

 

      
2)安装heartbeat

      
3)配置A服务器( 主节点)heartbeat

             
先将hearteaat-2.1.3的(authkeysha.cfharesource)复制到目录/etc/ha.d/中。

cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d

cp /usr/share/doc/heartbeat-2.1.3/ha.cf  /etc/ha.d/

cp /usr/share/doc/heartbeat-2.1.3/haresources  /etc/ha.d/

1>
设置主配置文件。(/etc/ha.d/ha.cf

进入编辑器:vi /etc/ha.d/ha.cf

注:“#”号后面的内容是对代码的说明。

代码如下:

logfile /var/log/ha-debug   #
日志存放位置

bcast eth1    #
指明心跳使用是以太网广播方式,并且是在eth1接口上广播。

keepalive 2   #
心跳间隔时间为2秒(每2秒中,在eth1上发一次广播)。

deadtime  20  #
指备用节点在20秒钟没收到主节点心跳信号,则无条件的接管主节点上的服务资源。

warntime 10   #
指备用节点在10秒钟没收到主节点信号,,就会像日志中写入警告,但不会接管主节点服务资源。

Initdead 100  #
系统启动或重启动之后需要经过一段时间网络才能正常工作。此项就是解决这种时间间隔。设置只少是deadtime时间的2倍。

ucast eth1 10.1.1.2 10.1.1.3 #
使用eth1(此接口与bcast接口一致)的udp单播心跳,后面跟主节点和备用节点的ip地址。

auto_failback on  #
表示主节点恢复后,是否服务资源自动切回到主节点。On表示

一旦主节点恢复正常,就会获取回服务资源并且取代备用节点。Off表示,主节点恢复正常后变为备用节点,而原备用节点变为主节点。

node  node1 #
对主节点命名为node1,可以通过“uname -n”查看。

node   node2 #
对备用节点命名为node2.

ping 192.168.60.1 #
选择ping 节点仅测试网络连接。最不要选择集群中的成员。

respawn   hacluster  /usr/lib/heartbeat/ipfail 
此项是可用配置,与heartbeat一起启动和关闭的进程,该进程是与heartbeat集成的插件,遇到故障可以自动重新启动.其中ipfail,此进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连通性。其中hacluster表示启动ipfail进程的身份。

2>
配置资源文件(/etc/ha.d/haresources

Haresources
文件用于指定双机系统的主节点、集群ip、子网掩码,广播地址以及启动的服务等集群资源,文件的每行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用冒号隔开,两个HA节点上该文件必须完全一致,此文件的一般格式为:

   Node-name network <resource-group>

进入:vi /etc/ha.d/haresources

代码:node1 IPaddr::192.168.60.243/24/eth0  mysqld

 
注:node1为主节点名,后面的 IP地址为虚拟ip

3>
配置认证文件

Vi /etc/ha.d/authkeys

代码:auth 1

crc

#2 sha1 sha1_any_password

#md5 md5_any_password

注:authkeys文件用于设定heartbeat的认证方式,共3中认证:crc,md5sha1.3种认证安全依次提高。如果heartbeat集群运行在安全的网络上,用crc方式;如果每个节点硬件配置很高,建议使用sha1.这种认证安全级别最高;如果是处于网络安全和系统资源之间可用md5认证方式。

4>
设置认证文件权限:chmod 600 /etc/ha.d/authkeys

 

      
4)配置备份节点

            scp -r root@192.168.60.241:/etc/ha.d/*  /etc/ha.d

 

      
5)设置主节点和备份节点同步

启动ntp时间同步服务器

代码:service ntp   start

使用命令:ntpdate校准每个节点的时间,主节点与备用节点时间差应该在10秒以内

       
6)分别启动每个节点的heartbeat:

              /etc/init.d/heartbeat

1.1.8测试配置是否成功:

1>
正常和关闭主节点的heartbeat

使用命令:/etc/init.d/heartbeat stop

ifconfig查看主节点的网卡信息,应该看到主节点集群服务IP地址已释放,备份节点已经接管了集群的服务IP。用集群外的PCping 命令测试集群服务IP,应该是连通性的。

 
接着,将主节点heartbeat正常启动,启动后,备用节点自动释放集群IP。备份节点释放资源与主节点绑定资源是同步进行的。

 

  2>
主节点上拔去网线

当拔去主节点连接LAN网线后,heartbeat插件ipfail通过ping测试可以立即测试到网络连接失败,接着释放资源。此时,备用节点ipfail插件也会检测到主节点出现网络故障,等待主节点释放资源后,备用节点马上接管。