【一】 安装前
==========================================================
两台主机硬件 ( 不必完全一致 )
CPU: Xeon 3G *2 (EM64T)
MEM: 2G
NIC:  Intel 1G *2
eth0:
IP
eth1:
IP(HA )<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

两台主机的 eth1 使用双机 对联线 直接 接。

分区方式:
Filesystem  
容量  
/dev/sda2    9.7G  /
/dev/sda6     45G  /Datas
/dev/sda1     99M  /boot
none2.0G  /dev/shm
/dev/sda3    9.7G  /opt

另外 台主机 应预 500M raw 或者更多来作 共用空 HA 使用。

操作系
RedHat Enterprise 4 Update2 (2.6.9-22 EL)
安装 件:
@ X Window System
@ GNOME Desktop Environment
@ KDE Desktop Environment
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Authoring and Publishing
@ Server Configuration Tools
@ Development Tools
@ Kernel Development
@ X Software Development
@ GNOME Software Development
@ KDE Software Development
@ Administration Tools
@ System Tools


 

【二】安装前网 络环 定:
===========================================================================
node1:
主机名: servers201 ( HA01 )
eth0:  192.168.10.201       //
IP 地址
eth1:  10.0.0.201           //HA
心跳使用地址

node2: 主机名: servers202 ( HA02 )
eth0:  192.168.10.202       //
IP 地址
eth1:  10.0.0.202           //HA
心跳使用地址

注意要 检查 以下几个文件:
/etc/hosts
/etc/host.conf
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitch.conf

#vi /etc/hosts
node1
hosts 内容如下:
127.0.0.1        localhost.localdomain   localhost
192.168.10.201   servers201              HA01
10.0.0.201       HA01
10.0.0.202       HA02
192.168.10.202   server202

node2 hosts 内容如下 :
127.0.0.1       localhost.localdomain   localhost
192.168.10.202  servers202              HA02
10.0.0.202      HA02
10.0.0.201      HA01
192.168.10.201  server201

#cat /etc/host.conf
order hosts,bind

#cat /etc/resolv.conf
nameserver 61.139.2.69    //DNS
地址

#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers201           //
主机名
GATEWAY="192.168.10.1"    //

GATEWAY="eth0"           //
使用网卡
ONBOOT=YES               //
动时
FORWARD_IPV4="yes"       //
只允 IPV4

#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.201
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
TYPE=Ethernet
IPV6INIT=no

#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.201
NETMASK=255.255.255.0
TYPE=Ethernet

[node1] [node2] 在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。

配置完成后, 试试 在各自主机上 ping 方的主机名, 应该 可以 ping :
/root#ping HA02
PING HA02 (10.0.0.202) 56(84) bytes of data.
64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms

--- HA02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2


 

【三】安装 HA HA
===========================================================================
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm  //
可以不装
rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
rpm -Uvh ipvsadm-1.24-5.i386.rpm


 

【四】 配置 HA 的各配置文件
===========================================================================
---------------------------
配置心跳的加密方式 :authkeys
---------------------------
#vi /etc/ha.d/authkeys

如果使用双机 对联线 ( 绞线 ) ,可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc

退出,然后
#chmod 600 authkeys

---------------------------
配置心跳的 控: haresources
---------------------------
#vi /etc/ha.d/haresources
各主机 部分 完全相同。

server201 IPaddr::192.168.10.200 ipvsadm httpd

指定 server201 ipvsadm http ,系 附加一个虚 IP 192.168.10.200 eth0:0
里如果 server201 宕机后, server202 可以自 http ,并新分配 IP 192.168.10.200 server202 eth0:0

---------------------------
配置心跳的配置文件: ha.cf
---------------------------
#vi /etc/ha.d/ha.cf

logfile /var/log/ha_log/ha-log.log   ## ha 的日志文件 记录 位置。如没有 需要手 添加
bcast eth1     ##
使用 eth1 做心跳 监测
keepalive 2    ##
定心跳 ( 监测 ) 时间时间为 2
warntime 10
deadtime 30
initdead 120
hopfudge 1
udpport 694    ##
使用 udp 端口 694 行心跳 监测
auto_failback on
node server201  ##
1 ,必 要与 uname -n 指令得到的 果一致。
node server202  ##
2
ping 192.168.10.1   ##
ping 监测 心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
debugfile /Datas/logs/ha_log/ha-debug.log

---------------------------
ipvsadm 的巡回 监测
---------------------------
ipvsadm -A -t 192.168.10.200:80 -s rr
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m

行后 监测
#ipvsadm --list
如果返回 果与下相同, 则设 置正确。
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.10.200:http rr
  -> server202:http               Local   1      0          0
  -> server201:http               Masq    1      0          0


 

【五】 HA 的启 关闭 以及 测试
===========================================================================
HA: service heartbeat start
关闭 HA; service heartbeat stop
在启 动时 heartbeat 了。

使用 http 务测试 heartbeat
首先启 httpd
#service httpd start
编辑 各自主机的 测试 html 文件,放到 /var/www/html/ 下。
node1 heartbeat ,并 个指令 : heartbeat status


 

【六】 防火 墙设
===========================================================================
heartbeat
使用 udp 694 端口 行心跳 监测 如果系 有使用 iptables 做防火 应记 住把 个端口打
#vi /etc/sysconfig/iptables
加入以下内容
-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT
意思是 udp 694 端口 方的心跳网卡地址 10.0.0.201 放。
#service iptables restart
重新加 iptables



明:本文于2006-10大体完成。期2Server2个虚机上均测试。但在写下个文档的候,因粗心而忘了第五步骤里的[控指令]了! 并且2台服器也分另作他用;系重装又失去了虚机,所以无从再次验证文中所"个指令: heartbeat status"有可能有出入。具体修正,得等什么时实际操作或者重装2个虚机,或找网上其他文档。
引此戒!