基于corosync+pacemaker實現(xiàn)主從高可用集群_第1頁
基于corosync+pacemaker實現(xiàn)主從高可用集群_第2頁
基于corosync+pacemaker實現(xiàn)主從高可用集群_第3頁
基于corosync+pacemaker實現(xiàn)主從高可用集群_第4頁
基于corosync+pacemaker實現(xiàn)主從高可用集群_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于corosync+pacemaker實現(xiàn)主從高可用集群本實驗由兩個節(jié)點組成高可用主從集群,在實際中不常用,目的是通過實驗來加深對corosync的認識和理解。環(huán)境設置:1. node1:2. ip03. node2:4. ip15. VIP一:準備工作1、DNS域名解析1. 用uname-n的結果來識別對方的名字2. 3. 使node1,node2的uname-n分別為:4. 5. 6. 7. node1:8. #sed-is(HOSTNAME=).*g/etc/sysconfig/network9. #hostname10

2、. 11. node2:12. #sed-is(HOSTNAME=).*g/etc/sysconfig/network13. #hostnamem14. 15. 在/etc/hosts添加:16. 0node117. 1node22、node1,node2可以遠程通信1. 在node1上:2. ssh-keygen-trsa-P3. ssh-copy-id-i/.ssh/id_rsarootnode24. 5. 命令測試:6. sshnode2ifconfig7. 然后再實現(xiàn)node2對node1的通信3、兩個節(jié)點時間同步1. rootnode2#d

3、ate112822022012;sshnode1date1128220220122. FriNov2822:02:00CST20123. FriNov2822:02:00CST20124、在node1,node2上安裝httpd1. #yum-yinstallhttpd2. 建立測試頁面,為了便于區(qū)分,將頁面結果設置為不同內容3. node1上:4. 編輯/var/www/html/index.html寫入:5. node16. 7. node2:8. 編輯/var/www/html/index.html寫入:9. node2測試完成后;將兩個節(jié)點的httpd服務關閉,并使之開機不能自動啟動1

4、. servicehttpdstop2. chkconfighttpdoff3. 4. 關閉selinux5. setenforce0二:安裝配置corosync1、安裝以下rpm包:1. cluster-glue2. cluster-glue-libs3. heartbeat4. openaislib5. resource-agentsyyu6. corosync7. heartbeat-libs8. pacemaker9. corosynclib10. libesmtp11. pacemaker-libs下載至本地/root后安裝:1. #yum-y-nogpgchecklocalinst

5、all*.rpm2、配置corosync(以下命令在上執(zhí)行)1. #cd/etc/corosync2. #cpcorosync.conf.examplecorosync.conf3. 4. #vimcorosync.conf5. 作如下修改:6. version:2#版本7. secauth:on8. threads:1#線程數(shù)9. bindnetaddr:#綁定的網(wǎng)段10. mcastaddr:4#使用的組播地址11. to_syslog:no#是否將日志發(fā)送到日志文件系統(tǒng)12. 13. /添加這個service可以實現(xiàn)pacemaker隨coros

6、ync的啟動而自動啟動14. service15. ver:016. name:pacemaker17. 18. 19. /定義ais的輔助運行用戶和組的20. aisexec21. name:root22. group:root23. 3、生成節(jié)點間通信時用到的認證密鑰文件:1. #corosync-keygen2. 將corosync和authkey復制至node2:3. #scp-pcorosync.confauthkeynode2:/etc/corosync/4. 5. 分別為兩個節(jié)點創(chuàng)建corosync生成的日志所在的目錄:6. #mkdir/var/log/cluster7. #s

7、shnode2mkdir/var/log/cluste4、啟動corosync1. #servicecorosyncstart2. #tail-50/var/log/messages#查看日志信息3. 4. #sshnode2-/etc/init.d/corosyncstart#啟動node25、查看狀態(tài):1. rootnode1corosync#crm2. crm(live)#status3. CurrentDC:-partitionwithquorum4. Version:1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f5. 2N

8、odesconfigured,2expectedvotes6. 0Resourcesconfigured.7. =8. Online:三:crm用法-crm是一個交互式的shell接口1. rootnode1#crm2. crm(live)#help3. 4. ThisistheCRMcommandlineinterfaceprogram.5. 6. Availablecommands:#crm使用的子命令7. 8. cibmanageshadowCIBs#集群信息庫9. resourceresourcesmanagement#資源管理10. configureCRMclusterconfig

9、uration#集群配置11. nodenodesmanagement#節(jié)點管理12. optionsuserpreferences13. raresourceagentsinformationcenter#資源代理14. statusshowclusterstatus#顯示集群狀態(tài)信息15. quit,bye,exitexittheprogram#退出程序16. helpshowhelp#幫助信息17. end,cd,upgobackonelevel#返回上一層18. 19. 最常用的有:20. 1、集群的配置用configure:21. 22. crm(live)#configure #進

