在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux之HA高可用集群知識,學到就是賺到

馬哥Linux運維 ? 來源:互聯網 ? 作者:佚名 ? 2017-12-23 07:10 ? 次閱讀

HA(High Availability)高可用集群,其特點為根據實際需求為前端Diretor,后端RS-server,數據庫服務器,共享存儲等集群節點做一個從備份服務器或者多個服務器互相備份,一旦主服務器掛掉,備份服務器能立馬檢測到并取代主服務器上的資源繼續運行服務,從而最大限度避免了因服務器宕機造成的服務中止。


主節點(active/primary)備節點(passive/standby)

主調度器(Director)一般為集群中的關鍵節點,所以一般都有備份節點的存在;而后端RS-server可以根據實際可靠需求加備份節點,而存儲服務器,如Mysql-Server,也作為集群的關鍵節點,一般都配有主從服務器。

HA集群著重服務的可靠性和穩定性兩個方面

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

可用性由 99%,99.9%,99.99%,99.999%不斷提升,每多一個9,服務可用性提高十倍。在某些應用中服務可用性都要達到五個9的級別如:金融交易系統.....

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

資源的粘性:資源更傾向運行在哪個節點上,即資源與節點的傾向性

如:定義web服務在A服務器上的資源粘性為120,在B服務器上的資源粘性為100,一旦A發生故障又恢復正常后web服務又會從B服務器上轉移到A服務器

資源的黏性:資源是否傾向運行在當前節點,Score>0(傾向)Scoro<0(不傾向,即一有其他可運行此服務的節點,資源就立馬轉移到其他節點)

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

  1. colocation(排列約束):定義不同資源能否運行在同一個節點上,Score>0(可以),Score<0(不可以)?

    -inf(負無窮。。決不能運行在同一節點)

    inf(正無窮。。必須運行在同一個節點)

  2. location(位置約束):每個節點都可以給某資源一個Score,Score >0(資源傾向運行在此節點)

  3. Score <0(資源不傾向運行在此節點)

一般資源黏性+位置約束 哪個大,資源更傾向運行在那個節點

Order(順序約束):定義資源啟動關閉時的順序,因為不同資源可能有依賴關系如:VIP與IPVS規則,VIP先啟動IPVS規則后啟動

資源分類

  1. Primitive 一個資源單獨只運行在一個節點上(主資源)。

  2. clone 每個節點上都運行此資源。

  3. group 將多個資源劃分為一個組,同組資源同進退,一起在節點上進行轉移。

  4. master/slave 主/從,一個資源只能運行在兩個節點上,且一個為主一個為從。

備份節點如何知道主節點故障?

heartbeat(心跳信息):每個節點都要隨時與備份節點上進行通信,目的為檢測對方是否在線

但當存在三個及三個以上節點時且這些節點也要互相傳輸心跳信息(如 運行有同種服務的RS之間互為備份節點,),從而判斷自己是否故障,是否為合法節點,如何判斷?

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

或者A節點ping不通其他節點獲得一票,而B、C、D、E四個節點可以互相ping通獲得四票,可以認為A節點為非法節點

而對于多節點集群來說,為了投票機制的實施,節點數最好為奇數,獲得票數超過一半則認為合法

且可以定義不同節點的擁有票數不同,如A節點性能好有兩票投票權,B節點性能一般擁有一票投票權,此時就不用節點奇數,只要總票數為奇數便可以產生決策。

一旦節點被認為為非法節點應對其采取什么措施?

  1. Freeze(凍結) 此非法只處理已經連接的請求,不再接受新的請求,處理完請求后再進行資源轉移

  2. stop 非法節點直接停止運行服務,進行資源轉移,這種措施最常用

  3. ignore 直接忽略 繼續正常運行服務

什么時候會用到ignore?

只有兩個互為備份的節點時

當只有兩個節點互為備份時,一旦主節點ping不通備份節點,這時因為只有兩個節點無法采取投票機制(一旦采取投票機制則兩個節點都只獲得一票,都認為自己掛掉了,那么不但主節點會停止服務,原本應該替代主節點的備份節點也因為認為自己非法而無法對主節點進行取代),主節點只能繼續運行服務,直到被Stonish設備或fence設備隔離進行資源轉移,這時備份節點也會取代主節點。

