技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

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

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-05-28 06:18┆點(diǎn)擊:

  一、corosync、pacemaker介紹

  corosync是用于高可用環(huán)境中的提供通訊服務(wù)的,它位于高可用集群架構(gòu)中的底層(Message Layer),扮演著為各節(jié)點(diǎn)(node)之間提供心跳信息傳遞這樣的一個(gè)角色;

  pacemaker是一個(gè)開(kāi)源的高可用資源管理器(CRM),位于HA集群架構(gòu)中資源管理、資源代理(RA)這個(gè)層次,它不能提供底層心跳信息傳遞的功能,它要想與對(duì)方節(jié)點(diǎn)通信需要借助底層的心跳傳遞服務(wù),將信息通告給對(duì)方。通常它與corosync的結(jié)合方式有兩種:

  pacemaker作為corosync的插件運(yùn)行;

  pacemaker作為獨(dú)立的守護(hù)進(jìn)程運(yùn)行;

  corosync與pacemaker組成的是高可用的容器,需要高可用的服務(wù),可隨時(shí)添到容器中,或者從容器中刪除。靈活性很強(qiáng)。

  heartbeat我也用過(guò),請(qǐng)參考:heartbeat mysql雙機(jī)互備實(shí)現(xiàn)高可用 安裝配置,

  用過(guò)corosync與pacemaker后,個(gè)人推薦corosync與pacemaker。

  二,服務(wù)器說(shuō)明

  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,修改主機(jī)名

 代碼如下      

# vim /etc/sysconfig/network  
HOSTNAME=node1   //103機(jī)器node1,219機(jī)器就是node2  
  
# vim /etc/hosts     //添加以下內(nèi)容  
192.168.10.103 node1  
192.168.10.219 node2  
  
# /etc/init.d/network restart   //重啟網(wǎng)絡(luò) 

 

  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定義集群內(nèi)各節(jié)點(diǎn)間是如何通信的,totem本是一種協(xié)議,專用于corosync專用于各節(jié)點(diǎn)間的協(xié)議,協(xié)議是有版本的  
    version: 2 //totme 的版本  
    secauth: off //安全認(rèn)證是否打開(kāi),最好打開(kāi)  
    threads: 0 //用于安全認(rèn)證開(kāi)啟并行線程數(shù)  
    interface {  
        ringnumber: 0 //環(huán)號(hào)碼,如果一個(gè)主機(jī)有多塊網(wǎng)卡,避免心跳信息回流  
        bindnetaddr: 192.168.10.0 //網(wǎng)絡(luò)地址(節(jié)點(diǎn)所在的網(wǎng)絡(luò)地址段)  
        mcastaddr: 239.255.1.1 //廣播地址(系統(tǒng)自帶的廣播地址,沒(méi)作任何修改)  
        mcastport: 5405    //多播占用的端口  
        ttl: 1 //只向外一跳心跳信息,避免組播報(bào)文環(huán)路  
    }  
}  
  
logging {  
    fileline: off  
    to_stderr: no //日志信息是否發(fā)往錯(cuò)誤輸出(否)  
    to_logfile: yes //是否記錄日志文件  
    to_syslog: yes //是否記錄于syslog日志-->此類日志記錄于/var/log/message中  
    logfile: /var/log/cluster/corosync.log //日志存放位置  
    debug: off //只要不是為了排錯(cuò),最好關(guān)閉debug,它記錄的信息過(guò)于詳細(xì),會(huì)占用大量的磁盤IO.  
    timestamp: on //記錄日志的時(shí)間戳  
    logger_subsys {  
        subsys: AMF  
        debug: off  
    }  
}  
amf {  
    mode: disabled  
}  
service {  
    ver:0  
    name:pacemaker     //corosync啟動(dòng)后會(huì)自動(dòng)啟動(dòng)pacemaker  
}  
aisexec {    //啟用ais功能時(shí)以什么身份來(lái)運(yùn)行,默認(rèn)為root,aisexec區(qū)域也可以不寫(xiě)  
    user :root  
    group:root  

 

  4,node1上用corosync-keygen命令來(lái)生成密鑰

  [root@node1 corosync]# corosync-keygen //在/etc/corosync目錄下生成一個(gè)文件,authkey

  網(wǎng)上查資料時(shí),很多資料都說(shuō)要,配置各節(jié)點(diǎn)ssh互信(就是ssh不要密碼登錄),經(jīng)證實(shí)根本不需要,多此一舉。

  5,將node1上配置文件復(fù)制到node2,nodeN上

 代碼如下