自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux之HA高可用集群的基礎(chǔ)概念總結(jié)

系統(tǒng) Linux
HA(High Availability)高可用集群,其特點(diǎn)為根據(jù)實(shí)際需求為前端Diretor,后端RS-server,數(shù)據(jù)庫(kù)服務(wù)器,共享存儲(chǔ)等集群節(jié)點(diǎn)做一個(gè)從備份服務(wù)器或者多個(gè)服務(wù)器互相備份,一旦主服務(wù)器掛掉,備份服務(wù)器能立馬檢測(cè)到并取代主服務(wù)器上的資源繼續(xù)運(yùn)行服務(wù),從而最大限度避免了因服務(wù)器宕機(jī)造成的服務(wù)中止。

 Linux之HA高可用集群的基礎(chǔ)概念總結(jié)

HA(High Availability)高可用集群,其特點(diǎn)為根據(jù)實(shí)際需求為前端Diretor,后端RS-server,數(shù)據(jù)庫(kù)服務(wù)器,共享存儲(chǔ)等集群節(jié)點(diǎn)做一個(gè)從備份服務(wù)器或者多個(gè)服務(wù)器互相備份,一旦主服務(wù)器掛掉,備份服務(wù)器能立馬檢測(cè)到并取代主服務(wù)器上的資源繼續(xù)運(yùn)行服務(wù),從而***限度避免了因服務(wù)器宕機(jī)造成的服務(wù)中止。

主節(jié)點(diǎn)(active/primary)備節(jié)點(diǎn)(passive/standby)

主調(diào)度器(Director)一般為集群中的關(guān)鍵節(jié)點(diǎn),所以一般都有備份節(jié)點(diǎn)的存在;而后端RS-server可以根據(jù)實(shí)際可靠需求加備份節(jié)點(diǎn),而存儲(chǔ)服務(wù)器,如Mysql-Server,也作為集群的關(guān)鍵節(jié)點(diǎn),一般都配有主從服務(wù)器。

HA集群著重服務(wù)的可靠性和穩(wěn)定性?xún)蓚€(gè)方面

可用性=服務(wù)在線時(shí)間/(服務(wù)在線時(shí)間+故障處理時(shí)間)

可用性由 99%,99.9%,99.99%,99.999%不斷提升,每多一個(gè)9,服務(wù)可用性提高十倍。在某些應(yīng)用中服務(wù)可用性都要達(dá)到五個(gè)9的級(jí)別如:金融交易系統(tǒng).....

HA Resource(高可用集群資源):一旦節(jié)點(diǎn)故障這些資源需要轉(zhuǎn)移到其他備份節(jié)點(diǎn)上,包括VIP,服務(wù),隔離設(shè)備,文件系統(tǒng)。每個(gè)RS上都運(yùn)行有服務(wù)資源,當(dāng)有多個(gè)RS節(jié)點(diǎn)時(shí),一旦某個(gè)節(jié)點(diǎn)發(fā)生故障要立馬進(jìn)行資源轉(zhuǎn)移到其他節(jié)點(diǎn),讓其他節(jié)點(diǎn)處理未處理完的請(qǐng)求,并且要防止Director將前端請(qǐng)求繼續(xù)此節(jié)點(diǎn),但有如此多的節(jié)點(diǎn)存在,故障發(fā)生時(shí)到底往哪個(gè)節(jié)點(diǎn)轉(zhuǎn)移了?且要是這個(gè)故障節(jié)點(diǎn)又恢復(fù)了如何處理?這時(shí)就要定義資源的黏性,資源的約束等。

資源的粘性:資源更傾向運(yùn)行在哪個(gè)節(jié)點(diǎn)上,即資源與節(jié)點(diǎn)的傾向性

如:定義web服務(wù)在A服務(wù)器上的資源粘性為120,在B服務(wù)器上的資源粘性為100,一旦A發(fā)生故障又恢復(fù)正常后web服務(wù)又會(huì)從B服務(wù)器上轉(zhuǎn)移到A服務(wù)器

資源的黏性:資源是否傾向運(yùn)行在當(dāng)前節(jié)點(diǎn),Score>0(傾向)Scoro<0(不傾向,即一有其他可運(yùn)行此服務(wù)的節(jié)點(diǎn),資源就立馬轉(zhuǎn)移到其他節(jié)點(diǎn))

資源的約束:定義資源與資源的傾向性

