分类: LINUX
2008-04-27 23:13:02
【一】 安装前环境设定
========================================================== 两台主机硬件环境(不必完全一致): CPU: Xeon 3G *2 (EM64T) MEM: 2G NIC: Intel 1G *2 eth0: 对外IP eth1: 对内IP(HA专用) 两台主机的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。 |