資安論壇

行政院 國家資通安全會報 - 技術服務中心 - 資安論壇 http://forum.icst.org.tw/
現在的時間是 2012年 10月 22日, 00:23

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 14 篇文章 ] 
發表人 內容
文章發表於 : 2010年 2月 6日, 18:44 
離線

註冊時間: 2002年 9月 25日, 10:57
文章: 8868
來自: R.O.C
架設 High Availability (HA) Cluster (Heartbeat) (CentOS 5.4 x86)

這篇主要是 High Availability (HA , 高可用性) 的研究測試
以兩台主機做 HA,當一台掛了後,另一台自動接手工作

以 Apache Web Server (httpd) 當測試的服務
使用的套件是 HeartBeat

環境 :

虛擬IP : 192.168.128.10

Server A :
主機名稱 : server1
eth0 192.168.128.11

Server B :
主機名稱 : server2
eth0 192.168.128.12

1. 設定主機名稱

在 Server A 上執行 uname -n 或 hostname 確認一下目前的主機名稱是甚麼
代碼:
 
[root@server1 ~]# uname -n
server1


代碼:
[root@server1 ~]# hostname
server1

如果想設定主機名稱為server1,方法如下
代碼:
 
[root@server1 ~]# hostname  server1

同理,Server B設定個想要的名稱

另外 vim /etc/hosts,增加兩行 (Server A 和 Server B 上都要各設定兩行)
192.168.128.11 server1
192.168.128.12 server2

PS : 如果想要 hostname 在 reboot 後設定仍有效,必須修改 /etc/sysconfig/network 的內容
PS: 名稱不一定要 server1 和 server2,只要和稍後設定的一相同即可

2. 安裝與設定 heartbeat 套件

(1) 安裝

在 Server A 和 Server B 都執行
代碼:
 
[root@server1 ~]# yum  -y  install  heartbeat  httpd

(httpd 不是必須的,但是我們是測試 Web Server 的 HA,所以需要安裝)

(2) 複製範例

先找一下設定檔(也是說明檔案)被 yum 安裝去哪了
代碼:
 
[root@server1 ~]# find / -name authkeys
/usr/share/doc/heartbeat-2.1.3/authkeys

如果找不到,請再執行一次
代碼:
 
[root@server1 ~]# yum  -y  install  heartbeat

( CentOS 對 heartbeat 套件安裝似乎有點問題,所以需要 yum 安裝兩次才能成功)

開始設定工作,把文件拷貝過來當設定檔案,再修改
代碼:
 
cp  /usr/share/doc/heartbeat-2.1.3/authkeys     /etc/ha.d/
cp  /usr/share/doc/heartbeat-2.1.3/ha.cf        /etc/ha.d/
cp  /usr/share/doc/heartbeat-2.1.3/haresources  /etc/ha.d/

(3) 設定 authkeys

執行 vi /etc/ha.d/authkeys,在最後加上
代碼:
 
auth 1
1 crc

改變權限
代碼:
 
chmod  600  /etc/ha.d/authkeys

(4) 設定 ha.cf

因為這個檔案說明太多,尋找和修改不方便
執行下面把原來的換個名稱,把 ha.cf.old 檔案過濾掉註解,剩下的輸出到 ha.cf 檔案中再修改
代碼:
mv  /etc/ha.d/ha.cf   /etc/ha.d/ha.cf.old
sed -e '/^#/d' -e '/^$/d' /etc/ha.d/ha.cf.old    >    /etc/ha.d/ha.cf

然後再去修改 /etc/ha.d/ha.cf 內容 (參數說明去看剛剛備份的 /etc/ha.d/ha.cf.old)
代碼:
 
logfile /var/log/ha.log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node server1
node server2
ping 192.168.128.2
respawn hacluster     /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster


注意,node 值必須和兩台主機的 uname -n 執行結果相符合
可以用 ping gateway ip 來偵測
logfile 是設定 heartbeat 執行情況的 log

(5) 設定 haresources

執行 vi /etc/ha.d/haresources,最後加入一行
代碼:
 
server1 192.168.128.200  httpd

第1個參數是 HA 的主要電腦的 hostname
第2個參數是虛擬介面 IP
第3個參數服務名稱

(6) 把 heartbeat 設定全部複製到 Server B 上
代碼:
 
scp  -r  /etc/ha.d/   [email protected]:/etc/