1. colocation(排列約束):定義不同資源能否運(yùn)行在同一個(gè)節(jié)點(diǎn)上,Score>0(可以),Score<0(不可以) 

   -inf(負(fù)無(wú)窮。。決不能運(yùn)行在同一節(jié)點(diǎn))

   inf(正無(wú)窮。。必須運(yùn)行在同一個(gè)節(jié)點(diǎn))

2. location(位置約束):每個(gè)節(jié)點(diǎn)都可以給某資源一個(gè)Score,Score >0(資源傾向運(yùn)行在此節(jié)點(diǎn)) 

3. Score <0(資源不傾向運(yùn)行在此節(jié)點(diǎn))

一般資源黏性+位置約束 哪個(gè)大,資源更傾向運(yùn)行在那個(gè)節(jié)點(diǎn)

Order(順序約束):定義資源啟動(dòng)關(guān)閉時(shí)的順序,因?yàn)椴煌Y源可能有依賴(lài)關(guān)系如:VIP與IPVS規(guī)則,VIP先啟動(dòng)IPVS規(guī)則后啟動(dòng)

資源分類(lèi)

1. Primitive 一個(gè)資源單獨(dú)只運(yùn)行在一個(gè)節(jié)點(diǎn)上(主資源)。

2. clone  每個(gè)節(jié)點(diǎn)上都運(yùn)行此資源。

3. group  將多個(gè)資源劃分為一個(gè)組,同組資源同進(jìn)退,一起在節(jié)點(diǎn)上進(jìn)行轉(zhuǎn)移。

4. master/slave 主/從,一個(gè)資源只能運(yùn)行在兩個(gè)節(jié)點(diǎn)上,且一個(gè)為主一個(gè)為從。

備份節(jié)點(diǎn)如何知道主節(jié)點(diǎn)故障?

 heartbeat(心跳信息):每個(gè)節(jié)點(diǎn)都要隨時(shí)與備份節(jié)點(diǎn)上進(jìn)行通信,目的為檢測(cè)對(duì)方是否在線

但當(dāng)存在三個(gè)及三個(gè)以上節(jié)點(diǎn)時(shí)且這些節(jié)點(diǎn)也要互相傳輸心跳信息(如 運(yùn)行有同種服務(wù)的RS之間互為備份節(jié)點(diǎn),),從而判斷自己是否故障,是否為合法節(jié)點(diǎn),如何判斷?

將所有節(jié)點(diǎn)定義在一個(gè)組播內(nèi)讓其互相ping, 比如有A、B、C、D、E 五個(gè)RS節(jié)點(diǎn)運(yùn)行有Web服務(wù),某時(shí)刻A、B、C三個(gè)節(jié)點(diǎn)能互相ping通,而D、E兩個(gè)節(jié)點(diǎn)可以互相ping 通,則可以定義一個(gè)Quorum(投票)機(jī)制,為每個(gè)節(jié)點(diǎn)定義為一票,則五個(gè)節(jié)點(diǎn)共五票,且定義只有獲得一半以上票數(shù)才為合法節(jié)點(diǎn),所以此時(shí)A、B、C節(jié)點(diǎn)共三票,而D,E節(jié)點(diǎn)共兩票,可以認(rèn)為D,E節(jié)點(diǎn)未非法節(jié)點(diǎn)(即D,E節(jié)點(diǎn)出了故障)

或者A節(jié)點(diǎn)ping不通其他節(jié)點(diǎn)獲得一票,而B(niǎo)、C、D、E四個(gè)節(jié)點(diǎn)可以互相ping通獲得四票,可以認(rèn)為A節(jié)點(diǎn)為非法節(jié)點(diǎn)

而對(duì)于多節(jié)點(diǎn)集群來(lái)說(shuō),為了投票機(jī)制的實(shí)施,節(jié)點(diǎn)數(shù)***為奇數(shù),獲得票數(shù)超過(guò)一半則認(rèn)為合法

且可以定義不同節(jié)點(diǎn)的擁有票數(shù)不同,如A節(jié)點(diǎn)性能好有兩票投票權(quán),B節(jié)點(diǎn)性能一般擁有一票投票權(quán),此時(shí)就不用節(jié)點(diǎn)奇數(shù),只要總票數(shù)為奇數(shù)便可以產(chǎn)生決策。

一旦節(jié)點(diǎn)被認(rèn)為為非法節(jié)點(diǎn)應(yīng)對(duì)其采取什么措施?