為了提供一個一個MySQL服務要具有哪些資源?

  1. VIP 專門提供服務

  2. FIP(float IP)流動的IP,可以再節點之間轉移

  3. Mysql服務

  4. 文件系統(要進行掛載)

一旦一個節點掛掉,向哪個節點轉移?

定義個節點的資源約束score,哪個score大,更傾向于向哪個節點轉移

腦裂:假設一個集群有4個RS_Server A、B、C、D

其中A正在往一個文件中寫入數據,并且由于A服務器的CPU繁忙或錯誤添加了一條Iptables規則隔離了heartbeat傳輸等原因,未對其備份節點發出自己的心跳信息,這時CRM(cluster resource manager 專門用來收集集群資源或服務信息的集群資源管理器)發現檢測不到A的心跳信息,認為A服務器掛掉了,便把A上的所有資源轉移到了其他節點比如B上,這是B節點繼續完成A節點的任務(向文件中寫入數據),就會造成A和B同時往一個文件中寫入,便會造成文件系統的崩潰及文件錯亂。

如何避免腦裂?

在進行資源轉移之前先將原來的節點進行資源隔離:

  1. 節點隔離

    Stonish設備 如 直接斷電爆頭,一發現某節點無法傳輸heartbeat直接給其斷電

  2. 資源級別隔離

    FC-SAN (光纖交換機)可以實現在存儲資源隔離故障節點的訪問

如何檢測一個節點是否故障?

  1. 加仲裁磁盤 主節點往一個共享磁盤中不斷寫入數據,一旦備節點發現自己可以訪問共享磁盤但未發現主節點寫入數據,則可以認為主節點掛掉,進行隔離

  2. ping網關 只要能ping通網關 說明本節點正常,一旦ping不同則可以認為自己發生故障進行隔離

  3. watchdog看門狗,協調同一個節點上不同進程每隔一段時間往watchdog中寫入數據,一旦寫入中斷watchdog會嘗試重啟此進程,如果重啟不了,則此節點故障,從此集群中去掉

Massaging Layer(負責以UDP協議在主節點與備節點間以組播模式傳輸heartbeat,資源黏性,資源約束,等信息),Massaging Layer 也是一個服務(UDP/694),且要讓其開機自啟動。

Cluster Resource Manager(集群的資源管理器):專門處理統計收集群上每個資源的狀態如:資源黏性資源約束,節點是否健康;并又CRM的子件PE計算出資源現在應該運行在哪個節點上,再由CRM的子件TE指揮每個節點的LRM完成相應操作如:將服務從A節點遷移到B,在B節點上啟用VIP,文件系統.....

高可用集群節點上的服務啟動都要由CRM決定,不能讓其自啟動,所以必須#chkocnfig 服務名稱 off

PE:policy engine 策略引擎

TE:Tranaction Engine 事物引擎

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

PE,TE,LRM都是CRM的組成

RA:Resource Agent資源代理

所有能夠負責資源啟動、關閉、重啟、狀態監測的腳本都叫RA,RA運行在每個節點上

RA的類別

Legency heartbeat v1 RA

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

OCF(open cluster framework)此類腳本不但可以接受start|restart|stop|status等參數,甚至可以接受monitior(監控)等參數

DC(designated coordinator)事物協調員,DC也為CRM的子件,是在多節點中選舉出的一個節點

Messager Layer的軟件實現

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

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

  3. CoroSync 紅帽6.0后默認使用的Messaging Layer

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

  5. keepalived keepalived的配置與應用與前幾個相比有所不同,如對VIP的配置是基于VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協議實現的

CRM(cluster resource manager)層的軟件實現

CRM必須工作在Messaging Layer 層上

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

  2. CRM (heartbeat v2 自帶)

  3. Pacemaker (heartbeat v3 獨立出去的項目)

  4. Ragmanager (專門為Cman提供的一種crm)

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

  1. haresource + heartbeat v1/v2

  2. crm + heartbeat v2

  3. pacemaker + corosync

  4. pacemaker + heartbeat v3

  5. cman + ragmanager

