熱烈祝賀臺州維博網絡的站長論壇隆重上線!(2012-05-28)    熱烈慶祝偉大的祖國60周年生日 點擊進來我們一起為她祝福吧(2009-09-26)    站長論壇禁止發布廣告,一經發現立即刪除。謝謝各位合作!.(2009-08-08)    熱烈祝賀臺州網址導航全面升級,全新版本上線!希望各位一如既往地支持臺州網址導航的發展.(2009-03-28)    臺州站長論壇恭祝各位新年快樂,牛年行大運!(2009-01-24)    臺州Link正式更名為臺州網址導航,專業做以臺州網址為主的網址導航!(2008-05-23)    熱烈祝賀臺州Link資訊改名為中國站長資訊!希望在以后日子里得到大家的大力支持和幫助!(2008-04-10)    熱烈祝賀臺州Link論壇改名為臺州站長論壇!希望大家繼續支持和鼓勵!(2008-04-10)    臺州站長論壇原[社會瑣碎]版塊更名為[生活百科]版塊!(2007-09-05)    特此通知:新臺州站長論壇的數據信息全部升級成功!">特此通知:新臺州站長論壇的數據信息全部升級成功!(2007-09-01)    臺州站長論壇對未通過驗證的會員進行合理的清除,請您諒解(2007-08-30)    臺州網址導航|上網導航誠邀世界各地的網站友情鏈接和友誼聯盟,共同引領網站導航、前進!(2007-08-30)    禁止發廣告之類的帖,已發現立即刪除!(2007-08-30)    希望各位上傳與下載有用資源和最新信息(2007-08-30)    熱烈祝賀臺州站長論壇全面升級成功,全新上線!(2007-08-30)    
便民網址導航,輕松網上沖浪。
臺州維博網絡專業開發網站門戶平臺系統
您當前的位置: 首頁 » Linux系統管理 » 雙機熱備配置(Heartbeat)引用

雙機熱備配置(Heartbeat)引用

論壇鏈接
  • 雙機熱備配置(Heartbeat)引用
  • 發布時間:2007-09-12 19:34:53    瀏覽數:15088    發布者:dingjianping    設置字體【   
:) 前言:
一. 安裝前環境設定
=======================================================================================================================
兩臺主機硬件環境可以不一樣,本人用的是vmware來做的實驗,還沒有在真實的在兩臺機器上安裝。
硬件環境:dell 1800(虛擬 2個機器)
軟件環境:vmware5 redhat as4 heartbeat2.0.4
環境描述:
兩臺計算機(兩個節點),一個共享SCSI硬盤盒(用于存儲共享,參考下邊"添加硬件")。每個節點都安裝支持共享總線的SCSI卡;每個節點有自己的系統磁盤;每個分別帶有兩塊以太網卡,(其中一塊用于網絡通訊,另一塊用于心跳功能。)。兩個節點的網絡設置如下:
節點1: 主機名為:www1,第一塊網卡(eth0)的IP地址:192.168.0.197 (用于網絡通訊) 。第二塊網卡(eth1)的IP地址:192.168.1.1 (用于心跳通訊) 。
節點2: 主機名為:www2,第一塊網卡(eth0)的IP地址:192.168.0.198 (用于網絡通訊) 。第二塊網卡(eth1)的IP地址:192.168.1.2 (用于心跳通訊) 。
vm里用eth1做心跳(只要互相可以ping就可以了)。實際安裝時,兩臺主機的eht1使用雙機對聯線直接連接。