10、入資源配置命令23. crm(live)configure#help24. primitivedefinearesource #定義資源25. groupdefineagroup #定義組26. locationalocationpreference #位置約束27. colocationcolocateresources #排列約束28. orderorderresources #順序約束29. showdisplayCIBobjects#顯示信息30. editeditCIBobjects#進入編輯模式31. deletedeleteCIBobjects#刪除cib對象32. commit

11、committhechangestotheCIB #提交信息33. verifyverifytheCIBwithcrm_verify#檢查語法錯誤34. 35. 2、資源代理RA的信息:36. crm(live)configure#cd37. crm(live)#ra38. crm(live)ra#help39. Availablecommands:40. classeslistclassesandproviders #資源代理的類別41. listlistRAforaclass(andprovider)#顯示每個類別的所有RA42. metashowmetadataforaRA #資源代理的

12、元數(shù)據(jù)43. providersshowprovidersforaRAandaclass #資源代理的提供者44. quitexittheprogram45. helpshowhelp46. endgobackonelevel47. 48. crm(live)ra#classes#顯示四種資源代理類別49. heartbeat#heartbaetV1版本50. lsb#linux標準庫51. ocf/heartbeatpacemaker #OpenclusterFramework開放集群架構52. stonith#專為配置stonith設備而用53. 54. crm(live)ra#listl

13、sb#用list可以查看每個類別的55. crm(live)ra#listocf56. AoEtargetAudibleAlarmCTDB57. ClusterMonDelayDummy58. 59. crm(live)ra#listocfheartbeat#查看ocf下的子類別60. AoEtargetAudibleAlarmCTDB61. ClusterMonDelayDummy62. EvmsSCCEvmsdFilesystem63. ICPIPaddrIPaddr264. /只顯示部分;IPaddr是ocf類別下heartbeat子類別的資源代理;用于IP的代理;下面我們將用到65.

14、66. crm(live)ra#metaocf:heartbeat:IPaddr#用meta查看某個具體資源代理的屬性67. #使用方式類別:子類別:資源代理68. 69. Parameters(*denotesrequired,thedefault):#*表示必選的,表示默認值70. 71. ip*(string):IPv4address#使用的參數(shù);*表示必選的72. TheIPv4addresstobeconfiguredindottedquadnotation,forexample73. .74. .75. Operationsdefaults(advisorym

15、inimum):#默認的操作76. 77. starttimeout=20s#啟動超時時間78. stoptimeout=20s#停止超時時間79. monitorinterval=5stimeout=20s#每隔5s監(jiān)視一次,20s是超時時間80. 81. 配置1個全局屬性:82. crm83. configure84. propertystonith-enabled=false#是否啟用stonish設備85. verify #檢查語法86. commit #提交87. 88. 接下來開始配置資源了:89. 90. 定義資源用primitive,help一下:91. crm(live)co

16、nfigure#helpprimitive92. Usage:93. .94. primitive:95. 資源RA類別:提供者:哪個類型的RA96. paramsattr_list#params是關鍵字,指定參數(shù)97. metaattr_list#元數(shù)據(jù)屬性98. utilizationattr_list99. operationsid_spec #操作100. opop_type=.#指定額外的屬性;如超時時長四:集群資源配置:1、下面來配置一個web IP的集群資源:1. crm(live)configure#primitiveWebIPocf:heartbeat:IPaddrparam

17、sip=2. crm(live)configure#verify3. crm(live)configure#commit4. 5. crm(live)configure#show6. node7. node8. primitiveWebIPocf:heartbeat:IPaddr9. paramsip=10. property$id=cib-bootstrap-options11. dc-version=1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f12. cluster-infrastr

18、ucture=openais13. expected-quorum-votes=214. stonith-enabled=false15. 16. crm(live)configure#cd17. crm(live)#status#狀態(tài)查看18. =19. Lastupdated:SatDec111:12:19201220. Stack:openais21. CurrentDC:-partitionwithquorum22. Version:1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f23. 2Nodesconfigured,2e

19、xpectedvotes24. 1Resourcesconfigured.25. =26. 27. Online:28. 29. WebIP(ocf:heartbeat:IPaddr):Started30. /發(fā)現(xiàn)WebIP運行在node1上31. /ifconfig查看;在node1上32. rootnode1#ifconfig33. eth0:0Linkencap:EthernetHWaddr00:0C:29:76:E9:5634. inetaddr:Bcast:55Mask:35. UPBROADC

