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

來源:互聯網
上載者:User

【一】 安裝前環境設定
==========================================================
兩台主機硬體環境(不必完全一致):
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。

說明:本文於2006-10月間大體完成。期間在2台Server和2個虛擬機器上均測試通過。但在寫下這個文檔的時候,因粗心而忘記了第五步驟裡的[監控指令]了! 並且2台伺服器也分別另作他用;系統重裝又失去了虛擬機器,所以無從再次驗證。文中所說"並執行這個指令進行監控: heartbeat status"有可能有出入。具體修正,得等什麼時候對伺服器進行實際操作或者重裝2個虛擬機器,或找網路上其他文檔。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.