日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Drbd+Pacemaker实现高可用

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Drbd+Pacemaker实现高可用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

What is Pacemaker?

Pacemaker是一個集群資源管理器。它利用集群基礎構件(OpenAIS 、heartbeat或corosync)提供的消息和成員管理能力來探測并從節點或資源級別的故障中恢復,以實現群集服務(亦稱資源)的最大可用性。


前提:

1)本配置共有兩個測試節點,分別node1.a.org和node2.a.org,相的IP地址分別為192.168.0.5和192.168.0.6;

2)node1和node2兩個節點已經配置好了基于openais/corosync的集群;且node1和node2也已經配置好了Primary/Secondary模型的drbd設備/dev/drbd0,且對應的資源名稱為web;如果您此處的配置有所不同,請確保后面的命令中使用到時與您的配置修改此些信息與您所需要的配置保持一致;

3)系統為rhel5.4,x86平臺;


1、查看當前集群的配置信息,確保已經配置全局屬性參數為兩節點集群所適用:

1 #?crm?configure?show
1 2 3 4 5 6 7 8 9 node?node1.a.org node?node2.a.org property?$id="cib-bootstrap-options"?\ ?dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87"?\ ?cluster-infrastructure="openais"?\ ?expected-quorum-votes="2"?\ ?stonith-enabled="false"?\ ?last-lrm-refresh="1308059765"?\ ?no-quorum-policy="ignore"

在如上輸出的信息中,請確保有stonith-enabled和no-quorum-policy出現且其值與如上輸出信息中相同。否則,可以分別使用如下命令進行配置:

1 2 #?crm?configure?property?stonith-enabled=false #?crm?configure?property?no-quorum-policy=ignore

2、將已經配置好的drbd設備/dev/drbd0定義為集群服務;

1)按照集群服務的要求,首先確保兩個節點上的drbd服務已經停止,且不會隨系統啟動而自動啟動:

1 #?drbd-overview
1 ?0:web?Unconfigured?.?.?.?.
1 #?chkconfig?drbd?off

2)配置drbd為集群資源:

提供drbd的RA目前由OCF歸類為linbit,其路徑為/usr/lib/ocf/resource.d/linbit/drbd。我們可以使用如下命令來查看此RA及RA的meta信息:

1 #?crm?ra?classes
1 2 3 4 heartbeat lsb ocf?/?heartbeat?linbit?pacemaker stonith
1 #?crm?ra?list?ocf?linbit
1 drbd
1 #?crm?ra?info?ocf:linbit:drbd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 This?resource?agent?manages?a?DRBD?resource as?a?master/slave?resource.?DRBD?is?a?shared-nothing?replicated?storage device.?(ocf:linbit:drbd) Master/Slave?OCF?Resource?Agent?for?DRBD Parameters?(*?denotes?required,?[]?the?default): drbd_resource*?(string):?drbd?resource?name ?The?name?of?the?drbd?resource?from?the?drbd.conf?file. drbdconf?(string,?[/etc/drbd.conf]):?Path?to?drbd.conf ?Full?path?to?the?drbd.conf?file. Operations'?defaults?(advisory?minimum): ?start?timeout=240 ?promote?timeout=90 ?demote?timeout=90 ?notify?timeout=90 ?stop?timeout=100 ?monitor_Slave?interval=20?timeout=20?start-delay=1m ?monitor_Master?interval=10?timeout=20?start-delay=1m

drbd需要同時運行在兩個節點上,但只能有一個節點(primary/secondary模型)是Master,而另一個節點為Slave;因此,它是一種比較特殊的集群資源,其資源類型為多態(Multi-state)clone類型,即主機節點有Master和Slave之分,且要求服務剛啟動時兩個節點都處于slave狀態。

1 [root@node1?~]#?crm
1 2 3 crm(live)#?configure crm(live)configure#?primitive?webdrbd?ocf:linbit:drbd?params?drbd_resource=web?op?monitor?role=Master?interval=50s?timeout=30s?op?monitor?role=Slave?interval=60s?timeout=30s crm(live)configure#?master?MS_Webdrbd?webdrbd?meta?master-max="1"?master-node-max="1"?clone-max="2"?clone-node-max="1"?notify="true"
1 2 3 4 crm(live)configure#?show?webdrbd primitive?webdrbd?ocf:linbit:drbd?\ ?params?drbd_resource="web"?\ ?op?monitor?interval="15s"
1 2 3 4 5 crm(live)configure#?show?MS_Webdrbd ms?MS_Webdrbd?webdrbd?\ ?meta?master-max="1"?master-node-max="1"?clone-max="2"?clone-node-max="1"?notify="true" crm(live)configure#?verify crm(live)configure#?commit

查看當前集群運行狀態:

