当前位置: 首页 » 产品 » 商务广告 » 正文

基于corosync+pacemaker的nginx高可用集群安装配置

放大字体  缩小字体 发布日期: 2024-11-26 12:37   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:23
核心提示:  一、corosync、pacemaker介绍  corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(MessageLayer

  一、corosync、pacemaker介绍

  corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点(node)之间提供心跳信息传递这样的一个角色;

  pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方。通常它与corosync的结合方式有两种:

  pacemaker作为corosync的插件运行;

  pacemaker作为独立的守护进程运行;

  corosync与pacemaker组成的是高可用的容器,需要高可用的服务,可随时添到容器中,或者从容器中删除。灵活性很强。

  heartbeat我也用过,请参考:heartbeat mysql双机互备实现高可用 安装配置,

  用过corosync与pacemaker后,个人推荐corosync与pacemaker。

  二,服务器说明

  192.168.10.130 虚拟ip

  192.168.10.103 node1

  192.168.10.219 node2

  三,安装配置corosync,pacemaker,crmsh

  1,node1和node2上安装

 代码如下      

# yum install corosync pacemaker python-dateutil redhat-rpm-config pssh  
  
# rpm -ivh :/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/crmsh-2.1-1.6.x86_64.rpm 

 

  2,node1和node2,修改主机名

 代码如下      

# vim /etc/sysconfig/network  
HOSTNAME=node1   //103机器node1,219机器就是node2  
  
# vim /etc/hosts     //添加以下内容  
192.168.10.103 node1  
192.168.10.219 node2  
  
# /etc/init.d/network restart   //重启网络 

 

  3,node1配置corosync

 代码如下      

[root@node1 corosync]# cp corosync.conf.example corosync.conf     
  
[root@node1 corosync]# cat /etc/corosync/corosync.conf |awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}'  
compatibility: whitetank //兼容08.以前的版本  
totem { //totem定义集群内各节点间是如何通信的,totem本是一种协议,专用于corosync专用于各节点间的协议,协议是有版本的  
    version: 2 //totme 的版本  
    secauth: off //安全认证是否打开,最好打开  
    threads: 0 //用于安全认证开启并行线程数  
    interface {  
        ringnumber: 0 //环号码,如果一个主机有多块网卡,避免心跳信息回流  
        bindnetaddr: 192.168.10.0 //网络地址(节点所在的网络地址段)  
        mcastaddr: 239.255.1.1 //广播地址(系统自带的广播地址,没作任何修改)  
        mcastport: 5405    //多播占用的端口  
        ttl: 1 //只向外一跳心跳信息,避免组播报文环路  
    }  
}  
  
logging {  
    fileline: off  
    to_stderr: no //日志信息是否发往错误输出(否)  
    to_logfile: yes //是否记录日志文件  
    to_syslog: yes //是否记录于syslog日志-->此类日志记录于/var/log/message中  
    logfile: /var/log/cluster/corosync.log //日志存放位置  
    debug: off //只要不是为了排错,最好关闭debug,它记录的信息过于详细,会占用大量的磁盘IO.  
    timestamp: on //记录日志的时间戳  
    logger_subsys {  
        subsys: AMF  
        debug: off  
    }  
}  
amf {  
    mode: disabled  
}  
service {  
    ver:0  
    name:pacemaker     //corosync启动后会自动启动pacemaker  
}  
aisexec {    //启用ais功能时以什么身份来运行,默认为root,aisexec区域也可以不写  
    user :root  
    group:root  

 

  4,node1上用corosync-keygen命令来生成密钥

  [root@node1 corosync]# corosync-keygen //在/etc/corosync目录下生成一个文件,authkey

  网上查资料时,很多资料都说要,配置各节点ssh互信(就是ssh不要密码登录),经证实根本不需要,多此一举。

  5,将node1上配置文件复制到node2,nodeN上

 代码如下      
 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站