那么定義一個Web服務的高可用集群至少要幾個節點?要定義幾個資源?

至少需要兩個節點,上面要運行MassagerLayer 和 CRM

至少要定義四個資源 VIP 、httpd服務 、Filesystem、Stonish設備

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

首先每個節點要裝Messager Layer和CRM節點之間進行heartbeat等信息傳輸時都因該采取加密傳輸(如進行hash運算),如果有兩個節點可以進行單播傳輸heartbeat信息,兩個以上節點可以進行單播、組播、廣播傳輸heartbeat信息,高級可用集群節點上的服務必須由CRM控制,所以要設置CRM自啟動而服務要用chkconfig關閉開機自啟動,而Massager Layer也是一個服務且要開機自啟動,Messager Layer監聽在UDP/694上,以UDP協議在Messager Layer層傳輸heartbeat等信息。

如果要配置一個HA集群要注意什么?

節點名稱要與uname -n的結果一致;節點名稱/IP的解析最好在/etc/hosts文件中,不要用DNS解析,否則DNS-Server掛掉會對集群造成影響;節點的時間必須同步;SSH互信通信(當要停止或其他節點的HA集群服務時,不能從此節點進行,而要從一個正常的節點進行HA服務的關閉或啟動)這是就必須要求能夠以SSH遠程登錄到其他節點。

那第一個節點怎么辦?

第一個節點要自我啟動,然后啟動其他節點上的服務

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1269

    瀏覽量

    69732
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210401
  • 集群
    +關注

    關注

    0

    文章

    88

    瀏覽量

    17209
  • SQL
    SQL
    +關注

    關注

    1

    文章

    775

    瀏覽量

    44252
  • Cyclone
    +關注

    關注

    0

    文章

    54

    瀏覽量

    30133