(7) 建立網站首頁

在 Server A 上執行
代碼:
 
echo  "I am Server A"  >  /var/www/html/index.html

在 Server B 上執行
代碼:
 
echo  "I am Server B"  >  /var/www/html/index.html

因為 haresources 中定義了資源,heartbeat 會自動啟動和停止 httpd,不需要我們插手


4. 啟動 HeartBeat

請在 Server A 和 Server B 啟動 HeartBeat
代碼:
service  heartbeat  restart

這可能需要 1, 2 分鐘

5. 測試

(1) Server A 正常時
用瀏覽器連上 http://192.168.128.11,應該會出現 "I am Server A "
用瀏覽器連上 http://192.168.128.12,應該會出現 "連線失敗" 一類訊息
用瀏覽器連上 http://192.168.128.10,應該會出現 "I am Server A "

(2) Server A 當掉時
假設 Server A 當了,心跳 (heartbeat) 停了,請執行
代碼:
service  heartbeat  stop

或把 Server A 關機

(工作接管可能需要 1,2分鐘)

用瀏覽器連上 http://192.168.128.11,應該會出現 "連線失敗" 一類訊息
用瀏覽器連上 http://192.168.128.12,應該會出現 "I am Server B "
用瀏覽器連上 http://192.168.128.10,應該會出現 "I am Server B "

(3) Server A 又復原

假設 Server A 復原,心跳 (heartbeat) 復原,請執行
代碼:
service  heartbeat  start


(工作接管可能需要 1,2分鐘)

用瀏覽器連上 http://192.168.128.11,應該會出現 "I am Server A "
用瀏覽器連上 http://192.168.128.12,應該會出現 "連線失敗" 一類訊息
用瀏覽器連上 http://192.168.128.10,應該會出現 "I am Server A "

這樣表示測試成功

(完)

PS : 防火牆設定

代碼:
# 開機時自動啟動 iptables 防火牆
chkconfig iptables on
# 現在立刻啟動 iptables 防火牆
service iptables start
# 開放 UDP port 694 連線
iptables -A RH-Firewall-1-INPUT -p udp --dport 694 -j ACCEPT

iptables -A RH-Firewall-1-INPUT -s 192.168.128.101 -p udp --dport 694 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -s 192.168.128.102 -p udp --dport 694 -j ACCEPT

iptables -A RH-Firewall-1-INPUT -s 192.168.128.0/24 -p udp --dport 694 -j ACCEPT
# 儲存防火牆規則到 /etc/sysconfig/iptables,否則防火牆重新啟動後臨時增加的設定會消失
iptables-save

_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816


回頂端
 個人資料  
 
文章發表於 : 2010年 5月 24日, 10:40 
離線

註冊時間: 2005年 9月 23日, 18:11
文章: 33
來自: Kaohsiung
大大可以有Document可以Download下來閱讀嗎?

_________________
H/P:0912106330
E-mail:[email protected]
CCNP / CCNA / MCITP / MCTS / MCSA / MCP / TCAE Certificated
TQC 專業級 Linux 系統管理工程師 Certificated
Network Security Packet Analysis(NSPA) Class C+P2P Certificated


回頂端
 個人資料  
 
文章發表於 : 2010年 5月 24日, 12:52 
離線

註冊時間: 2002年 9月 25日, 10:57
文章: 8868
來自: R.O.C
pan21 寫:
大大可以有Document可以Download下來閱讀嗎?


在 IE 或 FireFox 選 [檔案] 下拉選單,選 [另存新檔]

_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816


回頂端
 個人資料  
 
文章發表於 : 2010年 5月 28日, 13:21 
離線

註冊時間: 2005年 9月 23日, 18:11
文章: 33
來自: Kaohsiung
小弟是說作成PDF或DOC的Document,不是從網頁印下來的,因為在機房裝機時是不能連接網路的。

_________________
H/P:0912106330
E-mail:[email protected]
CCNP / CCNA / MCITP / MCTS / MCSA / MCP / TCAE Certificated
TQC 專業級 Linux 系統管理工程師 Certificated
Network Security Packet Analysis(NSPA) Class C+P2P Certificated


回頂端
 個人資料  
 
文章發表於 : 2010年 10月 14日, 11:12 
離線

註冊時間: 2010年 10月 14日, 11:07
文章: 1
pan21 寫:
小弟是說作成PDF或DOC的Document,不是從網頁印下來的,因為在機房裝機時是不能連接網路的。


