Linux下使用Corosync+Pacemaker详解及安装

简介:

Corosync详解

OpenAIS概述

OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式,这个模式包括集群框架,集群成员管理,通信方式,集群监测等,能够为集群软件或工具提供满足 AIS标准的集群接口,但是它没有集群资源管理功能,不能独立形成一个集群。OpenAIS组件包括AMF,CLM,CKPT,EVT,LCK,MSG,TMR,CPG,EVS等,因OpenAIS分支不同,组件略有不同。(下面介绍)OpenAIS主要包含三个分支:Picacho,Whitetank,Wilson。Wilson把Openais核心架构组件独立出来放在Corosync(Corosync是一个集群管理引擎)里面。(详细请查看官方文档)

Corosync概述

Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程(可以说Corosync是OpenAIS工程的一部分)。Corosync包含OpenAIS的核心框架用来对Wilson的标准接口的使用、管理。它为商用的或开源性的集群提供集群执行框架。目前Corosync分为1版本和2版本,1版本不具有投票功能,2版本具有投票功能。

Pacemaker概述

Pacemaker概述

Pacemaker是一个集群资源管理器,它利用首选集群基础设施(OpenAIS 或heartbeat)提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。Pacemaker是从Heartbeat V3版本中分裂出来的专门用于提供高可用集群的CRAM组件。

Pacemaker特点

  1. 主机和应用程序级别的故障检测和恢复

  2. 几乎支持任何冗余配置

  3. 同时支持多种集群配置模式

  4. 配置策略处理法定人数损失(多台机器失败时)

  5. 支持应用启动/关机顺序

  6. 支持,必须/必须在同一台机器上运行的应用程序

  7. 支持多种模式的应用程序(如主/从)

  8. 可以测试任何故障或群集的群集状态

Pacemaker内部组件

这里写图片描述

  1. crmd(资源管理守护进程):主要作为pengine和lrm的消息代理,它同时也得选举一个leader去协调管理集群的活动(包括集群资源的停止和启动)

  2. stonithd(心跳系统):在 Pacemaker 中,STONITH设备被当成资源(并且是在CIB中配置)从而轻松地监控,然而Stonithd会注意理解STONITH拓扑,比如它的客户端请求隔离一个节点,它会重启那个机器。

  3. cib(集群信息库):CIB在系统中充当的是当前集群中各资源原始配置以及之后动态变化了的状态,统计信息收集分发中心,是一个不断更新的信息库(包含所有群集选项,节点,资源以及他们的相互关系和当前状态的定义)。当他收集到任何资源的变化,以及节点统计信息的变化后,都会集成整合到一起组成当前集群最新的信息,并分发到集群各个节点。

  4. pengine(策略引擎):主要负责将CRM发过来的一些信息按照配置文件中的各种设置(基于目前的状态和配置)计算集群的下一个状态。产生一个包括一系列行动和依赖关系的过渡图。

Corosync+Pacemaker组合

这里写图片描述

Corosync和Pacemake的安装

结构部署图 
这里写图片描述

前期准备

1.检查/etc/sysconfig/network中的主机名和uname -n 的结果相同

[root@Clone3 ~]# cat /etc/sysconfig/network | grep "HOSTNAME" | cut -d "=" -f2 > network.txt
[root@Clone3 ~]# uname -n > hostname.txt
[root@Clone3 ~]# diff network.txt hostname.txt

2.配置DNS

A.修改/etc/resolv.confB.修改/etc/hosts.conf
    [root@Clone3 ~]# vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6    
    192.168.80.130  Clone2    
    192.168.80.131  Clone3    
    192.168.80.132  Clone4

3.配置互信ssh

生成ssh的公钥和密钥
    [root@Clone3 ~]# ssh-keygen -t rsa 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:66:03:85:51:93:de:e9:7b:ed:b1:42:36:d6:05:bc:17 root@Clone3
    The key's randomart image is:
    +--[ RSA 2048]----+
    |      .++.   .   |
    |      ....    oE |
    |      .. . .   o.|
    |       .. o   . o|
    |        S.   . o |
    |       o .. = .  |
    |           = o.  |
    |          . o .o |
    |           . oo  |
    +-----------------+
