OpenStack的高可用系統構建(2)

zdt71發表於2014-03-20

 

1.1.1  共同包的安裝 

ntp伺服器安裝  

yum install ntp

vi /etc/ntp.conf

# Hosts on local network are less restricted.

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap ←指定訪問範圍

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool ().

#server 0.centos.pool.ntp.org iburst ←Internet伺服器,不需要進行註釋 

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

server 127.127.1.0  #local clock hacontroller1指定為自己 

fudge 127.127.1.0 stratum 10

 

service ntpd start

chkconfig ntpd on

 

安裝前先停止firewall 

service iptables stop

chkconfig iptabls off

 

 

1.1.2 安裝 pacemarker+corosync


1.1.2.1 安裝 pacemakercorosync


yum install pacemaker corosync cluster-glue resource-agents

 

1.1.2.2 corosync.conf檔案設定

設定/etc/corosync/corosync.conf為下面方式 

totem {

    version: 2

    secauth: off

    threads: 0

    rrp_mode: active

    clear_node_high_bit: yes

    token: 4000

    consensus: 10000

    rrp_problem_count_timeout: 3000

    interface {              ←心跳用的NIC,可以設定為多個

        ringnumber: 0

        bindnetaddr: 192.168.3.0          ← 並非內網NIC的IP,而是網路地址

        mcastaddr: 226.94.1.1

        mcastport: 5405                    ← 多個pacemaker網路卡使用同樣LAN,可以變更埠號。 

    }          

}

logging {

    fileline: on

    to_syslog: yes

    syslog_facility: local1

    syslog_priority: info

    debug: off

    timestamp: on

}

 

1.1.2.3 啟動服務

啟動Corosyncs,Pacemaker服務

service corosync start

chkconfig corosync on

service corosync start

chkconfig corosync on

 

1.1.2.4 檢查通訊狀態

(1)corosync-cfgtool命令獲得通訊健康狀態。

[root@hacontroller1 ~]# corosync-cfgtool -s

Printing ring status.

Local node ID 33794240

RING ID 0

        id      = 192.168.3.2

        status  = ring 0 active with no faults

[root@hacontroller2 ~]# corosync-cfgtool -s

Printing ring status.

Local node ID 50571456

RING ID 0

        id      = 192.168.3.2

        status  = ring 0 active with no faults

 

 

(2)corosync-objctl參加HA的成員一覽

 [root@hacontroller1 ~]# corosync-objctl runtime.totem.pg.mrp.srp.members

runtime.totem.pg.mrp.srp.33794240.ip=r(0) ip(192.168.3.2)

runtime.totem.pg.mrp.srp.33794240.join_count=1

runtime.totem.pg.mrp.srp.33794240.status=joined

runtime.totem.pg.mrp.srp.50571456.ip=r(0) ip(192.168.3.3)

runtime.totem.pg.mrp.srp.50571456.join_count=1

runtime.totem.pg.mrp.srp.50571456.status=joined

 

到大部分不會發生大的錯誤。

 

1.1.2.5 pacemaker plugin

使用下面的命令來新增pacemaker plugin到corosync服務。

cat <>/etc/corosync/service.d/pcmk

service {

        # Load the Pacemaker Cluster Resource Manager

        name: pacemaker

        ver:  1

}

END

※上面的操作手冊沒有記載,當時如果直接啟動pacemaker,就會失敗,必須進行上面的設定。

1.1.2.6 啟動pacemaker

(1)重新啟動corosync服務,載入pacemaker服務 

[root@hacontroller2 ~]# service corosync restart

Signaling Corosync Cluster Engine (corosync) to terminate: [  OK  ]

Waiting for corosync services to unload:.                  [  OK  ]

Starting Corosync Cluster Engine (corosync):               [  OK  ]

 

(2)啟動packmaker服務 

[root@hacontroller1 ~]# service pacemaker start

Starting Pacemaker Cluster Manager                         [  OK  ]

 

(3)crm_mon命令來檢視pacemaker服務的狀態。

Last updated: Mon Mar 11 11:08:38 2013

Last change: Mon Mar 11 11:07:16 2013 via crmd on hacontroller1

Stack: classic openais (with plugin)

Current DC: hacontroller1 - partition with quorum

Version: 1.1.10-14.el6_5.2-368c726

2 Nodes configured, 2 expected votes

0 Resources configured

 

 

Online: [ hacontroller1 hacontroller2 ]

 

1.1.2.7 pacemakercorosync自動啟動


[root@hacontroller1 ~]# chkconfig corosync on

[root@hacontroller1 ~]# chkconfig pacemaker on

 

1.1.2.8 設定叢集的屬性

(1)安裝crmsh

pacemaker叢集屬性必須使用crm命令列,從pacemaker 1.1.8開始crm作為獨立的專案crmsh,從下面的網址下載,安裝。

wget -P /etc/yum.repos.d/

yum -y install crmsh

※在手冊沒有相關的說明。   

 

設定pacemaker叢集屬性。crm configure命令,設定下面的屬性。

property no-quorum-policy=ignore           \

                              pe-warn-series-max="1000"         \

                              pe-input-series-max="1000"        \

                              pe-error-series-max="1000"        \

                              cluster-recheck-interval="5min"  

※no-quorum-policy=ignore當只有兩個節點時需要設定。兩節點以上時不要進行設定。
※pe-warn-series-max, pe-input-series-max and pe-errorseries-max設定為1000,可以儲存更多的歷史紀錄。
※將叢集的檢查期間設定為5分鐘。

 

[root@hacontroller1 ~]# crm configure

crm(live)configure# property no-quorum-policy=ignore           \

>                               pe-warn-series-max="1000"         \

>                               pe-input-series-max="1000"        \

>                               pe-error-series-max="1000"        \

>                               cluster-recheck-interval="5min"

crm(live)configure#

 

到此,控制節點和網路節點所使用的pacemaker/corosysnc的安裝完畢。  

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18455/viewspace-1126155/,如需轉載,請註明出處,否則將追究法律責任。

相關文章