Corosync高可用集羣的實現

實驗目的: 實現web服務的高可用html

實驗環境: 虛擬機軟件爲VMware6.0版. 虛擬系統爲32位Redhat5.4 企業版.node

實驗拓補圖:web

2011-09-15 21-42-13

說明:  新建兩臺虛擬機網卡使用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 

確認顯示出如下內容:

p_w_picpath

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

確認顯示出如下內容:

p_w_picpath

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          //查看集羣信息

可能會顯示以下信息

p_w_picpath

稍等一下該集羣就可徹底正常啓動了

#watch -n 1 'crm status'   //若是感受刷新crm status很糾結,可以使用此命令

若是看到以下內容表示該集羣已可正常使用

p_w_picpath

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

會顯示以下內容:

p_w_picpath

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.刷新本機瀏覽器會發現顯示內容已變爲:

p_w_picpath

相關文章
相關標籤/搜索