20、ASTRUNNINGMULTICASTMTU:1500Metric:136. Interrupt:67Baseaddress:0x20002、添加WebServe資源:1. crm(live)configure#primitiveWebServerlsb:httpd2. crm(live)configure#verify3. crm(live)configure#commit4. crm(live)configure#show5. node6. node7. primitiveWebIPocf:heartbeat:IPaddr8. paramsip=9. primitiv

21、eWebServerlsb:httpd#顯示W(wǎng)ebServe10. property$id=cib-bootstrap-options11. dc-version=1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f12. cluster-infrastructure=openais13. expected-quorum-votes=214. stonith-enabled=false15. 16. crm(live)configure#cd17. crm(live)#status18. WebIP(ocf:heartbeat:IPadd

22、r):Started19. WebServer(lsb:httpd):Started20. /發(fā)現(xiàn)WebServer在node2上;默認資源是負載均衡模式的。多個21. 資源運行在多個節(jié)點上的,我們要想把資源運作在一個節(jié)點上;22. 可以通過定義組來實現(xiàn):23. 下面將WebIP,WebServer定義在一個Webservice組中;24. crm(live)configure#groupWebserviceWebIPWebServer25. 26. crm(live)configure#cd27. crm(live)#status28. ResourceGroup:Webservice#發(fā)現(xiàn)

23、Webservice29. WebIP(ocf:heartbeat:IPaddr):Started30. WebServer(lsb:httpd):Started31. /有上面得知,定義組后WebIP,WebServer都運行在node1上了32. /通過訪問,只顯示node1的頁面內容;33. 34. 把node1為standby:35. rootnode1#crmnodestandby36. rootnode1#crmstatus37. =38. Lastupdated:SatDec111:46:27201239. Stack:openais40. CurrentD

24、C:-partitionwithquorum41. Version:1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f42. 2Nodesconfigured,2expectedvotes43. 1Resourcesconfigured.44. =45. 46. Node:standby#node1已為standby47. Online:48. 49. ResourceGroup:Webservice50. WebIP(ocf:heartbeat:IPaddr):Started51. WebServer(lsb:httpd):Start

25、ed52. /說明資源都轉移到node2上面了53. /此時頁面也顯示為node2的測試內容了54. 這樣就完成了角色轉換了55. 56. 下面讓node2為standby:node1為online:57. rootnode1#crmnodeonline58. rootnode1#crmstatus59. =60. Lastupdated:SatDec112:12:56201261. Stack:openais62. CurrentDC:-partitionwithquorum#沒有達到法定票數(shù)63. Version:1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68d

26、f80ababd6ca3902f64. 2Nodesconfigured,2expectedvotes65. 1Resourcesconfigured.66. =67. 68. Node:standby69. Online:70. 71. ResourceGroup:Webservice72. WebIP(ocf:heartbeat:IPaddr):Started73. WebServer(lsb:httpd):Started74. 75. /對于兩個節(jié)點的集群,不具備法定票數(shù)也允許運行;有以下措施:76. crm(live)configure#propertyno-quorum-policy

27、=ignore#不具備法定票數(shù)忽略77. crm(live)configure#verify78. crm(live)configure#commit3、下面通過約束關系來管理資源;這需要刪除前面定義的組: 需先停止資源運行,再刪除組1. crm(live)resource#stopWebservice #停止資源運行2. crm(live)resource#cd3. crm(live)#configure4. crm(live)configure#deleteWebservice5. 提交查看結果;6. WebIP,WebServer又以獨立資源運行起來了7. 8. 1)、定義排序約束;(兩

28、個資源必須在一起或不在一起)9. 10. crm(live)configure#colocationWebServer_with_WebIPinf:11. WebServerWebIP12. 提交后查看:13. crm(live)configure#showxml14. 16. /說明這兩個資源必須在一起17. 18. crm(live)#status19. Online:20. 21. WebIP(ocf:heartbeat:IPaddr):Started22. WebServer(lsb:httpd):Started23. /兩個資源在一個節(jié)點運行24. /通過瀏覽去訪問為node1的頁面

29、25. 26. 讓節(jié)點1為standby:27. crm(live)#nodestandby28. crm(live)#status29. WebIP(ocf:heartbeat:IPaddr):Started30. WebServer(lsb:httpd):Started31. /資源轉移到node2上32. 33. 2)、用順序約束可以讓資源按一前一后順序啟動:34. 35. crm(live)configure#orderWebServer_after_webIPmandatory:WebIP36. WebServer37. crm(live)configure#verify38. crm(live)configure#commit39. crm(live)configure#showxml40. 42. 43. /先啟動WebIP;再啟動WebSer

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論