1. 程式人生 > >pacemaker + corosync 搭建高可用叢集

pacemaker + corosync 搭建高可用叢集

一、什麼是高可用叢集

        高可用叢集就是當某一個節點或伺服器發生故障時,另一個節點能夠自動且立即向外提供服務,即將有故障節點上的資源轉移到另一個節點上去,這樣另一個節點有了資源既可以向外提供服務。高可用叢集是用於單個節點發生故障時,能夠自動將資源、服務進行切換,這樣可以保證服務一直線上。在這個過程中,對於客戶端來說是透明的。

二  實現高可用叢集有三種方式:

(1)、主從方式(非對稱)

這種方式組建的高可用叢集通常包含2個節點和一個或多個伺服器,其中一臺作為主節點(active),另一臺作為備份節點(standy)。備份節點隨時都在檢測主節點的健康狀況,當主節點發生故障時,服務會自動切換到備份節點上以保證服務正常執行。

這種方式下的高可用叢集其中的備份節點平時不會啟動服務,只有發生故障時才會有用,因此感覺比較浪費。

(2)、對稱方式

這種方式一般包含2個節點和一個或多個服務,其中每一個節點都執行著不同的服務且相互作為備份,兩個節點互相檢測對方的健康狀況,這樣當其中一個節點發生故障時,該節點上的服務會自動切換到另一個節點上去。這樣可以保證服務正常執行。

(3)、多機方式

這種叢集包含多個節點和多個服務。每一個節點都可能執行和不執行服務,每臺伺服器都監視著幾個指定的服務,當其中的一個節點發生故障時,會自動切換到這組伺服器中的一個節點上去。

三  實現高可用叢集需要用到如下元件:

Messaging  Layer:可以理解為資訊層,主要的作用是傳遞當前節點的心跳資訊,並告知給對方,這樣對方就知道其他節點是否線上。如果不線上,則可以實現資源轉移,這樣另一臺節點就可以充當主節點,並正常提供服務。傳遞心跳資訊一般使用一根心跳線連線,該線介面可以使用序列介面也可以是乙太網介面來連線。每一個節點上都包含資訊層。

可以提供該元件的軟體有:

(1)heartbeat

heartbeat有三個版本即heartbeat v1、heartbeat  v2和heartbeat  v3

heartbeat v1是比較老的版本,heartbeat v2是目前穩定的版本,在做實驗的時候使用該版本。

(2)corosync(openAIS的子專案)

(3)keepalive

(4)cman

Heartbeat 是比較常用的軟體,Keepalived配置相對比較簡單,而ultramonkey好像不怎麼常用,Corosync比heartbeat功能還要強大,功能更加豐富

四 分別在node1,node2

yum install -y corosync pacemaker

設定配置檔案

cp /etc/corosync/corosync.example.conf    /etc/corosync/corosync.conf

vim /etc/corosync/corosync.conf

totem {

        version: 2

        secauth: off

        threads: 0

        interface {

                ringnumber: 0

                bindnetaddr: 192.168.1.0

                mcastaddr: 226.94.1.1

                mcastport: 5405

                ttl: 1

        }

}

logging {

        fileline: off

        to_stderr: no

        to_logfile: yes

        to_syslog: yes

        logfile: /var/log/cluster/corosync.log

        debug: off

        timestamp: on

  }

}

amf {

        mode: disabled

}


把配置檔案傳給node2,啟動服務即

 scp /etc/corosync/corosync.conf   node2:/etc/corosync/

 scp /etc/corosync/service.d/service   node2:/etc/corosync/service.d/

 service corosync start

 service pacemaker start

node2:

 service corosync start

 service pacemaker start


檢視當前狀態以及資源

crm_mon -1

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

Last updated: Sat May 27 10:56:55 2017

Last change: Sat May 27 10:55:57 2017 via crmd on node1

Stack: openais

Current DC: node1 - partition with quorum

Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14

2 Nodes configured, 2 expected votes

0 Resources configured.

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

Online: [ node1 node2 ]

如上所示,線上為node1,node2.下面介紹一些常用crm命令。

crm resource status 檢視資源狀態

crm node standby 離線

crm node online 線上

下面使用crm開始配置叢集資源,我們首先配置VIP地址:

crm configure primitive vip ocf:heartbeat:ipaddr2 \

>params ip=172.25.254.6 cidr_netmask=32 op monitor interval=30s


檢視vip配置以及狀態(在哪一個節點執行)

crm configure show

crm resource status vip

resource vip is running on: node1
vip執行在node1上,配置http服務。

vim /etc/httpd/conf/httpd.conf

/Location

把LOCATION開啟

並把下面改成127.0.0.1如下所示:

<Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1

</Location>

scp /etc/httpd/conf/httpd.conf  node2:/etc/httpd/conf


相關推薦

pacemaker + corosync 搭建可用叢集

一、什麼是高可用叢集         高可用叢集就是當某一個節點或伺服器發生故障時,另一個節點能夠自動且立即向外提供服務,即將有故障節點上的資源轉移到另一個節點上去,這樣另一個節點有了資源既可以向外提供服務。高可用叢集是用於單個節點發生故障時,能夠自動將資源、服務進行切換,

Centos7上利用corosync+pacemaker+crmsh構建可用叢集

一、高可用叢集框架 資源型別: primitive(native):表示主資源 group:表示組資源,組資源裡包含多個主資源 clone:表示克隆資源 masterslave:表示主從資源 資源約束方式: 位置約束:定義資源對節點的傾向性 排序約束:定義資源彼此能否執行在同一

