菜鸟学Linux 第089篇笔记 corosync+pacemaker

简介:

菜鸟学Linux 第089篇笔记 corosync+pacemaker




内容总览

corosync

pacemaker

crmsh






What is High Availability?

Simple Equation: A=MTBF/(MTBF+MTTR)

MTBF = mean time between failures(无故障运行时长)

MTTR = mean time to repair(故障修复时长)

A = probability system will provide service at a random time

(ranging from 0 to 1)





RHEL 5.x RHCS: openais, cman, rgmanager

REHL 6.x RHCS: corosync

corosync: Messaging Layer

openais 插件

openais: AIS




corosync 是一个可以提供集群信息传递的一个软件,用来收集集群信息的 Messaging Layer

pacemaker 是一个crm软件,它可以结合corosync或heartbeat v3来进行集群资源管理

SUSE linux Enterprise Server: Hawk, webGUI

LCMC Linux Cluster Management Console 自学使用gui 的 lcmc


RHCS (RedHat Cluster Suite) 

conga(luci(主控台)/ricci(集群节点)) luci webGUI



keepalived: VRRP, 仅支持2节点




配置corosync集群

时间同步 

ssh互信




1. 安装pacemaker 和 corosync

yum install pacemaker corosync

yum install crmsh (目前官方未提供可以去 opensuse里找 非官方所写 不过有源码包)




2.配置corosync

/etc/corosync.conf


corosync.conf,添加如下内容:

service {

  ver:  0

  name: pacemaker

  # use_mgmtd: yes

}


aisexec {

  user: root

  group:  root

}


# corosync-keygen


并将其复制到另外一台节点中

# scp authkey corosync.conf root@node2.mysky.com:/etc/corosync/


# service NetworkManager stop

# chkconfig NetworkManager off


至此便可启动corosync

# serivice corosync start




检查corosync启动是否正确


查看corosync引擎是否正常启动:

# grep -e "Corosync Cluster Engine" /var/log/cluster/corosync.log 

# grep -e "configuration file" /var/log/cluster/corosync.log

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine exiting with status 8 at main.c:1397.

Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.

Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.


查看初始化成员节点通知是否正常发出:

# grep  TOTEM  /var/log/cluster/corosync.log

Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transport (UDP/IP).

Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).

Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] The network interface [172.16.100.11] is now up.

Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] A processor joined or left the membership and a new membership was formed.


检查启动过程中是否有错误产生:

# grep ERROR: /var/log/cluster/corosync.log | grep -v unpack_resources


查看pacemaker是否正常启动:

# grep pcmk_startup /var/log/cluster/corosync.log

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: CRM: Initialized

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] Logging: Initialized pcmk_startup

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Service: 9

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Local hostname: node1.magedu.com


如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync

# ssh node2 -- /etc/init.d/corosync start


注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;


使用如下命令查看集群节点的启动状态:

# crm status

============

Last updated: Tue Jun 14 19:07:06 2011

Stack: openais

Current DC: node1.magedu.com - partition with quorum

Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87

2 Nodes configured, 2 expected votes

0 Resources configured.

============


Online: [ node1.magedu.com node2.magedu.com ]


从上面的信息可以看出两个节点都已经正常启动,并且集群已经处于正常工作状态。


执行ps auxf命令可以查看corosync启动的各相关进程。

root      4665  0.4  0.8  86736  4244 ?        Ssl  17:00   0:04 corosync

root      4673  0.0  0.4  11720  2260 ?        S    17:00   0:00  \_ /usr/lib/heartbeat/stonithd

101       4674  0.0  0.7  12628  4100 ?        S    17:00   0:00  \_ /usr/lib/heartbeat/cib

root      4675  0.0  0.3   6392  1852 ?        S    17:00   0:00  \_ /usr/lib/heartbeat/lrmd

101       4676  0.0  0.4  12056  2528 ?        S    17:00   0:00  \_ /usr/lib/heartbeat/attrd

101       4677  0.0  0.5   8692  2784 ?        S    17:00   0:00  \_ /usr/lib/heartbeat/pengine

101       4678  0.0  0.5  12136  3012 ?        S    17:00   0:00  \_ /usr/lib/heartbeat/crmd



crm资源管理交互界面

子模式

resources 资源管理

status 状态查看

configure

group


查询使用

help 

meta



资源粘性大于资源约束的location分数时,资源约束的分数会失效





然后接下来就是工具的使用了

cli

crm

pcs(web-gui)

gui

lcmc




crmsh  是一个命令行式接口用来管理集群  

添加资源

添加节点 等等  这里不细说  咱等下回分解哈哈 其实是我玩得不太六哈哈




马上过年了,,前年这几天就光找rpm包了所以没有笔记更新时间明显间隔太长,,

回家再继续    keep going!

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1894229如需转载请自行联系原作者


Winthcloud

相关文章
|
1月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
115 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
30天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
82 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
86 2
linux笔记 diff及patch的制作与使用
|
3月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
3月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作
|
3月前
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解
|
3月前
|
Linux
Linux源码阅读笔记19-插入删除模块实战
Linux源码阅读笔记19-插入删除模块实战
|
3月前
|
Linux
Linux源码阅读笔记17-资源分配及总线系统
Linux源码阅读笔记17-资源分配及总线系统
|
3月前
|
存储 Linux 数据库
Linux源码阅读笔记16-文件系统关联及字符设备操作
Linux源码阅读笔记16-文件系统关联及字符设备操作
|
3月前
|
Ubuntu Linux Shell
【linux】PetaLinux 2024.1安装笔记
【linux】PetaLinux 2024.1安装笔记
215 0