1. Freeze(凍結(jié)) 此非法只處理已經(jīng)連接的請(qǐng)求,不再接受新的請(qǐng)求,處理完請(qǐng)求后再進(jìn)行資源轉(zhuǎn)移

2. stop 非法節(jié)點(diǎn)直接停止運(yùn)行服務(wù),進(jìn)行資源轉(zhuǎn)移,這種措施最常用

3. ignore 直接忽略 繼續(xù)正常運(yùn)行服務(wù) 

什么時(shí)候會(huì)用到ignore?

只有兩個(gè)互為備份的節(jié)點(diǎn)時(shí)

當(dāng)只有兩個(gè)節(jié)點(diǎn)互為備份時(shí),一旦主節(jié)點(diǎn)ping不通備份節(jié)點(diǎn),這時(shí)因?yàn)橹挥袃蓚€(gè)節(jié)點(diǎn)無(wú)法采取投票機(jī)制(一旦采取投票機(jī)制則兩個(gè)節(jié)點(diǎn)都只獲得一票,都認(rèn)為自己掛掉了,那么不但主節(jié)點(diǎn)會(huì)停止服務(wù),原本應(yīng)該替代主節(jié)點(diǎn)的備份節(jié)點(diǎn)也因?yàn)檎J(rèn)為自己非法而無(wú)法對(duì)主節(jié)點(diǎn)進(jìn)行取代),主節(jié)點(diǎn)只能繼續(xù)運(yùn)行服務(wù),直到被Stonish設(shè)備或fence設(shè)備隔離進(jìn)行資源轉(zhuǎn)移,這時(shí)備份節(jié)點(diǎn)也會(huì)取代主節(jié)點(diǎn)。

為了提供一個(gè)一個(gè)MySQL服務(wù)要具有哪些資源?

1. VIP 專(zhuān)門(mén)提供服務(wù)

2. FIP(float IP)流動(dòng)的IP,可以再節(jié)點(diǎn)之間轉(zhuǎn)移

3. Mysql服務(wù)

4. 文件系統(tǒng)(要進(jìn)行掛載)

一旦一個(gè)節(jié)點(diǎn)掛掉,向哪個(gè)節(jié)點(diǎn)轉(zhuǎn)移?

定義個(gè)節(jié)點(diǎn)的資源約束score,哪個(gè)score大,更傾向于向哪個(gè)節(jié)點(diǎn)轉(zhuǎn)移

腦裂:假設(shè)一個(gè)集群有4個(gè)RS_Server A、B、C、D

其中A正在往一個(gè)文件中寫(xiě)入數(shù)據(jù),并且由于A服務(wù)器的CPU繁忙或錯(cuò)誤添加了一條Iptables規(guī)則隔離了heartbeat傳輸?shù)仍?,未?duì)其備份節(jié)點(diǎn)發(fā)出自己的心跳信息,這時(shí)CRM(cluster resource manager 專(zhuān)門(mén)用來(lái)收集集群資源或服務(wù)信息的集群資源管理器)發(fā)現(xiàn)檢測(cè)不到A的心跳信息,認(rèn)為A服務(wù)器掛掉了,便把A上的所有資源轉(zhuǎn)移到了其他節(jié)點(diǎn)比如B上,這是B節(jié)點(diǎn)繼續(xù)完成A節(jié)點(diǎn)的任務(wù)(向文件中寫(xiě)入數(shù)據(jù)),就會(huì)造成A和B同時(shí)往一個(gè)文件中寫(xiě)入,便會(huì)造成文件系統(tǒng)的崩潰及文件錯(cuò)亂。

如何避免腦裂?

在進(jìn)行資源轉(zhuǎn)移之前先將原來(lái)的節(jié)點(diǎn)進(jìn)行資源隔離:

1. 節(jié)點(diǎn)隔離 

    Stonish設(shè)備 如 直接斷電爆頭,一發(fā)現(xiàn)某節(jié)點(diǎn)無(wú)法傳輸heartbeat直接給其斷電

2. 資源級(jí)別隔離

    FC-SAN (光纖交換機(jī))可以實(shí)現(xiàn)在存儲(chǔ)資源隔離故障節(jié)點(diǎn)的訪問(wèn)

如何檢測(cè)一個(gè)節(jié)點(diǎn)是否故障?

