Heartbeat+httpd+NFS 實現高可用的Web服務器

準備工作

1、實驗拓撲圖

wKiom1S02QTQcxOvAAFJSxjKOk0076.jpg


2、實驗時最好事先關閉防火牆與SELinux (兩節點都要配置)
node1,node2:
[root@node ~]# service iptables stop  
[root@node ~]# vim /etc/selinux/config  
SELINUX=disabled 


3、節點之前主機名互相解析:一定確保主機名和uname -n一致

[root@node ~]# vim /etc/hosts
10.10.0.224  node1.test.com  node1  
10.10.0.225  node2.test.com  node2


4、節點時間必須同步node1,node2: 

[root@node ~]# ntpdate 10.10.0.11 
[root@node ~]# date 

Tue Jan 13 16:41:30 CST 2015


5、節點之間配置SSH互信

node1:

[root@node1 ~]# ssh-keygen  -t rsa -f ~/.ssh/id_rsa  -P '' 
[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected] 
[root@node1 ~]# ssh node2 
[root@node2 ~]# ifconfig

node2:

[root@node2 ~]# ssh-keygen  -t rsa -f ~/.ssh/id_rsa  -P '' 
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected] 
[root@node2 ~]# ssh node1 
[root@node1 ~]# ifconfig


一、安裝相關軟件(兩節點都需要安裝)

1.heartbeat     安裝組件說明
heartbeat     核心組件  *   

heartbeat-devel     開發包   

heartbeat-gui     圖形管理接口 *   

heartbeat-ldirectord     爲lvs高可用提供規則自動生成及後端realserver健康狀態檢查的組件   

heartbeat-pils     裝載庫插件接口 *   

heartbeat-stonith     爆頭接口 *

注:帶*表示必須安裝


2.安裝heartbeat (node1,node2)
[root@node ~]# yum -y install heartbeat*


3.安裝httpd
node1:
[root@node1~]# yum install -y httpd 
[root@node1 ~]# service httpd start  
啓動 httpd:                                              [確定]  
[root@node1 ~]# echo "node1.test.com" > /var/www/html/index.html

測試訪問頁面

測試完成之後需要停用httpd,並禁止開機啓動

[root@node1 ha.d]# service httpd stop  
停止 httpd:                                              [確定]  
[root@node1 ha.d]# chkconfig httpd off  

node2:
[root@node1~]# yum install -y httpd 
[root@node1 ~]# service httpd start  
[root@node1 ~]# echo "node2.test.com" > /var/www/html/index.html

測試訪問頁面

測試完成之後需要停用httpd,並禁止開機啓動

[root@node1 ha.d]# service httpd stop   
[root@node1 ha.d]# chkconfig httpd off  


二、配置heartbeat

1、配置文件說明
[root@node1 ~]# cd /etc/ha.d/  
[root@node1 ha.d]# ls  
harc  rc.d  README.config  resource.d  shellfuncs  shellfuncs.rpmsave、

說明:安裝好的heartbeat默認是沒有配置文件的,但提供了配置文件樣本
[root@node1 heartbeat-2.1.4]# cp /usr/share/doc/heartbeat-3.0.4/{authkeys ha.cf haresources} /etc/ha.d/

說明:三個配置文件是我們需要的分別爲,authkeys、ha.cf、haresources 
authkeys #是節點之間的認證key文件,我們不能讓什麼服務器都加入集羣中來,加入集羣中的節點都是需要認證的

ha.cf #heartbeat的主配置文件

haresources #集羣資源管理配置文件(在heartbeat所有版本中都是支持haresources來配置集羣中的資源的)


2.配置authkeys文件
[root@node1 ha.d]# openssl rand -base64 8     #生成密鑰隨機數  

[root@node1 ha.d]# vim authkeys 
#auth 1  
#1 crc  
#2 sha1 HI!  
#3 md5 Hello! 
auth 1 
1 md5 a4ef87crg

[root@node1 ha.d]# chmod 600 authkeys      #修改密鑰文件的權限爲600  

3.配置ha.cf文件
[root@node1 ha.d]# vim ha.cf

主要修改兩處(其它都可以默認):
(1).修改心跳信息的傳播方式(這裏是廣播)
bcast   eth0

(2).配置集羣中的節點數
node    node1.test.com  
node    node2.test.com

4.配置haresources文件
[root@node1 ha.d]# vim haresources 
node1.test.com IPaddr::10.10.0.11/24/eth0 httpd

5.複製以上三個配置文件到node2上
[root@node1 ha.d]# scp authkeys ha.cf haresources node2:/etc/ha.d/  

6.啓動node1與node2

[root@node1 ha.d]# ssh node2 "service heartbeat start" 
[root@node1 ha.d]# service heartbeat start          

三、測試web集羣

1.查看啓動的服務
[root@node1 ha.d]# netstat -ntulp  

2.查看IP
[root@node1 ha.d]# ifconfig  

3.測試

4.故障演示
1).關閉node1上的heartbeat
[root@node1 ha.d]# service heartbeat stop     #將node1中的heartbeat關閉  

2).查看node2上的IP
[root@node2 ~]# ifconfig # 查看node2的IP,可以看到立即轉移到node2上  

3).測試

大家可以看到,集羣已經轉移到node2上,從而實現了Web高可用。


四、共享存儲

1.配置NFS服務器
[root@nfs ~]# mkdir -pv /web 
[root@nfs ~]# vim /etc/exports 
/web/      10.10.0.0/16(ro,async) 
[root@nfs /]# echo 'NFS Server' > /web/index.html 
[root@nfs /]# service portmap start  
[root@nfs /]# service nfs start
[root@nfs /]# showmount -e 10.10.0.226
Export list for 10.10.0.226:  
/web 10.10.0.0/12

2.節點測試掛載
node1:
[root@node1 ~]# mount -t nfs 10.10.0.226:/web /mnt   
[root@node1 mnt]# mount  
[root@node1 ~]# umount /mnt  
[root@node1 ~]# mount  

node2:
[root@node2 ~]# mount -t nfs 10.10.0.226:/web /mnt 
[root@node1 mnt]# mount  
[root@node1 ~]# umount /mnt  
[root@node1 ~]# mount 

3.修改haresource文件
[root@node1 ~]# vim /etc/ha.d/haresources 
node1.test.com IPaddr::10.10.0.11/12/eth0 Filesystem::10.10.0.226:/web::/var/www/html::nfs  httpd

4.同步haresource配置文件
[root@node1 ~]# cd /etc/ha.d/ 
[root@node1 ha.d]# scp haresources node2:/etc/ha.d/  

5.重啓一下heartbeat
[root@node1 ha.d]# ssh node2 "service heartbeat restart" 
[root@node1 ha.d]# service heartbeat restart          

6.查看一下端口
[root@node1 ha.d]# netstat -ntulp 

7.測試一下Web服務

[root@node1 ha.d]# mount 

/dev/sda2 on / type ext3 (rw)  
proc on /proc type proc (rw)  
sysfs on /sys type sysfs (rw)  
devpts on /dev/pts type devpts (rw,gid=5,mode=620)  
/dev/sda1 on /boot type ext3 (rw)  
tmpfs on /dev/shm type tmpfs (rw)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
10.10.0.226:/web on /var/www/html type nfs (rw,addr=10.10.0.226)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章