Linux叢集種類
l 高可用性叢集:
§ 這類叢集中比較著名的有Turbolinux TurboHA、Heartbeat、Redhat RHCS等。
l 負載均衡叢集:
§ Turbolinux Cluster Server、Linux Virtual Server都屬于負載均衡叢集。
l 高性能計算叢集:
§ 這類軟體有Turbolinux EnFusion、SCore、rocks cluster等。
HA軟體
l Heartbeat是一個守護程式,向其客戶提供叢集基礎架構(通信和成員)服務。
l heartbeat最核心的包括兩個部分,心跳監測部分和資源接管部分.
§ 心跳監測可以通過網絡鍊路和序列槽進行,它們之間互相發送封包來告訴對方自己目前的狀态,如果在指定的時間内未受到對方發送的封包,那麼就認為對方失效,這時需啟動資源接管子產品來接管運作在對方主機上的資源或者服務。
Heartbeat應用
l HA主機拓撲圖
§ 兩台主機連接配接到以太網
§ 兩台主機共享存儲
§ mysql資料庫使用共享存儲
2台 CentOS 6.3
Host1 192.168.0.119
Host2 192.168.0.120
Host3 192.168.0.116
配置host1 192.168.0.119 雙網卡
eth0 :192.168.0.119
eth1 : 172.16.100.1
ifconfig eth1 172.16.100.1 netmask 255.255.0.0 broadcast 172.16.255.255 up 啟動eth1
# ifconfig lo:0 192.168.0.100 netmask 255.255.255.255 broadcast 192.168.0.100 up #VIP
# route add -host 192.168.0.100 dev lo:0 #加一條主機路由表項
配置host2 192.168.0.120 雙網卡
eth0: 192.168.0.120
eth1: 172.16.100.2
ifconfig eth1 172.16.100.2 netmask 255.255.0.0 broadcast 172.16.255.255 up
在2台伺服器上 添加各自解析主機名
192.168.0.119 host1
192.168.0.120 host2

# rpm -e --nodeps gnutls-2.8.5 cluster-glue-libs-1.0.5 resource-agents
如果沒解除安裝會與下面的heartbeat-2.1.3-3.el5.centos沖突
# rpm -ivh PyXML
# rpm -ivh heartbeat-pils
# yum -y install telnet
# rpm -ivh heartbeat-stonith
# rpm -ivh gnutls
# rpm -ivh heartbeat 裝這個的時候需要先安裝上面的lzo和libgnutls 才能裝上 因為我的就報錯需要這2個
#yum –y install perl
配置Apache(Host1, Host2配置相同)
Apache是通過VIP通路的,VIP是:192.168.0.100,在兩台Web伺服器配置以192.168.0.100通路的虛拟主機。
在Apache的配置檔案中設定以下的項
ServerName 192.168.0.100
Listen 192.168.0.100:80
分别在/var/www/html下寫一個index.html 網頁檔案進行測試分别是:
1)HostA
2)HostB
下面是真正開始配置
Host1
# 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/
# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
編輯authkeys檔案
# vi /etc/ha.d/authkeys
auth 1
1 crc
去掉注釋
authkeys檔案的權限為600
# chmod 600 /etc/ha.d/authkeys
編輯haresources
# vi /etc/ha.d/haresources
添加一行:
host1 192.168.0.100 httpd
第一列為預設主機,第二列為虛拟IP,第三列為需要實作高可用的服務名稱(在/etc/init.d清單内)
編輯ha.cf
# vi /etc/ha.d/ha.cf
去掉注釋,并編輯
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth1 172.16.100.2 #使用單點傳播通知對方host2位址
auto_failback on #主節點恢複正常服務後,是否取回資源
node host1
node host2
ping 192.168.220.2 #測試外部網絡連通性,通常使用一個外部網關
host2 配置
和上面的一樣 隻需改一個地方
ucast eth1 172.16.100.1 #使用單點傳播通知對方host1位址
host1和host2啟動service heartbeat start
service httpd start
host1,host2,host3 關閉selinux 以及iptables ip6tables
然後在 host3 即可浏覽 http://12.168.0.100
可以看到 host1 的index.html 的索引檔案内容
我們可以假設host1關機了 在host2 裡 tail -f /var/log/messages 可以看到一些提示資訊。當再次重新整理host3的 網頁時 會發現 顯示的是host2 的索引檔案内容
本文轉自潘闊 51CTO部落格,原文連結:http://blog.51cto.com/pankuo/1368762,如需轉載請自行聯系原作者