1 #?crm?status
1 2 3 4 5 6 7 8 ============ Last?updated:?Fri?Jun?17?06:24:03?2011 Stack:?openais Current?DC:?node2.a.org?-?partition?with?quorum Version:?1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2?Nodes?configured,?2?expected?votes 1?Resources?configured. ============
1 2 3 4 5 Online:?[?node2.a.org?node1.a.org?] ?Master/Slave?Set:?MS_Webdrbd ?Masters:?[?node2.a.org?] ?Slaves:?[?node1.a.org?]

由上面的信息可以看出此時的drbd服務的Primary節點為node2.a.org,Secondary節點為node1.a.org。當然,也可以在node2上使用如下命令驗正當前主機是否已經成為web資源的Primary節點:

1 #?drbdadm?role?web
1 Primary/Secondary

3)為Primary節點上的web資源創建自動掛載的集群服務

MS_Webdrbd的Master節點即為drbd服務web資源的Primary節點,此節點的設備/dev/drbd0可以掛載使用,且在某集群服務的應用當中也需要能夠實現自動掛載。假設我們這里的web資源是為Web服務器集群提供網頁文件的共享文件系統,其需要掛載至/www(此目錄需要在兩個節點都已經建立完成)目錄。

此外,此自動掛載的集群資源需要運行于drbd服務的Master節點上,并且只能在drbd服務將某節點設置為Primary以后方可啟動。因此,還需要為這兩個資源建立排列約束和順序約束。

1 #?crm
1 2 3 4 5 6 crm(live)#?configure crm(live)configure#?primitive?WebFS?ocf:heartbeat:Filesystem?params?device="/dev/drbd0"?directory="/www"?fstype="ext3" crm(live)configure#?colocation?WebFS_on_MS_webdrbd?inf:?WebFS?MS_Webdrbd:Master crm(live)configure#?order?WebFS_after_MS_Webdrbd?inf:?MS_Webdrbd:promote?WebFS:start crm(live)configure#?verify crm(live)configure#?commit

查看集群中資源的運行狀態:

1 ?crm?status
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ============ Last?updated:?Fri?Jun?17?06:26:03?2011 Stack:?openais Current?DC:?node2.a.org?-?partition?with?quorum Version:?1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2?Nodes?configured,?2?expected?votes 2?Resources?configured. ============ Online:?[?node2.a.org?node1.a.org?] ?Master/Slave?Set:?MS_Webdrbd ?Masters:?[?node2.a.org?] ?Slaves:?[?node1.a.org?] ?WebFS?(ocf::heartbeat:Filesystem):?Started?node2.a.org

由上面的信息可以發現,此時WebFS運行的節點和drbd服務的Primary節點均為node2.a.org;我們在node2上復制一些文件至/www目錄(掛載點),而后在故障故障轉移后查看node1的/www目錄下是否存在這些文件。

1 #?cp?/etc/rc./rc.sysinit?/www

下面我們模擬node2節點故障,看此些資源可否正確轉移至node1。

以下命令在Node2上執行:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #?crm?node?standby #?crm?status ============ Last?updated:?Fri?Jun?17?06:27:03?2011 Stack:?openais Current?DC:?node2.a.org?-?partition?with?quorum Version:?1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2?Nodes?configured,?2?expected?votes 2?Resources?configured. ============ Node?node2.a.org:?standby Online:?[?node1.a.org?] ?Master/Slave?Set:?MS_Webdrbd ?Masters:?[?node1.a.org?] ?Stopped:?[?webdrbd:0?] ?WebFS?(ocf::heartbeat:Filesystem):?Started?node1.a.org

由上面的信息可以推斷出,node2已經轉入standby模式,其drbd服務已經停止,但故障轉移已經完成,所有資源已經正常轉移至node1。

在node1可以看到在node2作為primary節點時產生的保存至/www目錄中的數據,在node1上均存在一份拷貝。

讓node2重新上線:

1 #?crm?node?online
1 [root@node2?~]#?crm?status
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ============ Last?updated:?Fri?Jun?17?06:30:05?2011 Stack:?openais Current?DC:?node2.a.org?-?partition?with?quorum Version:?1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2?Nodes?configured,?2?expected?votes 2?Resources?configured. ============ Online:?[?node2.a.org?node1.a.org?] ?Master/Slave?Set:?MS_Webdrbd ?Masters:?[?node1.a.org?] ?Slaves:?[?node2.a.org?] ?WebFS?(ocf::heartbeat:Filesystem):?Started?node1.a.org









本文轉自 SoulMio 51CTO博客,原文鏈接:http://blog.51cto.com/bovin/1861153,如需轉載請自行聯系原作者 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Drbd+Pacemaker实现高可用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。