1. 加仲裁磁盤(pán) 主節(jié)點(diǎn)往一個(gè)共享磁盤(pán)中不斷寫(xiě)入數(shù)據(jù),一旦備節(jié)點(diǎn)發(fā)現(xiàn)自己可以訪問(wèn)共享磁盤(pán)但未發(fā)現(xiàn)主節(jié)點(diǎn)寫(xiě)入數(shù)據(jù),則可以認(rèn)為主節(jié)點(diǎn)掛掉,進(jìn)行隔離

2. ping網(wǎng)關(guān) 只要能ping通網(wǎng)關(guān) 說(shuō)明本節(jié)點(diǎn)正常,一旦ping不同則可以認(rèn)為自己發(fā)生故障進(jìn)行隔離

3. watchdog看門(mén)狗,協(xié)調(diào)同一個(gè)節(jié)點(diǎn)上不同進(jìn)程每隔一段時(shí)間往watchdog中寫(xiě)入數(shù)據(jù),一旦寫(xiě)入中斷watchdog會(huì)嘗試重啟此進(jìn)程,如果重啟不了,則此節(jié)點(diǎn)故障,從此集群中去掉

Massaging Layer(負(fù)責(zé)以UDP協(xié)議在主節(jié)點(diǎn)與備節(jié)點(diǎn)間以組播模式傳輸heartbeat,資源黏性,資源約束,等信息),Massaging Layer 也是一個(gè)服務(wù)(UDP/694),且要讓其開(kāi)機(jī)自啟動(dòng)。

Cluster Resource Manager(集群的資源管理器):專(zhuān)門(mén)處理統(tǒng)計(jì)收集群上每個(gè)資源的狀態(tài)如:資源黏性資源約束,節(jié)點(diǎn)是否健康;并又CRM的子件PE計(jì)算出資源現(xiàn)在應(yīng)該運(yùn)行在哪個(gè)節(jié)點(diǎn)上,再由CRM的子件TE指揮每個(gè)節(jié)點(diǎn)的LRM完成相應(yīng)操作如:將服務(wù)從A節(jié)點(diǎn)遷移到B,在B節(jié)點(diǎn)上啟用VIP,文件系統(tǒng).....

高可用集群節(jié)點(diǎn)上的服務(wù)啟動(dòng)都要由CRM決定,不能讓其自啟動(dòng),所以必須#chkocnfig 服務(wù)名稱(chēng) off

PE:policy engine 策略引擎

TE:Tranaction Engine 事物引擎

LRM:location Resource Manager 本地資源管理器

PE,TE,LRM都是CRM的組成

RA:Resource Agent資源代理

所有能夠負(fù)責(zé)資源啟動(dòng)、關(guān)閉、重啟、狀態(tài)監(jiān)測(cè)的腳本都叫RA,RA運(yùn)行在每個(gè)節(jié)點(diǎn)上

RA的類(lèi)別

Legency heartbeat v1 RA

LSB 所有遵循linux的shell編程支持start|restart|stop|status的腳本都是LSB類(lèi)型 如/etc/rc.d/init.d/目錄中的所有腳本

OCF(open cluster framework)此類(lèi)腳本不但可以接受start|restart|stop|status等參數(shù),甚至可以接受monitior(監(jiān)控)等參數(shù)

DC(designated coordinator)事物協(xié)調(diào)員,DC也為CRM的子件,是在多節(jié)點(diǎn)中選舉出的一個(gè)節(jié)點(diǎn)

Messager Layer的軟件實(shí)現(xiàn)

1. heartbeat(v1 v2 v3 三個(gè)版本)

2. heartbeat v3 又分為heartbeat、pacemaker、cluster-glue

3. CoroSync 紅帽6.0后默認(rèn)使用的Messaging Layer

4. Cman  紅帽5.0后默認(rèn)使用的Messaging Layer 但由于工作在內(nèi)核空間且配置復(fù)雜所以6.0后換成了工作在用戶(hù)空間的CoroSync

5. keepalived keepalived的配置與應(yīng)用與前幾個(gè)相比有所不同,如對(duì)VIP的配置是基于VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協(xié)議實(shí)現(xiàn)的

CRM(cluster resource manager)層的軟件實(shí)現(xiàn)

CRM必須工作在Messaging Layer 層上

1. Haresources (heartbeat v1 v2 都有自帶)

2. CRM (heartbeat v2 自帶)

3. Pacemaker (heartbeat v3 獨(dú)立出去的項(xiàng)目)