原文標題:Linux之HA高可用集群的基礎概念總結

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于kafka和zookeeper可用集群的shell腳本使用步驟

    kafka+zookeeper可用集群搭建shell腳本使用教程
    發表于 03-11 16:50

    基于KeepAlive的可用配置

    KeepAlived集群可用搭建
    發表于 06-11 16:36

    Hadoop 311可用HA安裝步驟

    大數據基礎Hadoop311 的可用HA安裝~踩坑記錄
    發表于 09-20 08:23

    zabbixHA 可用設計

    【zabbix HA】zabbixHA 可用的實現
    發表于 03-26 08:12

    基于開源系統的可用集群應用

    隨著硬件價格的逐步下降,PC 服務器已經不是什么高端設備了。而近些年虛擬化的發展,架設一臺服務器已經是很容易的事情。通過組建集群來對關鍵服務提供可用性(High-availabili
    發表于 07-07 17:47 ?29次下載
    基于開源系統的<b class='flag-5'>高</b><b class='flag-5'>可用</b>性<b class='flag-5'>集群</b>應用

    LSI與微軟合作開發HA服務器集群解決方案

    LSI 公司日前宣布其正在與微軟合作,共同針對云數據中心和中小企業 (SMB) 環境開發基于 Windows 的低成本、可用性 (HA) 服務器集群解決方案。這些解決方案將把微軟使用
    發表于 09-21 09:12 ?850次閱讀

    Linux C編程從初學到精通》

    Linux C編程從初學到精通》
    發表于 12-10 00:09 ?26次下載

    Mesos可用集群解決方案

    )設計方案的了解以及在Mesos社區貢獻的經驗,深度剖析了Mesos集群可用的解決方案,以及對未來的展望。 Mesos可用架構概述 首先
    發表于 10-10 09:48 ?0次下載
    Mesos<b class='flag-5'>高</b><b class='flag-5'>可用</b><b class='flag-5'>集群</b>解決方案

    淺談Kubernetes集群可用方案

    Kubernetes作為容器應用的管理中心,通過對Pod的數量進行監控,并且根據主機或容器失效的狀態將新的Pod調度到其他Node上,實現了應用層的可用性。針對Kubernetes集群
    發表于 10-11 10:04 ?1次下載
    淺談Kubernetes<b class='flag-5'>集群</b>的<b class='flag-5'>高</b><b class='flag-5'>可用</b>方案

    Eureka的集群搭建方法-保證可用

    在微服務架構中,注冊中心是一個必不可少的組件 前面我們搭建的注冊中心只適合本地開發使用,在生產環境必須搭建一個集群來保證可用 Eureka的集群搭建很簡單,每一臺Eureka都需要在
    發表于 11-29 10:41 ?7574次閱讀
    Eureka的<b class='flag-5'>集群</b>搭建方法-保證<b class='flag-5'>高</b><b class='flag-5'>可用</b>

    通過安裝該Linux-HA軟件可以實現Linux雙機系統的可用性解決方案

    簡介通過安裝該Linux-HA軟件,可以實現Linux雙機系統的可用性解決方案,實現雙機系統的熱備份,這篇文章對于HA做了一個詳細的解讀。
    的頭像 發表于 12-20 14:24 ?7709次閱讀
    通過安裝該<b class='flag-5'>Linux-HA</b>軟件可以實現<b class='flag-5'>Linux</b>雙機系統的<b class='flag-5'>高</b><b class='flag-5'>可用</b>性解決方案

    linux高級技巧:服務器集群keepalived

    linux高級技巧:集群keepalived
    的頭像 發表于 03-20 13:36 ?5179次閱讀
    <b class='flag-5'>linux</b>高級技巧:服務器<b class='flag-5'>集群</b><b class='flag-5'>之</b>keepalived

    簡單分析Java可用集群和微服務架構

    可能大部分讀者都在想,為什么在這以 dubbo、spring cloud 為代表的微服務時代,我要還要整理這種已經“過時”可用集群架構?
    的頭像 發表于 05-03 18:17 ?2133次閱讀
    簡單分析Java<b class='flag-5'>高</b><b class='flag-5'>可用</b><b class='flag-5'>集群</b>和微服務架構

    搭建Keepalived+Lvs+Nginx可用集群負載均衡

    Server)實現可用負載均衡 附:LVS的負載均衡算法 八、搭建Keepalived+Lvs+Nginx可用集群負載均衡 一、Ngi
    的頭像 發表于 06-25 15:39 ?3151次閱讀
    搭建Keepalived+Lvs+Nginx<b class='flag-5'>高</b><b class='flag-5'>可用</b><b class='flag-5'>集群</b>負載均衡

    FusionCompute集群重點知識點梳理

    虛擬機HA定義:是一種可用特性,當物理機或虛擬機故障時,會根據集群HA策略將宕掉的虛擬機在正常工作的主機上開啟,從而減少業務中斷時間。
    的頭像 發表于 02-23 14:31 ?910次閱讀
    FusionCompute<b class='flag-5'>集群</b>重點<b class='flag-5'>知識</b>點梳理
    主站蜘蛛池模板: 成人在线亚洲 | 狠狠丁香激情久久综合 | 国模在线视频一区二区三区 | 久久精品成人免费网站 | 午夜在线视频国产 | 精品国产理论在线观看不卡 | 亚洲国产毛片aaaaa无费看 | 国产馆精品推荐在线观看 | 伊人久久成人爱综合网 | 天天操你 | 久久亚洲免费视频 | 手机在线观看国产精选免费 | 日韩毛片免费看 | 四虎影免看黄 | 天天槽任我槽免费 | 手机看片自拍自拍自拍 | 色多多www网站 | 欧美三级色| 久久青草18免费观看网站 | 天堂资源www天堂在线 | 中文一区二区在线观看 | 四虎影视地址 | 国产精品美女一区二区三区 | 欧美天天综合 | 中文字幕日本一区波多野不卡 | 91桃色国产线观看免费 | 好大好硬好深好爽的视频 | 在线资源你懂的 | 99成人国产精品视频 | 日本三级三级三级免费看 | 欧美日韩性猛交xxxxx免费看 | 久久午夜网 | 免费毛片网站 | 84pao强力永久免费高清 | 激情文学综合网 | 狠狠色丁香婷婷综合久久来 | www.九色.com | 性欧美www | 日本xxxx色视频在线观看免费 | 亚洲免费国产 | 伦理一区二区三区 |