實驗目的: 實現web服務的高可用html
實驗環境: 虛擬機軟件爲VMware6.0版. 虛擬系統爲32位Redhat5.4 企業版.node
實驗拓補圖:web
說明: 新建兩臺虛擬機網卡使用NAT模式. VIP192.168.145.254爲提供web服務的IP地址.配置時爲root用戶.瀏覽器
配置步驟:ssh
Node1:ide
1.配置靜態IP3d
#vi /etc/sysconfig/network-scripts/ifcfg-eth0日誌
將'」BOOTPROTO=」後該爲」static」.htm
並添加以下內容:blog
IPADDR=192.168.145.11
NETMASK=255.255.255.0
2.配置主機名
#vi /etc/sysconfig/network
將」HOSTNAME=」後該爲」node1.a.org」.
#hostname node1.a.org
#uname –n
確認顯示出如下內容:
Node2:
1.配置靜態IP
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
將'」BOOTPROTO=」後該爲」static」.
並添加以下內容:
IPADDR=192.168.145.12
NETMASK=255.255.255.0
2.配置主機名
#vi /etc/sysconfig/network
將」HOSTNAME=」後該爲」node2.a.org」.
#hostname node2.a.org
#uname –n
確認顯示出如下內容:
Node1:
3.編輯hosts文件
#vi /etc/hosts
添加如下內容
192.168.0.5 node1.a.org node1
192.168.0.6 node2.a.org node2
4.配置ssh公鑰認證鏈接,即ssh鏈接不須要輸入密碼
#ssh-keygen -t rsa
#ssh-copy-id –i /root/.ssh/id_rsa.pub 'root@node2' [注:此命令後需輸入Node2上root用戶密碼]
#ssh node2 'ifconfig'
[注:若是不用輸入密碼便可顯示Node2的IP地址表示配置成功]
5.複製hosts文件到Node2
#scp /etc/hosts root@node2:/etc
6.安裝所需軟件
#yum install –y httpd
#chkconfig httpd off //關閉httpd服務開機啓動
#echo 「Node1」 > /var/www/html/index.html //寫入網頁文件
安裝corosync和pacemaker,首先下載所須要以下軟件包至本地某專用目錄(這裏爲/root/corosync)
cluster-glue
cluster-glue-libs
heartbeat
openaislib
resource-agents
corosync
heartbeat-libs
pacemaker
corosynclib
libesmtp
pacemaker-libs
#cd /root/corosync
#yum localinstall –y –nogpgcheck ./*
7.編輯配置文件
#cd /etc/corosync
#cp corosync.conf.example corosync.conf
將」totem { 」下」interface { 」中」bindnetaddr:」後改成」192.168.145.0」
添加以下內容:
service {
ver: 0
name: pacemaker
aisexec { //定義運行是使用哪一個用戶的身份,貌似不寫也行
user: root
group: root
}
8.創建日誌目錄
#mkdir /var/log/cluster
9.生成authkey文件
#corosync-keygen //新安裝的系統執行此命令時等待時間可能會稍長
#scp -p authkey corosync.conf node2:/etc/corosync //複製配置文件到Node2
#ssh node2 'mkdir -v /var/log/cluster'
Node2
3.配置ssh
配置ssh公鑰認證鏈接,即ssh鏈接不須要輸入密碼
#ssh-keygen -t rsa
#ssh-copy-id –i /root/.ssh/id_rsa.pub 'root@node1' [注:此命令後需輸入Node1上root用戶密碼]
#ssh node1 'ifconfig'
[注:若是不用輸入密碼便可顯示Node1的IP地址表示配置成功]
4.安裝所需軟件
#yum install –y httpd
#chkconfig httpd off //關閉httpd服務開機啓動
#echo 「Node2」 > /var/www/html/index.html //寫入網頁文件
安裝corosync和pacemaker [同Node1配置]
#cd /root/corosync
#yum localinstall –y –nogpgcheck ./*
5.同步時間
#hwclock –s
#ssh node1 'hwclock -s'
6.啓動服務
#service corosync start
#ssh node1 ‘ service corosync start’
7.定義資源
#crm configure primitive WebIP ocf:heartbeat:IPaddr params ip=192.168.145.254
#crm configure primitive WebServer lsb:httpd
#crm configure group Web WebIP WebServer
//默認該集羣會將資源運行在不一樣節點上,定義組資源可將資源運行在一個節點上
[注: 由於是兩節點高可用服務所以需執行如下命令定義全局屬性]
#crm configure property stonith-enabled=false //禁用STONITH
#crm configure property no-quorum-policy=ignore //禁用quorum
8.啓動服務
#service corosync start
#ssh node1 'service corosync start'
#crm status //查看集羣信息
可能會顯示以下信息
稍等一下該集羣就可徹底正常啓動了
#watch -n 1 'crm status' //若是感受刷新crm status很糾結,可以使用此命令
若是看到以下內容表示該集羣已可正常使用
Current DC: node1.a.org
顯示的爲被選爲DC的節點
Resource Group: Web
WebIP (ocf::heartbeat:IPaddr): Started node2.a.org
WebServer (lsb:httpd): Started node2.a.org
顯示的爲哪些資源運行在哪一個節點上
--------------------------------------------------------------------------------
*注:若是發現httpd服務沒法正常啓動,請先停掉集羣服務,命令以下
#service corosync stop
#ssh node1 ‘service corosync stop’
以後再兩個節點上啓動httpd服務,以後再中止httpd服務.
最後啓動集羣服務
--------------------------------------------------------------------------------
好了如今驗證一下集羣的功能
1.在本機的瀏覽器中輸入192.168.145.254
會顯示以下內容:
2.這裏資源運行在Node2上
因此在Node1上執行以下命令
#ssh node2 ‘service corosync stop’
#crm status
Resource Group: Web
WebIP (ocf::heartbeat:IPaddr): Started node1.a.org
WebServer (lsb:httpd): Started node1.a.org
這時會發現資源已經轉到Node1上運行
3.刷新本機瀏覽器會發現顯示內容已變爲: