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 的结果相同

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

2.配置DNS

A.修改/etc/resolv.confB.修改/etc/hosts.conf
    [[email protected] ~]# 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的公钥和密钥
    [[email protected] ~]# 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 [email protected]
    The key‘s randomart image is:
    +--[ RSA 2048]----+
    |      .++.   .   |
    |      ....    oE |
    |      .. . .   o.|
    |       .. o   . o|
    |        S.   . o |
    |       o .. = .  |
    |           = o.  |
    |          . o .o |
    |           . oo  |
    +-----------------+
将公约复制到替他节点上
    [[email protected] ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
    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.
    [email protected]‘s password: 
    Now try logging into the machine, with "ssh ‘[email protected]‘", and check in:
      .ssh/authorized_keys    
    to make sure we haven‘t added extra keys that you weren‘t expecting.

Corosync安装
1.yum源安装

[[email protected] ~]# yum install corosync

2.编译安装

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

Corosync配置文件详解

[[email protected] ~]# 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源安装

[[email protected] ~]# yum install pacemaker

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

[[email protected] ~]# corosync-keygen
[[email protected] ~]# scp /etc/corosync/authkey [email protected]:/etc/corosync/

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

[[email protected] ~]# scp /etc/corosync/corosync.conf [email protected]:/etc/corosync/corosync.conf

3.下载并安装crmsh,pssh

[[email protected] ~]# wget 
[[email protected] ~]# wget 
[[email protected] ~]# yum install pssh-2.3.1-2.el6.x86_64.rpm crmsh-1.2.6-4.el6.x86_64.rpm

启动并检验

[[email protected] ~]# 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/

时间: 2024-12-19 07:12:51

Linux下使用Corosync+Pacemaker详解及安装的相关文章

Linux下DNS服务器搭建详解

 Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. 下面对DNS的工作流程及原理进行简要说明 DNS的查询流程:需要解析服务的Client先查看本机的/etc/hosts:若无结果,则client查看本地的DNS缓存服务器:若无结果,则查找所属域的首选DNS服务器:若此时本地首选DN

Linux下彻底卸载mysql详解

Linux下彻底卸载mysql详解 一.使用以下命令查看当前安装mysql情况,查找以前是否装有mysql 1 rpm -qa|grep -i mysql 可以看到如下图的所示: 显示之前安装了: MySQL-client-5.5.25a-1.rhel5 MySQL-server-5.5.25a-1.rhel5 2.停止mysql服务.删除之前安装的mysql 删除命令:rpm -e –nodeps 包名 1 2 rpm -ev MySQL-client-5.5.25a-1.rhel5  rpm

Linux下的文件目录结构详解

Linux下的文件目录结构详解 / Linux文件系统的上层根目录 /bin 存放用户可执行的程序 /boot 操作系统启动时所需要的文件 /dev 接口设备文件目录,例如:had表示硬盘 /etc 有关系统设置与管理的文件 /home 一般用户的主目录或者FTP站点管理目录 /mnt 装置的文件系统加载点,例如:光驱.软盘等... /proc 目前系统核心与程序执行的信息. /root 管理员的主目录 /sbin 此目录存放系统启动时所需要执行的程序 /tmp 用来存放暂存盘的目录 /usr

linux下ssh连接缓慢详解

摘自:https://blog.csdn.net/asd2479745295/article/details/83006379 linux下ssh连接缓慢详解原创皮的开心 最后发布于2018-10-11 09:13:37 阅读数 1824 收藏展开    最近发现公司新linux控制器使用ssh连接特别慢,大概要10秒钟左右,scp也是需要10秒左右,但是ping速度特别快.使用ssh -l IP -v 可以查看连接卡在,SSH2_MAG_SERVICE_ACCEPT received后,停顿了

Linux下套接字详解(十)---epoll模式下的IO多路复用服务器

epoll模型简介 epoll可是当前在Linux下开发大规模并发网络程序的热门人选,epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的. 其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,以及select模型和poll模型,那为何还要再引入Epoll这个东东呢?那还是有得说说的- 常用模型

Linux下面的yum命令详解

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...]其中的[opti

linux下grub相关知识详解

一.grub相关知识详解 (1)grub:GRand Unified Bootloader grub 0.x :grub legacy grub 1.x : grub2 grub legacy: stage1:mbr的bootloader阶段 stage1_5:mbr之后的扇区,让stage1的bootloader能够识别stage2所在分区的文件系统 stage2:磁盘分区(/boot/grub/) 配置文件:/etc/grub.conf-->/boot/grub/grub.conf stag

linux下手动创建用户详解

一.手动创建文件: 1.改/etc/passwd 文件 2.改/etc/shadow 3.改/etc/group 文件 4.mkdir /xiaoming 5.cp /etc/skel/.bash* /xiaoming/ 6.chown -R xiao (1). /etc/passwd 文件详解 root     x          0                    0                   root                /root   /bin/bash 用户

linux下的tar命令详解

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便