4. Ragmanager (專(zhuān)門(mén)為Cman提供的一種crm)

所以集群的Messager Layer與CRM 組合如下:

1. haresource + heartbeat v1/v2 

2. crm + heartbeat v2

3. pacemaker + corosync

4. pacemaker + heartbeat v3

5. cman + ragmanager

那么定義一個(gè)Web服務(wù)的高可用集群至少要幾個(gè)節(jié)點(diǎn)?要定義幾個(gè)資源?

至少需要兩個(gè)節(jié)點(diǎn),上面要運(yùn)行MassagerLayer 和 CRM

至少要定義四個(gè)資源 VIP 、httpd服務(wù) 、Filesystem、Stonish設(shè)備  

為了避免隨便一個(gè)服務(wù)器配好資源,裝上MassagerLayer和CRM,時(shí)間再一同步就可以隨便加入我們的集群系統(tǒng),該如何處理?

首先每個(gè)節(jié)點(diǎn)要裝Messager Layer和CRM節(jié)點(diǎn)之間進(jìn)行heartbeat等信息傳輸時(shí)都因該采取加密傳輸(如進(jìn)行hash運(yùn)算), 如果有兩個(gè)節(jié)點(diǎn)可以進(jìn)行單播傳輸heartbeat信息,兩個(gè)以上節(jié)點(diǎn)可以進(jìn)行單播、組播、廣播傳輸heartbeat信息,高級(jí)可用集群節(jié)點(diǎn)上的服務(wù)必須由CRM控制,所以要設(shè)置CRM自啟動(dòng)而服務(wù)要用chkconfig關(guān)閉開(kāi)機(jī)自啟動(dòng),而Massager Layer也是一個(gè)服務(wù)且要開(kāi)機(jī)自啟動(dòng),Messager Layer監(jiān)聽(tīng)在UDP/694上,以UDP協(xié)議在Messager Layer層傳輸heartbeat等信息。

如果要配置一個(gè)HA集群要注意什么?

節(jié)點(diǎn)名稱(chēng)要與uname -n的結(jié)果一致;節(jié)點(diǎn)名稱(chēng)/IP的解析***在/etc/hosts文件中,不要用DNS解析,否則DNS-Server掛掉會(huì)對(duì)集群造成影響;節(jié)點(diǎn)的時(shí)間必須同步;SSH互信通信(當(dāng)要停止或其他節(jié)點(diǎn)的HA集群服務(wù)時(shí),不能從此節(jié)點(diǎn)進(jìn)行,而要從一個(gè)正常的節(jié)點(diǎn)進(jìn)行HA服務(wù)的關(guān)閉或啟動(dòng))這是就必須要求能夠以SSH遠(yuǎn)程登錄到其他節(jié)點(diǎn)。

那***個(gè)節(jié)點(diǎn)怎么辦? 

***個(gè)節(jié)點(diǎn)要自我啟動(dòng),然后啟動(dòng)其他節(jié)點(diǎn)上的服務(wù) 

責(zé)任編輯:龐桂玉 來(lái)源: 馬哥Linux運(yùn)維
相關(guān)推薦

2015-10-21 12:58:58

keepalived集群Linux

2014-05-08 14:58:42

高可用集群負(fù)載均衡集群

2015-05-12 10:22:05

MySQL

2010-12-08 08:57:11

keepalivedMySQL-HA

2009-08-27 10:14:04

LINQ基礎(chǔ)概念

2012-02-15 22:40:23

heartbeat高可用

2011-04-14 13:13:28

SQL serverSQL Mirror

2023-11-07 07:30:18

Hadoop高可用

2024-02-27 09:48:25

Redis集群數(shù)據(jù)庫(kù)

2009-08-13 18:02:50

C#基礎(chǔ)概念

2017-11-13 11:07:32

Nginx搭建高可用

2018-04-17 14:17:14

高可用服務(wù)器虛擬化

2018-01-12 14:20:37

數(shù)據(jù)庫(kù)MySQL高可用架構(gòu)

2020-10-28 07:10:07

Nginx高可用高并發(fā)

2019-08-27 15:56:44

MySQL 互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)

2017-02-06 11:43:57

ZooKeeper集群

2017-02-19 19:57:05

ZooKeeper集群

2014-10-09 10:04:23

CentOS集群

2022-05-31 08:04:03

Redis高可用集群

2017-01-17 10:25:06

HBase集群運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)