1 前言
heartbeat用於搭建雙機熱備環境,可以通過專門的心跳線來連線雙機,也可以通過普通的網線來連線。
官方**:
主備伺服器的ha.cf, authkyes, haresources完全一樣即可。
3.1 編輯hertbeat主配置檔案ha.cf,2個主機上的內容一樣。
以下是需要開啟的配置,ha.cf裡面有詳細說明。
vi /usr/local/etc/ha.d/ha.cf
## ha的日誌檔案記錄位置。如沒有該目錄,則需要手動新增
logfile /var/log/ha-log #file to write other messages to
logfacility local0 #這個是設定heartbeat的日誌,這裡是用的系統日誌
##設定心跳(監測)時間時間為2秒
keepalive 2 #多長時間檢測一次
warntime 5 #連續多長時間聯絡不上後開始警告提示
deadtime 20 #連續多長時間聯絡不上後認為對方掛掉了(單位是妙)
initdead 120 #這裡主要是給重啟後預留的一段忽略時間段(比如:重啟後啟動網路等,如果在網路還沒有通,keepalive檢測肯定通不過,但這時候並不能切換)
#採用bond0的udp廣播用來傳送心跳資訊
bcast bond0
#採用網絡卡bond0的udp單播來通知心跳,ip應為對方ip,建議採用單播。當乙個網段有多台這樣cluster話,則一定要採用單播,否則每組cluster都會看到對方的節點,從而報錯。
#ucast bond0 192.168.0.128
##使用udp埠694 進行心跳監測
u***ort 694
auto_failback off #恢復正常後是否需要再自動切換回來,一般都設為off。
##節點1,必須要與 uname -n 指令得到的結果一致。
node dingwy-as4-vmware-nod1
##節點2
node dingwy-as4-vmware-nod2
##通過ping 閘道器來監測心跳是否正常
ping 192.168.0.2
hopfudge 1
deadping 5
#指定和heartbeat一起啟動、關閉的程序#respawn hacluster /usr/local/lib64/heartbeat/ipfail#apiauth ipfail gid=haclient uid=hacluster
#是否採用v2 style模式,在三節點以上時一定要開啟
#crm on
從heartbeat的官方文件來看,目前的ping節點還沒什麼實際用途,只是用於檢測節點的連通性,並不作為節點切換的真正依據。在將來的新版本中也許會這麼做。
3.2 編輯雙機互聯驗證檔案:authkeys
vi /usr/local/etc/ha.d/authkeys
auth 1
1 crc
chmod 600 /usr/local/etc/ha.d/authkeys
注意authkeys的許可權一定要是600.
3.3 編輯集群資源檔案:haresources
配置好ha.cf檔案之後,便是haresources檔案。該檔案列出集群所提供的服務以及服務的預設所有者。 注意:兩個集群節點上的該檔案必須相同。集群的ip位址是該選項是必須配置的,不能在haresources檔案以外配置該位址, haresources檔案用於指定雙機系統的主節點、集群ip、子網掩碼、廣播位址以及啟動的服務等。其配置語句格式如下:
node-name network-config
vi /usr/local/etc/ha.d/haresources
dingwy-as4-vmware-nod1 192.168.0.129 oracle10g
其中node-name指定雙機系統的主節點,取值必須匹配ha.cf檔案中node選項設定的主機名中的乙個,node選項設定的另乙個主機名成為從節點。network-config用於網路設定,包括指定集群ip、子網掩碼、廣播位址等。resource-group用於設定heartbeat啟動的服務,該服務最終由雙機系統通過集群ip對外提供。在本文中我們假設要配置的ha服務為apache和samba。
在haresources檔案中需要如下內容:
該行指定在啟動時,節點linuxha1得到ip位址192.168.85.3,並啟動apache和samba。在停止時,heartbeat將首先停止smb,然後停止apache,最後釋放ip位址192.168.85.3。這裡假設命令「uname –n」的輸出為「primary.mydomain.com」-如果輸出為「primary」,便應使用「primary」。
正確配置好haresources檔案之後,將ha.cf和haresource拷貝到/etc/ha.d目錄。
如何配置,可以參見haresources,裡面也有詳細的說明。
有幾個注意事項:
1).資源組的第一列是我們在ha.cf配置檔案中的node之一,而且應該是當前準備作為primary節點的那乙個node。
2).每一行代表乙個資源組,如果一行寫不下可以用" "換行
3).資源組啟動順序是從左往右,關閉的順序是從右往左
4).指令碼的引數通過::來分隔和傳遞
5).乙個資源組裡面不同資源之間以空格分隔
6).不同的資源組之間沒有必然關係
7).每個資源都是乙個角本,可以是在/etc/init.d目錄下面的,也可以是/usr/local/etc/ha.d/resource.d目錄下面的角本。這些角本必須要支援*** start;*** stop;模式。
8).關於service ip的資源設定格式詳見haresources檔案。
9).如果mysql是編譯安裝的話, 則需要修改/etc/init.d/mysql檔案中的basedir和datadir兩個引數
3.4 主備伺服器hosts
主機hosts檔案:
vi /etc/hosts
192.168.0.128 dingwy-as4-vmware-nod1 localhost.localdomain localhost
192.168.0.130 dingwy-as4-vmware-nod2
備機hosts檔案:
vi /etc/hosts
192.168.0.130 dingwy-as4-vmware-nod2 localhost.localdomain localhost
192.168.0.128 dingwy-as4-vmware-nod1
4 切換測試
測試切換不外乎以下幾種:
1).手工呼叫heartbeat的節點切換指令碼
2).拔掉網線,測試在primary節點的網路斷開後的切換情況,通過測試,在拔掉網線後,當主節點發現無法和standby節點無法通訊後,會在log中記錄warn資訊,如果延續時間達到在ha.cf中設定的時長後,會開始釋放資源,standby節點發現無法和主節點通訊一段時間(ha.cf設定)後,開始嘗試啟動資源並將自己active成primary節點。切換過程除ha.cf中設定的時長之外的時間段同樣非常短。這裡容易出現cluster腦**的問題。如果採用雙master的話,就不存在這個問題。
3). shutdown primary主機,測試是否能夠正常切換。
4). 主節點機器掉電,是否能夠正常切換。
5 heartbeat管理
啟動和關閉heartbeat的方法:
/etc/init.d/hearbeat start或service heartbeat start
/etc/init.d/hearbeat stop或service heartbeat stop
手工切換:
/usr/local/share/heartbeat/hb_standby
2009/06/03_00:35:00 going standby [all].
service heartbeat status
heartbeat ok [pid 13763 et al] is running on alsme_probe3 [alsme_probe3]...
檢視heartbeat狀態
service heartbeat status
heartbeat ok [pid 13763 et al] is running on alsme_probe3 [alsme_probe3]...
轉 A2W W2A T2A T2W 等巨集
如果你覺得使用 widechartomultibyte,multibytetowidechar 等函式比較麻煩 眾多的引數,緩衝區的分配與銷毀等。那麼可以使用 a2w w2a t2a t2w 等巨集來代替,它們對上面兩個函式進行了封裝。在使用這些巨集之前,應該包含標頭檔案 atlconv.h 並在呼...
2 基礎控制項2
transform 的預設值為 1,0,0,1,0,0 nslog nsstringfrom 可以列印其他型別的 比如類 affine transform a ffine transform 的初始化為 make make 只能改變一次 不可重複改變 如果想要重複改變 則使用去掉 make 的方法t...
什麼是P2P,O2O,B2B,B2C,C2C模式
最近網際網路行業各種to的模式搞得人暈頭轉向,我也是在這整理一下,防止在聽別人裝b的時候對答不流 p2p peer to peer 對等網路 可以簡單的定義成通過直接交換來共享計算機資源和服務,而對等計算模型應用層形成的網路通常稱為對等網路。在p2p網路環境中,成千上萬臺彼此連線的計算機都處於對等的...