這........................
請問你的簽名檔有這麼多證照都是寫好玩的嗎?
這麼簡單的技術請熟練!謝謝~
所見即所得!你即然都能回應了~連COPY貼上也懶~還得要PDF~如果是我的學生我一定當死你


回頂端
 個人資料  
 
文章發表於 : 2010年 10月 15日, 07:25 
離線

註冊時間: 2002年 9月 25日, 10:57
文章: 8868
來自: R.O.C
http://www.megaupload.com/?d=C823KWNJ

_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816


回頂端
 個人資料  
 
文章發表於 : 2010年 10月 15日, 09:07 
離線

註冊時間: 2005年 9月 23日, 18:11
文章: 33
來自: Kaohsiung


回頂端
 個人資料  
 
文章發表於 : 2010年 10月 15日, 09:09 
離線

註冊時間: 2002年 9月 25日, 10:57
文章: 8868
來自: R.O.C
pan21 兄請注意講話言詞

_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816


回頂端
 個人資料  
 
文章發表於 : 2012年 8月 16日, 11:20 
離線

註冊時間: 2007年 7月 19日, 14:49
文章: 1
感恩大大的分享
:)


回頂端
 個人資料  
 
文章發表於 : 2012年 10月 19日, 00:18 
離線

註冊時間: 2012年 10月 19日, 00:15
文章: 3
大大,請問如果Server A機器沒有當機,而是httpd 這個service 當掉了,會轉到server B 的httpd service嗎?


回頂端
 個人資料  
 
文章發表於 : 2012年 10月 19日, 11:17 
離線

註冊時間: 2002年 9月 25日, 10:57
文章: 8868
來自: R.O.C
請看 (5) 設定 haresources
這裡設定偵測的資源是 httpd
所以只要 A 電腦的 httpd 服務死掉,就會切換

_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816


回頂端
 個人資料  
 
文章發表於 : 2012年 10月 19日, 16:45 
離線

註冊時間: 2012年 10月 19日, 00:15
文章: 3
謝謝大大的回答.

我現在的situation是, 有1台機器, 是CentOS 系統, 系統上運行同一個service (不是 httpd, mysql等等), 這個service叫做arc_syslog, 他是專門收集log, 然後forward 到backend. 現在已經在運行, 而且正常工作.

但是如果這台機器本身壞了, 或者arc_syslog 這個service 當了, 那麼就收不到log.
現在要做的是, 想根據大大上面的guide去改善做成Clustering.

我做了如下:
1. 現在起了2台機器, 系統CentOS 64bit, 各自都安裝了那個service (arc_syslog)
2. 2台機器單獨測試, 都能收到log 和forward log.
3. 按照大大的guide:
3.1 兩台機器分別是server1,server2
3.2 兩台機器都是2個網絡卡
3.3 server1: eth0 (172.16.21.100), server2: eth0 (172.16.21.101)
3.4 server1: heartbeat ip (10.0.0.100), server2: heartbeat ip(10.0.0.101)
3.5 各自安裝了heartbeat, 按照大大的guide 去config
3.6
引言回覆:
server1 192.168.128.200 httpd
, 我把這個改為server1 172.16.21.102 arc_syslog
問題來了, 我先stop arc_syslog 這個service, 然後測試,
代碼:
service heartbeat start
, 但是arc_syslog 沒有起來.
message:
代碼:
Starting High-Availability services: INFO: Resource is stopped   Done.


請教大大! 如何能做到我需要的效果:
1. 這台機器本身壞了, 會switch 到backup 機器的 service
2. arc_syslog 這個service 當了,會switch 到backup 機器的 service


回頂端
 個人資料  
 
文章發表於 : 2012年 10月 20日, 22:57 
離線

註冊時間: 2002年 9月 25日, 10:57
文章: 8868
來自: R.O.C
ps aux 可以看到 arc_syslog 啟動的程序名稱是甚麼 ?

_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816


回頂端
 個人資料  
 
文章發表於 : 2012年 10月 21日, 22:20 
離線

註冊時間: 2012年 10月 19日, 00:15
文章: 3
大大,名稱就是arc_syslog. 這個也是在/etc/init.d/下


回頂端
 個人資料  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 14 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章

搜尋:
前往 :  
POWERED_BY
正體中文語系由 竹貓星球 維護製作