vmware下快速安裝雙系統!^_^
1. 在d:\vmfile目錄下新建目錄linuxha2,在把d:\vmfile\linuxha1里面剛才安裝好的虛擬操作系統復制一份到linuxha2
這樣子,我們就得到了兩個虛擬的RedHat Advanced Server4了,當然,他們是一樣的,我們需要進行些修改。
2. 進入d:\vmfile\linuxha2,用寫字板打開linux.vmx,修改displayName = "Linuxha1"為displayName = "Linuxha2",這樣子,在vmware控制臺,你就看到兩個不同的名字了。盡管如此,如果你同時啟動兩個虛擬機,這兩個虛擬系統還是一樣的,所以,我們需要修改他們的ip地址,主機名字等。
3. 將linuxha2目錄中的系統啟動,修改主機名字
#vi /etc/sysconfig/network
將HOSTNAME=www1改為HOSTNAME=www2
接下來修改ip地址:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
將IPADDR=192.168.1.1改為IPADDR=192.168.1.2
修改/etc/hosts,參考下邊的步驟
4.Power off 這個虛擬機,這個樣子,我們就得到了兩個不同的系統,一個是linuxha1,位于d:\vmfile\linuhxad1,一個是linuxha2 位于d:\vmfile\linuxha2
添加硬件
在兩個系統都power off的狀態下。我們需要分別給兩個系統添加一塊網卡,還要添加一個共享磁盤
1.用vmware 打開linuxha1,注意不是power on 哦。在setting菜單下選擇configuration edtior
,點擊add,添加一塊網卡,這個就不需要講了吧。還需要添加一個虛擬磁盤,還是點add,硬件類型是Hard disk,然后”Creat a new virtual disk”,大小我分配了0.5G,并選擇上下面的“Allocate all disk space”.下一步是給共享磁盤起名字叫”sharedisk.pln”,然后確定。這樣子就添加好了。
2.用vmware 打開linuxha2,注意不是power on 哦。同樣添加一塊網卡。接著添加虛擬磁盤,這次是”Use an existing virtual disk”,然后選擇我們剛才在linuxone中創建的sharedisk.pln,按照提示就可以了。
3.磁盤和網卡都添加好了。這里,還需要注意,由于vmware中的系統啟動后會鎖定磁盤,所以當你啟動linuxha1后共享磁盤被鎖定了,你的linuxha2就起不來了。因此,我們需要處理一下先。首先,到d:\vmfile\linuxha1下,用寫字板打開linux.vmx,在最后一行加入
Disk.locking = false
然后到d:\vmfile\linuxha2,同樣修改linux.vmx, 在最后一行加入
Disk.locking = false
保存退出。
4.好了,到此為止,兩個系統的硬件都配置好了.

分區方式:
[[email protected] ha.d]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
7.4G 2.8G 4.3G 40% /
/dev/sda1 99M 9.0M 85M 10% /boot
*安裝啟動服務后
[[email protected] ha.d]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
7.4G 2.8G 4.3G 40% /
/dev/sda1 99M 9.0M 85M 10% /boot
none 94M 0 94M 0% /dev/shm
/dev/sdb 1008M 34M 924M 4% /ha ##由ha自動加載

