【一】
安装前
环
境
设
定
==========================================================
两台主机硬件 环 境 ( 不必完全一致 ) :
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" />
==========================================================
两台主机硬件 环 境 ( 不必完全一致 ) :
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
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
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 心跳使用地址
===========================================================================
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 心跳使用地址
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
/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
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
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
order hosts,bind
#cat /etc/resolv.conf
nameserver 61.139.2.69 //DNS 地址
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
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
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
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
要各自修改外,其他一致。
/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
/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
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
===========================================================================
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
===========================================================================
---------------------------
配置心跳的加密方式 :authkeys
---------------------------
#vi /etc/ha.d/authkeys
如果使用双机
对联线
(
双
绞线
)
,可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
#vi /etc/hc.d/authkeys
auth 1
1 crc
存
盘
退出,然后
#chmod 600 authkeys
#chmod 600 authkeys
---------------------------
配置心跳的 监 控: haresources
---------------------------
#vi /etc/ha.d/haresources
各主机 这 部分 应 完全相同。
配置心跳的 监 控: 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
这 里如果 server201 宕机后, server202 可以自 动 启 动 http 服 务 ,并新分配 IP 192.168.10.200 给 server202 的 eth0:0
---------------------------
配置心跳的配置文件: ha.cf
---------------------------
#vi /etc/ha.d/ha.cf
配置心跳的配置文件: 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
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 的巡回 监测
---------------------------
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
#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 加 载 了。
===========================================================================
启 动 HA: service heartbeat start
关闭 HA; service heartbeat stop
系 统 在启 动时 已 经 自 动 把 heartbeat 加 载 了。
使用
http
服
务测试
heartbeat
首先启 动 httpd 服 务
#service httpd start
编辑 各自主机的 测试 用 html 文件,放到 /var/www/html/ 目 录 下。
启 动 node1 的 heartbeat ,并 执 行 这 个指令 进 行 监 控 : heartbeat status
首先启 动 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 。
===========================================================================
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月间大体完成。期间在2台Server和2个虚拟机上均测试通过。但在写下这个文档的时候,因粗心而忘记了第五步骤里的[监控指令]了! 并且2台服务器也分别另作他用;系统重装又失去了虚拟机,所以无从再次验证。文中所说"并执行这个指令进行监控: heartbeat status"有可能有出入。具体修正,得等什么时候对服务器进行实际操作或者重装2个虚拟机,或找网络上其他文档。
引此为戒!
转载于:https://blog.51cto.com/netdl/30944