将公约复制到替他节点上
    [root@Clone3 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@Clone2
    The authenticity of host 'clone2 (192.168.80.130)' can't be established.
    RSA key fingerprint is d7:64:9b:c6:a0:81:61:70:8a:df:d4:b4:a4:01:54:08.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'clone2,192.168.80.130' (RSA) to the list of known hosts.
    root@clone2's password: 
    Now try logging into the machine, with "ssh 'root@Clone2'", and check in:
      .ssh/authorized_keys    
    to make sure we haven't added extra keys that you weren't expecting.

Corosync安装 
1.yum源安装

[root@Clone3 ~]# yum install corosync

2.编译安装

下载:
    [root@Clone3 ~]# wget http://build.clusterlabs.org/corosync/releases/corosync-2.4.2.tar.gz解压:
    [root@Clone3 ~]# tar -xzf corosync-2.4.2.tar.gz 
安装必要软件:
    [root@Clone3 ~]# yum install gcc ncc-devel libqb libqb-devel
编译安装:
    [root@Clone3 ~]#  cd corosync-2.4.2
    [root@Clone3 corosync-2.4.2]# ./configure --prefix=/usr/local/corosync 
--sbindir=/usr/local/sbin --bindir=/usr/local/bin --sysconfdir=/etc
    [root@Clone3 corosync-2.4.2]# make && make install

Corosync配置文件详解

[root@Clone3 ~]# vim /etc/corosync/corosync.conf
totem {        version: 2                //版本号
        crypto_cipher: none        
        crypto_hash: none
        secauth:on      //是否开启认证
        thread:0        //实现认证时,并发线程数,0表示默认
        interface {
                ringnumber: 0      //环号码,为这个网卡定义一个唯一的环号码,以避免心跳信息环发送
                bindnetaddr: 192.168.1.0    //绑定的网络地址
                mcastaddr: 239.255.1.1      //广播地址
                mcastport: 5405            //广播端口
                ttl: 1                     //只向外播一次
        }
}
logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        logfile: /var/log/cluster/corosync.log
        to_syslog: yes        debug: off
        timestamp: on
        logger_subsys {
                subsys: QUORUM                debug: off
        }       
}  
service {               //定义一个服务来启动pacemaker
    ver: 0              //定义版本
    name: pacemaker    //这个表示启动corosync时会自动启动pacemaker}
aisexec {                 //表示以哪个用户的身份去运行
    user: root
    group: root         
}

yum源安装

[root@Clone3 ~]# yum install pacemaker

后续步骤 
1.使用命令生成corosync密钥,并复制到各个节点

[root@Clone3 ~]# corosync-keygen
[root@Clone3 ~]# scp /etc/corosync/authkey root@Clone2:/etc/corosync/

2.复制corosync配置文件到各个节点

[root@Clone3 ~]# scp /etc/corosync/corosync.conf root@Clone2:/etc/corosync/corosync.conf

3.下载并安装crmsh,pssh

[root@Clone3 ~]# wget 
[root@Clone3 ~]# wget 
[root@Clone3 ~]# yum install pssh-2.3.1-2.el6.x86_64.rpm crmsh-1.2.6-4.el6.x86_64.rpm

启动并检验 
这里写图片描述

[root@Clone3 ~]# crm_mon 
这里写图片描述

注:由于pacemaker的配置内容比较多,所以我将在下一篇博客中重点来讲crmsh来配置高可用资源,以及常用服务器使用corosync+pacemaker搭建的高可用


Hearbeat实现高可用:http://www.crazyrui.pw:8088/index.php/2017/07/31/heartbeat/

                             或:  http://lnsane784.blog.51cto.com/1226518/1952393

自动化部署工具ansible:http://www.crazyrui.pw:8088/index.php/2017/07/27/linux_ansiable/

                                或:http://lnsane784.blog.51cto.com/1226518/1951496

LVS负载均衡:http://www.crazyrui.pw:8088/index.php/2017/07/24/linux_lvs/

                或:http://lnsane784.blog.51cto.com/1226518/1950589

DHCP,HTTPD,TOMCAT搭建:http://www.crazyrui.pw:8088/index.php/category/linux-server/

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


Insane_linux

相关文章
|
10月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
1230 0
|
10月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
638 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
12月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
525 5
|
12月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
12月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
12月前
|
Ubuntu 安全 Linux
Linux这5款微型发行版,体积小+精简,比win7运行还快,值得安装
以上5款微型发行版体积小且精简,如果你有台旧电脑,不妨试试?
|
12月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
12月前
|
Ubuntu Linux 数据安全/隐私保护
Win10安装Linux子系统教程!如何在Win10系统中安装Ubuntu!
登录系统后,输入cd /返回上一级,然后再输入“ls”查看一下系统文件目录,看看对不对!
|
12月前
|
Ubuntu Linux Shell
手把手教你安装适用于Linux的Windows子系统——Ubuntu
重启完成,你看看重新打开Ubuntu是不是发生了变化,等待几分钟,系统配置完成,根据提示设置用户名和密码即可