歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux維護

Linux上的heartbeat雙機熱備服務架設

【一】 安裝前環境設定

兩台主機硬件環境(不必完全一致):

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。

 

Copyright © Linux教程網 All Rights Reserved