corosync+pacemaker的crmsh crm 实例 详解

Seven 绯闻SEO 绯闻SEO,一个专注中小企业网站优化的SEO爱好者

下文来为各位整理一篇关于corosync+pacemaker的crmsh crm 实例的,希望这个例子可以帮助到各位,corosync和pacemaker实现高可用的难点就在crm命令,子命令多,参数多等,下面说一些常用的例子.

一,crm有两种工作方式

1,批处理模式,就是在shell命令行中直接输入命令

2,交互式模式(crm(live)#)进入到crmsh中交互执行.

二,命令详解

1,一级子命令,代码如下:

  1. [root@node1corosync]#crm
  2. crm(live)#help
  3. Thisiscrmshell,aPacemakercommandlineinterface.
  4. Availablecommands:
  5. cibmanageshadowCIBs//cib沙盒
  6. resourceresourcesmanagement//所有的资源都在这个子命令后定义
  7. configureCRMclusterconfiguration//编辑集群配置信息
  8. nodenodesmanagement//集群节点管理子命令
  9. optionsuserpreferences//用户优先级
  10. historyCRMclusterhistory//命令历史记录
  11. siteGeo-clustersupport
  12. raresourceagentsinformationcenter//资源代理子命令(所有与资源代理相关的程都在此命令之下)
  13. statusshowclusterstatus//显示当前集群的状态信息
  14. help,?showhelp(helptopicsforlistoftopics)//查看当前区域可能的命令
  15. end,cd,upgobackonelevel//返回第一级crm(live)
  16. quit,bye,exitexittheprogram//退出crm(live)交互模式

2,resource资源状态控制子命令,代码如下:

  1. crm(live)resource#help
  2. vailablecommands:
  3. statusshowstatusofresources//显示资源状态信息
  4. startstartaresource//启动一个资源
  5. stopstoparesource//停止一个资源
  6. restartrestartaresource//重启一个资源
  7. promotepromoteamaster-slaveresource//提升一个主从资源
  8. demotedemoteamaster-slaveresource//降级一个主从资源
  9. manageputaresourceintomanagedmode//将一个资源加入到管理模式下
  10. unmanageputaresourceintounmanagedmode//从管理模式下去除一个资源
  11. migratemigratearesourcetoanothernode//将资源迁移到另一个节点上
  12. unmigrateunmigratearesourcetoanothernode
  13. parammanageaparameterofaresource//管理资源的参数
  14. secretmanagesensitiveparameters//管理敏感参数
  15. metamanageametaattribute//管理源属性
  16. utilizationmanageautilizationattribute
  17. failcountmanagefailcounts//管理失效计数器
  18. cleanupcleanupresourcestatus//清理资源状态
  19. refreshrefreshCIBfromtheLRMstatus//从LRM(LRM本地资源管理)更新CIB(集群信息库),在
  20. reprobeprobeforresourcesnotstartedbytheCRM//探测在CRM中没有启动的资源
  21. tracestartRAtracing//启用资源代理(RA)追踪
  22. untracestopRAtracing//禁用资源代理(RA)追踪
  23. helpshowhelp(helptopicsforlistoftopics)//显示帮助
  24. endgobackonelevel//返回一级(crm(live)#)
  25. quitexittheprogram//退出交互式程序

3,configure资源定义子命令,代码如下:

  1. crm(live)configure#help
  2. Availablecommands:
  3. nodedefineaclusternode//定义一个集群节点
  4. primitivedefinearesource//定义资源
  5. monitoraddmonitoroperationtoaprimitive//对一个资源添加监控选项(如超时时间,启动失败后的操作)
  6. groupdefineagroup//定义一个组类型(将多个资源整合在一起)
  7. clonedefineaclone//定义一个克隆类型(可以设置总的克隆数,每一个节点上可以运行几个克隆)
  8. msdefineamaster-slaveresource//定义一个主从类型(集群内的节点只能有一个运行主资源,其它从的做备用)
  9. rsc_templatedefinearesourcetemplate//定义一个资源模板
  10. locationalocationpreference//定义位置约束优先级(默认运行于那一个节点(如果位置约束的值相同,默认倾向性那一个高,就在那一个节点上运行))
  11. colocationcolocateresources//排列约束资源(多个资源在一起的可能性)
  12. orderorderresources//资源的启动的先后顺序
  13. rsc_ticketresourcesticketdependency
  14. propertysetaclusterproperty//设置集群属性
  15. rsc_defaultssetresourcedefaults//设置资源默认属性(粘性)
  16. fencing_topologynodefencingorder//隔离节点顺序
  17. roledefineroleaccessrights//定义角色的访问权限
  18. userdefineuseraccessrights//定义用用户访问权限
  19. op_defaultssetresourceoperationsdefaults//设置资源默认选项
  20. schemasetordisplaycurrentCIBRNGschema
  21. showdisplayCIBobjects//显示集群信息库对
  22. editeditCIBobjects//编辑集群信息库对象(vim模式下编辑)
  23. filterfilterCIBobjects//过滤CIB对象
  24. deletedeleteCIBobjects//删除CIB对象
  25. default-timeoutssettimeoutsforoperationstominimumsfromthemeta-data
  26. renamerenameaCIBobject//重命名CIB对象
  27. modgroupmodifygroup//改变资源组
  28. refreshrefreshfromCIB//重新读取CIB信息
  29. eraseerasetheCIB//清除CIB信息
  30. ptestshowclusteractionsifchangeswerecommitted
  31. rsctesttestresourcesascurrentlyconfigured
  32. cibCIBshadowmanagement
  33. cibstatusCIBstatusmanagementandediting//cib状态管理和编辑
  34. templateeditandimportaconfigurationfromatemplate//编辑或导入配置模板
  35. commitcommitthechangestotheCIB//将更改后的信息提交写入CIB
  36. verifyverifytheCIBwithcrm_verify//CIB语法验证
  37. upgradeupgradetheCIBtoversion1.0//升级CIB到1.0
  38. savesavetheCIBtoafile//将当前CIB导出到一个文件中(导出的文件存于切换crm之前的目录)
  39. loadimporttheCIBfromafile//从文件内容载入CIB
  40. graphgenerateadirectedgraph
  41. xmlrawxml
  42. helpshowhelp(helptopicsforlistoftopics)//显示帮助信息
  43. endgobackonelevel//回到第一级(crm(live)#)
  44. quitexittheprogram//退出crm交互模式

4,node节点管理子命令,代码如下:

  1. crm(live)#node
  2. crm(live)node#help
  3. Nodemanagementandstatuscommands.
  4. Availablecommands:
  5. statusshownodesstatusasXML//以xml格式显示节点状态信息
  6. showshownode//命令行格式显示节点状态信息
  7. standbyputnodeintostandby//模拟指定节点离线(standby在后面必须的FQDN)
  8. onlinesetnodeonline//节点重新上线
  9. maintenanceputnodeintomaintenancemode//将一个节点状态改为maintenance
  10. readyputnodeintoreadymode//将一个节点状态改为ready
  11. fencefencenode//隔离节点
  12. clearstateClearnodestate//清理节点状态信息
  13. deletedeletenode//删除一个节点
  14. attributemanageattributes
  15. utilizationmanageutilizationattributes
  16. status-attrmanagestatusattributes
  17. helpshowhelp(helptopicsforlistoftopics)
  18. endgobackonelevel//回到上一次
  19. quitexittheprogram//退出

5,ra资源代理子命令,代码如下:

  1. crm(live)#ra
  2. crm(live)ra#help
  3. Availablecommands:
  4. classeslistclassesandproviders//为资源代理分类
  5. listlistRAforaclass(andprovider)//显示一个类别中的提供的资源
  6. metashowmetadataforaRA//显示一个资源代理序的可用参数(如metaocf:heartbeat:IPaddr2)
  7. providersshowprovidersforaRAandaclass
  8. helpshowhelp(helptopicsforlistoftopics)
  9. endgobackonelevel
  10. quitexittheprogram

三,实例

1,系统资源查看,代码如下:

  1. crm(live)ra#classes//系统所使用的资源代理
  2. lsb
  3. ocf/heartbeatpacemaker
  4. service
  5. stonith

2,默认系统资源列表,代码如下:

  1. crm(live)ra#listocf//列表默认系统资源
  2. CTDBClusterMonDelayDummyFilesystemHealthCPU
  3. IPaddrIPaddr2IPsrcaddrHealthCPUHealthSMARTHealthSMART
  4. LVMMailToRouteSendArpSquid
  5. StatefulSysInfoSystemHealthVirtualDomainXinetd
  6. apacheconntrackdcontrolddb2dhcpd
  7. ethmonitorexportfsiSCSILogicalUnitmysqlnamed
  8. nfsnotifynfsserverpgsqlpingpingd
  9. postfixremotersyncdsymlinktomcat

3,查看外加的系统资源,代码如下:

  1. crm(live)ra#listlsb//列表外加的系统资源
  2. NetworkManagerabrt-ccppabrt-oopsabrtdacpid
  3. atdauditdautofsblk-availabilitycertmonger
  4. corosynccorosync-notifydcpuspeedcrondcups
  5. dnsmasqfirstboothaldaemonhalthsqldb
  6. ip6tablesiptablesirqbalancejexeckdump
  7. killalllvm2-lvmetadlvm2-monitormdmonitormessagebus
  8. mysqldnetconsolenetfsnetworknfs
  9. nfslocknginxnmbntpdntpdate
  10. oddjobdopenfirepacemakerphp-fpmportreserve
  11. postfixpsacctquota_nldrdiscredis
  12. restorecondrngdrpcbindrpcgssdrpcidmapd
  13. rpcsvcgssdrsyslogsandboxsaslauthdsingle
  14. slapdsmartdsmbsnmpdsnmptrapd
  15. spice-vdagentdsshdsssdsysstatudev-post
  16. vsftpdwdaemonwinbindwpa_supplicantypbind

4,查看系统资源的参数,代码如下:

  1. crm(live)ra#metaocf:heartbeat:IPaddr//查看系统资源IPaddr的参数
  2. ManagesvirtualIPv4andIPv6addresses(Linuxspecificversion)(ocf:heartbeat:IPaddr)
  3. ThisLinux-specificresourcemanagesIPaliasIPaddresses.
  4. ItcanaddanIPalias,orremoveone.
  5. Inaddition,itcanimplementClusterAliasIPfunctionality
  6. ifinvokedasacloneresource.
  7. Ifusedasaclone,youshouldexplicitlysetclone-node-max>=2,
  8. and/orclone-max<numberofnodes.Incaseofnodefailure,
  9. cloneinstancesneedtobere-allocatedonsurvivingnodes.
  10. Thiswouldnotbepossibleifthereisalreadyaninstanceonthosenodes,
  11. andclone-node-max=1(whichisthedefault).
  12. Parameters(*:required,[]:default):
  13. ip*(string):IPv4orIPv6address
  14. TheIPv4(dottedquadnotation)orIPv6address(colonhexadecimalnotation)
  15. exampleIPv4"192.168.1.1".
  16. exampleIPv6"2001:db8:DC28:0:0:FC57:D4C8:1FFF".
  17. 。。。。。。。。。。。。。。。。。。。省略。。。。。。。。。。。。。。。。。。。。。。。。

5,属性修改,代码如下:

  1. crm(live)configure#propertystonith-enabled=false//禁用stonith-enable
  2. crm(live)configure#propertyno-quorum-policy=ignore//忽略投票规则

6,定义一资源所使用的命令,代码如下:

  1. /**
  2. *primitive:定义一资源所使用的命令
  3. *webip:为资源起一个名字
  4. *ocf:heartbeat;IPaddr:所使用资源代理的类别,由谁提供的那一个代理程序
  5. *opmonitor对webip做监控
  6. *interval:间隔时间
  7. *timeout:超时时间
  8. *on-fail:失败自起
  9. */
  10. crm(live)configure#primitivewebipocf:heartbeat:IPaddrparamsip=192.168.10.130opmonitorinterval=30stimeout=20son-fail=restart
  11. crm(live)configure#primitivenginx_reslsb:nginx//那些在/etc/init.d/*的脚本就是属于lsb的
  12. params后面的参数,可以通过meta命令来查找,不同的系统资源参数是不一样的。

7,定义排列约束,代码如下:

  1. /**
  2. *定义排列约束
  3. *colocation:排列约束命令
  4. *nginx_web:约束名
  5. *inf:#(可能性,inf表示永久在一起,也可以是数值)
  6. *webipnginx_res:#资源名称
  7. */
  8. crm(live)configure#colocationnginx_webinf:nginx_reswebip

8,定义资源启动顺序,代码如下:

  1. /**
  2. *定义资源启动顺序
  3. *order:顺序约束的命令
  4. *nginx_after_ip:约束ID
  5. *mandatory:#指定级别(此处有三种级别:mandatory:强制,Optional:可选,Serialize:序列化)
  6. *webipnginx_res:#资源名称,这里书写的先后顺序相当重要
  7. */
  8. crm(live)configure#ordernginx_after_ipmandatory:webipnginx_res

9,定义节点权重,代码如下:

  1. /**
  2. *定义节点权重
  3. *location:节点权重命令
  4. *webip_and_webnfs_and_webserver:约束名称
  5. *webip500:node1:webip这个资源的node1节点的权重是500
  6. */
  7. crm(live)configure#locationwebip_and_webnfs_and_webserverwebip500:node1

10,定义默认资源属性,代码如下:

  1. /**
  2. *定义默认资源属性
  3. *rsc_defaults:默认资源
  4. *这样定义代表集群中每一个资源的默认权重,只有当资源服务不在当前节点时,权重才会生效,比如,这里我定义了三个资源webip、webnfs、webserver,对每一个资源的权重为100,那么加在一起就变成了300,之前己经定义node1的位置约束的值为500,当node1宕机后,重新上线,这样就切换到node1上了。phpfensi.com
  5. */
  6. crm(live)configure#rsc_defaultsresource-stickiness=100

11,删除资源或者节点,代码如下:

  1. crm(live)configure#deletenginx_res//删除一个资源,约束,排序,组等
  2. crm(live)node#deletenode1//删除一个节

12,资源其他,代码如下:

  1. crm(live)configure#verify//审核
  2. crm(live)configure#commit//提交
  3. crm(live)configure#show//显示

13,节点挂起和在线,代码如下:

  1. crm(live)node#standbynode1//节点挂起
  2. crm(live)node#onlinenode1//节点上线

相关广告
  • corosync+pacemaker的crmsh crm 实例 详解 corosync+pacemaker的crmsh crm 实例 详解 corosync+pacemaker的crmsh crm 实例 详解
相关阅读

corosync+pacemaker的crmsh crm 实例 详解

2019/10/10 17:45:53 | 谷歌SEO算法 | 搜索引擎