Corosync+Pacemaker+NFS+Mysql可用叢集部署

Corosync+Pacemaker+NFS+Mysql高可用叢集部署(使用資源管理工具crmsh配置) 框架:crmsh(Corosync+pacemaker)+nfs+mysql 叢集節點1:192.168.88.132 cen7.field.com 叢集節點2:1

pacemaker+corosync+haporxy可用集群部署

-- mode balance del ystemd ipa hacluster pac 選擇 # 安裝 Corosync以及pacemaker 部署 yum install -y pacemaker pcs psmisc policycoreutils-python co

haproxy+pacemaker+corosync實現可用

pacemaker+corosync Pacemaker是一個叢集資源管理器。它利用叢集基礎構件(OpenAIS 、heartbeat或corosync)提供的訊息和成員管理能力來探測並從節點或資源級別的故障中恢復,以實現群集服務(亦稱資源)的最大可用性。 Corosync是叢集管理

CentOS 7下搭建可用叢集

本文以兩臺機器實現雙集熱備高可用叢集,主機名node1的IP為192.168.122.168 ,主機名node2的IP為192.168.122.169 。 一、安裝叢集軟體 必須軟體pcs,pacemaker,corosync,fence-agents-all,如果需要配置相關服務,也要安裝對

Mongodb 3.4配置搭建可用叢集(2)

環境準備Centos6.5 三臺伺服器: 10.68.17.106、10.68.17.109、10.68.17.110 埠分配: mongos:20000、config:21000、shard1:27001、shard2:27002、shard3:27003 分別為每臺機器

hadoop2.7.5搭建可用叢集

<!-- 指定副本數 --><property><name>dfs.replication</name><value>2</value></property><!-- 配置namenode和datanode的工作目錄-資

使用keepalived搭建可用叢集

開發十年,就只剩下這套架構體系了! >>>   

corosync+pacemaker配置可用叢集

2018-03-02 18:50:21 一、環境介紹: Node1: CentOS6      192.168.9.168   192-168-9-168 CentOS6      192.168.9.176 &n

corosync+pacemaker使用crmsh構建可用叢集

一、叢集簡介  引自suse官方關於corosync的高可用叢集的框架圖:          由圖,我們可以看到,suse官方將叢集的Architecture Layers分成四層。最低層Messaging/Infra

Corosync+Pacemaker+NFS+Httpd可用web叢集部署

Corosync+Pacemaker+NFS+Httpd高可用web叢集(使用資源管理工具pcs配置) 框架:pcs(Corosync+pacemaker)+nfs+httpd 叢集節點1:192.168.88.132  cen7.field.com 叢集節點2:192

可用叢集corosync+pacemaker

  1、概念   在傳統Linux叢集種類,主要分了三類,一類是LB叢集,這類叢集主要作用是對使用者的流量做負載均衡,讓其後端每個server都能均衡的處理一部分請求;這類叢集有一個特點就是前端排程器通常是單點,後端server有很多臺,即便某一臺後端server掛掉,也不影響使用者的請求;其次就是HA叢集,

可用叢集corosync+pacemaker之crmsh使用(一)

  上一篇部落格我們聊了下高可用叢集corosync+pacemaker的相關概念以及corosync的配置,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13585921.html;今天我們來說一下corosync+pacemaker高可用叢集的配置工具crmsh安裝

可用叢集corosync+pacemaker之crmsh使用(二)

  上一篇部落格我們聊到了crmsh的安裝以及配置一個資源到corosync+pacemaker高可用叢集上的相關命令的用法,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13592484.html;今天我們繼續來說crmsh的其他常用命令的用法;   node常用命令

corosync+pacemaker+crmsh的可用web集群的實現

corosync pacemaker crmsh httpd網絡規劃:node1:eth0:172.16.31.10/16node2: eth0: 172.16.31.11/16nfs: eth0: 172.16.31.12/15註:nfs在提供NFS服務的同時是一臺NTP服務器,可以讓node1和nod

corosync+pacemaker+nginx+nfs可用

簡單的nginx高可用用corosync+pacemaker做一個簡單的nginx高可用,然後將nfs掛載到nginx的網頁訪問目錄。由於nginx是源代碼安裝的,所以要寫入到systemd來管理才能夠被pacemaker識別到。接下來,寫一個nginx啟動文件:[root@centosa system]#

Kubernetes實戰 可用叢集搭建,配置,運維與應用

1-1 K8S導學 1-2 搭建K8S叢集步驟和要點介紹 1-3 搭建三節點Ubuntu環境 1-4 安裝容器引擎 1-5 下載Kubeadm、node元件和命令列工具 1-6 向叢集中加入worker節點 1-7 安裝dashboard和heapste

Flume NG可用叢集搭建詳解(基於flume-1.7.0)

1、Flume NG簡述 Flume NG是一個分散式,高可用,可靠的系統,它能將不同的海量資料收集,移動並存儲到一個數據儲存系統中。輕量,配置簡單,適用於各種日誌收集,並支援 Failover和負載均衡。並且它擁有非常豐富的元件。Flume NG採用的是三層架構:Agent層,Collecto

搭建Spark可用叢集

通過zookeeper搭建高可用spark叢集 1、需要搭建一個zk叢集 2、配置檔案修改(spark-env.sh) 註釋掉 export SPARK_MASTER_HOST=hdp-node-01 新增 SPARK_DAEMON_JAVA_OPTS export SPA