二.安裝前網絡環境設定:
========================================================
node1: 主機名:www1 ( HA01 )
eth0: 192.168.0.197 //對外IP地址
eth1: 192.168.1.1 //HA心跳使用地址
node2: 主機名:www2 ( HA02 )
eth0: 192.168.0.198 //對外IP地址
eth1: 192.168.1.2 //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.0.197 www1 HA01
192.168.1.1 HA01
192.168.1.2 HA02
192.168.0.198 www2
node2的hosts內容如下:
127.0.0.1 localhost.localdomain localhost
192.168.0.198 www2 HA02
192.168.1.2 HA02
192.168.1.1 HA01
192.168.0.197 www1
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 202.98.0.68 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www1 //主機名
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.197
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.1
NETMASK=255.255.255.0
[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 (192.168.1.2) 56(84) bytes of data.
64 bytes from HA02 (192.168.1.2): icmp_seq=0 ttl=64 time=0.198 ms
64 bytes from HA02 (192.168.1.2): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from HA02 (192.168.1.2): 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

【四】 配置 heartbeat
使用 heartbeat,必須配置三個文件:authkeys、ha.cf 和 haresources。
---------------------------
配置心跳的加密方式:authkeys
---------------------------
#vi /etc/ha.d/authkeys
如果使用雙機對聯線(雙絞線),可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存盤退出,然后
#chmod 600 authkeys
---------------------------
配置心跳的監控:haresources
---------------------------
#vi /etc/ha.d/haresources
1.沒有共享磁盤的情況下配置
各主機這部分應完全相同。
www1 192.168.0.200 ipvsadm httpd
指定www1調用ipvsadm啟動http服務,系統附加一個虛擬IP 192.168.0.200 給eth0:0
這里如果www1宕機后,www2可以自動啟動http服務,并新分配IP 192.168.0.200給www2的eth0:0
2.有共享磁盤情況的配置
www1 192.168.0.200 Filesystem::/dev/sdb::/ha::ext3 ipvsadm httpd
設置www1為主節點,集群服務器的ip地址為192.168.0.200,netmask 集群的服務有httpd,還有共享磁盤/dev/sdb
該文件只有一行,其含義就是,當主節點www1宕機時,自動啟用備用節點里www2來提供 服務,在切換到www2上時,自動啟動httpd服務,同時,將/dev/sdb1掛接到/ha。
*配置HA高可用,不要設置NFS掛載和mysql服務在啟動服務器時自動運行,也就是說,把與HA相關資源交給Heartbeat HA去自動管理。
3.由NFS服務的設置
www1 10.4.66.88 Filesystem::192.168.0.252:/data::/data::nfs mysql.server

這一行配置了3個資源,第一個是IP地址,第二個是NFS共享數據,
第三個是mysql.server服務,文件在/etc/rc.d/init.d/目錄,
可以使用mysql.server start或stop來啟動或停止服務。
---------------------------
配置心跳的配置文件:ha.cf
---------------------------
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log ## ha的日志文件記錄位置。如沒有該目錄,則需要手動添加
logfacility local0
#bcast eth1 ##使用eht1做心跳監測,這個我沒有設置
keepalive 2 ##設定心跳(監測)時間時間為2秒
#warntime 10 ##超出該時間間隔未收到對方節點的心跳,則發出警告并記錄到日志中,這個也沒有設置
deadtime 30 ##超出該時間間隔未收到對方節點的心跳,則認為對方已經死亡
initdead 120 ##在某些系統上,系統啟動或重啟之后需要經過一段時間網絡才能正常工作,該選項用于解決這種情況產生的時間間隔。取值至少為deadtime的兩倍。
udpport 694 ##使用udp端口694 進行心跳監測
auto_failback on ##heartbeat的兩臺主機分別為主節點和從節點。主節點在正常情況下占用資源并運行所有的服務,遇到故障時把資源交給從節點并由從節點運行服務。在該選項設為on的情況下,一旦主節點恢復運行,則自動獲取
node www1 ##節點1,必須要與 uname -n 指令得到的結果一致。
node www2 ##節點2
ping 192.168.10.1 ##通過ping 網關來監測心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
---------------------------
設置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
-> www2:http Local 1 0 0
-> www1: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 www1#service heartbeat start
將看到不用的頁面
在主節點(www1)上啟動heartbeat服務:/etc/init.d/heartbeat start。 如果不出現錯誤,web服務應該被heartbeat啟動,同時heartbeat為主節點設置IP地址192.168.0.200。使用ifconfig eth0:0可以看到如下信息:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:D8:FD:EB
inet addr:192.168.0.200 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14970 errors:0 dropped:0 overruns:0 frame:0
TX packets:14977 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3624073 (3.4 Mb) TX bytes:3626223 (3.4 Mb)
Interrupt:19 Base address:0x10a0

同時/dev/sdb,應該被掛接。使用df -h,可以看到的信息包含下面的行:
/dev/sdb 485M 8.1M 452M 2% /ha

在node2(www2)上啟動heartbeat:/etc/init.d/heartbeat start。 使用ifconfig eth0:0可以看到如下信息:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:E4:1E:F7
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x10a0
表明現在node2節點沒有被啟用。
使用df -h,看到的信息不包含下面的行:
/dev/sdb1 485M 8.1M 452M 2% /ha
表明/dev/sdb1沒有被加載。
直接關閉節點1的電源或者在www1上執行service heartbeat stop命令(模擬故障)。 最慢30秒后,在節點2(www2) 上執行ifconfig eth0:0,可以看到eth0:0已經被設置為192.168.0.200
還可以在客戶機上這樣來確定 ^_^
1.www1掛起服務時的狀態,仔細看197和200的mac地址是一樣的
D:\>arp -a
Interface: 192.168.0.138 --- 0x10005
Internet Address Physical Address Type
192.168.0.197 00-0c-29-71-4b-12 dynamic
192.168.0.200 00-0c-29-71-4b-12 dynamic
192.168.0.254 00-01-50-55-63-5b dynamic
2.www2掛起服務 mac地址變啦
D:\>arp -a
Interface: 192.168.0.138 --- 0x10005
Internet Address Physical Address Type
192.168.0.200 00-0c-29-6c-54-91 dynamic
192.168.0.254 00-01-50-55-63-5b dynamic
(發現個小問題,如果把兩臺節點都手動stop以后,必須重新啟動機器才能重新正常啟用heartbeat服務)
【六】 防火墻設置
====================================================
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端口對 對方的心跳網卡地址 192.168.1.2 開放。
#service iptables restart
重新加載iptables。
娛樂休閑專區A 影視預告B 音樂咖啡C 英語階梯D 生活百科
網頁編程專區E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技術區 N 系統管理O 服務器架設P 網絡/硬件Q 編程序開發R 內核/嵌入
管理中心專區S 發布網址T 版主議事U 事務處理
陕西快乐10分玩法 理财平台商赢金服 排列三试机号近10 加拿大卑诗快乐8预测 2020年幸运赛车走势图带坐标 老版新快三街机 江西时时彩基本走势图 深圳风采56期开奖查询 陕西快乐10分下载什么app 11选5遗漏数据查询 双面盘1.999