- 论坛徽章:
- 0
|
linux上的 heartbeat 双机热备服务架设\r\n\r\n\r\nhttp://Camor.cublog.cn\r\n\r\n\r\n【一】 安装前环境设定\r\n==========================================================\r\n两台主机硬件环境(不必完全一致):\r\nCPU: Xeon 3G *2 (EM64T)\r\nMEM: 2G\r\nNIC: Intel 1G *2\r\neth0: 对外IP\r\neth1: 对内IP(HA专用)\r\n两台主机的eth1使用双机对联线直接连接。\r\n分区方式:\r\nFilesystem 容量 挂载点\r\n/dev/sda2 9.7G /\r\n/dev/sda6 45G /Datas\r\n/dev/sda1 99M /boot\r\nnone2.0G /dev/shm\r\n/dev/sda3 9.7G /opt\r\n另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。\r\n操作系统:\r\nRedHat Enterprise 4 Update2 (2.6.9-22 EL)\r\n预安装软件:\r\n@ X Window System\r\n@ GNOME Desktop Environment\r\n@ KDE Desktop Environment\r\n@ Editors\r\n@ Engineering and Scientific\r\n@ Graphical Internet\r\n@ Text-based Internet\r\n@ Authoring and Publishing\r\n@ Server Configuration Tools\r\n@ Development Tools\r\n@ Kernel Development\r\n@ X Software Development\r\n@ GNOME Software Development\r\n@ KDE Software Development\r\n@ Administration Tools\r\n@ System Tools\r\n\r\n\r\n【二】安装前网络环境设定:================================================================\r\nnode1: 主机名:servers201 ( HA01 )\r\neth0: 192.168.10.201 //对外IP地址\r\neth1: 10.0.0.201 //HA心跳使用地址\r\nnode2: 主机名:servers202 ( HA02 )\r\neth0: 192.168.10.202 //对外IP地址\r\neth1: 10.0.0.202 //HA心跳使用地址\r\n特别注意要检查以下几个文件:\r\n/etc/hosts\r\n/etc/host.conf\r\n/etc/resolv.conf\r\n/etc/sysconfig/network\r\n/etc/sysconfig/network-scripts/ifcfg-eth0\r\n/etc/sysconfig/network-scripts/ifcfg-eth1\r\n/etc/nsswitch.conf\r\n#vi /etc/hosts\r\nnode1的hosts内容如下:\r\n127.0.0.1 localhost.localdomain localhost\r\n192.168.10.201 servers201 HA01\r\n10.0.0.201 HA01\r\n10.0.0.202 HA02\r\n192.168.10.202 server202\r\nnode2的hosts内容如下:\r\n127.0.0.1 localhost.localdomain localhost\r\n192.168.10.202 servers202 HA02\r\n10.0.0.202 HA02\r\n10.0.0.201 HA01\r\n192.168.10.201 server201\r\n#cat /etc/host.conf\r\norder hosts,bind\r\n#cat /etc/resolv.conf\r\nnameserver 61.139.2.69 //DNS地址\r\n#cat /etc/sysconfig/network\r\nNETWORKING=yes\r\nHOSTNAME=servers201 //主机名\r\nGATEWAY=\"192.168.10.1\" //网关\r\nGATEWAY=\"eth0\" //网关使用网卡\r\nONBOOT=YES //启动时加载\r\nFORWARD_IPV4=\"yes\" //只允许IPV4\r\n#cat /etc/sysconfig/network-scripts/ifcfg-eth0\r\nDEVICE=eth0\r\nONBOOT=yes\r\nBOOTPROTO=static\r\nIPADDR=192.168.10.201\r\nNETMASK=255.255.255.0\r\nGATEWAY=192.168.10.1\r\nTYPE=Ethernet\r\nIPV6INIT=no\r\n#cat /etc/sysconfig/network-scripts/ifcfg-eth1\r\nDEVICE=eth1\r\nONBOOT=yes\r\nBOOTPROTO=none\r\nIPADDR=10.0.0.201\r\nNETMASK=255.255.255.0\r\nTYPE=Ethernet\r\n[node1] 与 [node2] 在上面的配置中,除了\r\n/etc/hosts\r\n/etc/sysconfig/network\r\n/etc/sysconfig/network-scripts/ifcfg-eth0\r\n/etc/sysconfig/network-scripts/ifcfg-eth1\r\n要各自修改外,其他一致。\r\n配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:\r\n/root#ping HA02\r\nPING HA02 (10.0.0.202) 56(84) bytes of data.\r\n64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms\r\n64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms\r\n64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms\r\n--- HA02 ping statistics ---\r\n3 packets transmitted, 3 received, 0% packet loss, time 2002ms\r\nrtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2\r\n\r\n\r\n【三】安装HA 与HA依赖包\r\n================================================================\r\nrpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不装\r\nrpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm\r\nrpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm\r\nrpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm\r\nrpm -Uvh ipvsadm-1.24-5.i386.rpm\r\n\r\n\r\n【四】 配置 HA的各配置文件\r\n================================================================\r\n---------------------------\r\n配置心跳的加密方式:authkeys\r\n---------------------------\r\n#vi /etc/ha.d/authkeys\r\n如果使用双机对联线(双绞线),可以配置如下:\r\n#vi /etc/hc.d/authkeys\r\nauth 1\r\n1 crc\r\n存盘退出,然后\r\n#chmod 600 authkeys\r\n---------------------------\r\n配置心跳的监控:haresources\r\n---------------------------\r\n#vi /etc/ha.d/haresources\r\n各主机这部分应完全相同。\r\nserver201 IPaddr::192.168.10.200 ipvsadm httpd\r\n指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 192.168.10.200 给eth0:0\r\n这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 192.168.10.200给server202的eth0:0\r\n---------------------------\r\n配置心跳的配置文件:ha.cf\r\n---------------------------\r\n#vi /etc/ha.d/ha.cf\r\nlogfile /var/log/ha_log/ha-log.log ## ha的日志文件记录位置。如没有该目录,则需要手动添加\r\nbcast eth1 ##使用eth1做心跳监测\r\nkeepalive 2 ##设定心跳(监测)时间时间为2秒\r\nwarntime 10\r\ndeadtime 30\r\ninitdead 120\r\nhopfudge 1\r\nudpport 694 ##使用udp端口694 进行心跳监测\r\nauto_failback on\r\nnode server201 ##节点1,必须要与 uname -n 指令得到的结果一致。\r\nnode server202 ##节点2\r\nping 192.168.10.1 ##通过ping 网关来监测心跳是否正常。\r\nrespawn hacluster /usr/lib64/heartbeat/ipfail\r\napiauth ipfail gid=root uid=root\r\ndebugfile /Datas/logs/ha_log/ha-debug.log\r\n---------------------------\r\n设置ipvsadm的巡回监测\r\n---------------------------\r\nipvsadm -A -t 192.168.10.200:80 -s rr\r\nipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m\r\nipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m\r\n执行后进行监测:\r\n#ipvsadm --list\r\n如果返回结果与下相同,则设置正确。\r\nIP Virtual Server version 1.2.0 (size=4096)\r\nProt LocalAddress:Port Scheduler Flags\r\n -> RemoteAddress:Port Forward Weight ActiveConn InActConn\r\nTCP 192.168.10.200:http rr\r\n -> server202:http Local 1 0 0\r\n -> server201:http Masq 1 0 0\r\n\r\n\r\n【五】 HA服务的启动、关闭以及测试================================================================\r\n启动HA: service heartbeat start\r\n关闭HA; service heartbeat stop\r\n系统在启动时已经自动把heartbeat 加载了。\r\n使用http服务测试 heartbeat\r\n首先启动httpd服务\r\n#service httpd start\r\n编辑各自主机的测试用html文件,放到/var/www/html/目录下。\r\n启动node1的heartbeat,并执行这个指令进行监控: heartbeat status\r\n\r\n\r\n【六】 防火墙设置\r\n================================================================\r\nheartbeat 默认使用udp 694端口进行心跳监测。 如果系统有使用iptables 做防火墙,应记住把这个端口打开。\r\n#vi /etc/sysconfig/iptables\r\n加入以下内容\r\n-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT\r\n意思是udp 694端口对 对方的心跳网卡地址 10.0.0.201 开放。\r\n#service iptables restart\r\n重新加载iptables。\r\n\r\n\r\n说明:本文于2006-10月间大体完成。期间在2台Server和2个虚拟机上均测试通过。但在写下这个文档的时候,因粗心而忘记了第五步骤里的[监控指令]了! 并且2台服务器也分别另作他用;系统重装又失去了虚拟机,所以无从再次验证。文中所说\"并执行这个指令进行监控: heartbeat status\"有可能有出入。具体修正,得等什么时候对服务器进行实际操作或者重装2个虚拟机,或找网络上其他文档。 |
|