Linux下的高可用性方案研究

來源:互聯網
上載者:User

保證持續穩定的系統已耗用時間變得越來越重要,而傳統意義上的小型機系統讓普通使用者望而卻步。使用者需要的是更高的可用性以及更低的成本。高可用性(HA)技術能自動偵測伺服器節點和服務進程錯誤、失效,並且當發生這種情況時能夠自動適當地重新設定系統,使得叢集中的其他節點能夠自動承擔這些服務,以實現服務不中斷。
Cluster應用可分為三方面:High-Availability(HA)(高可用性設定組群)、Load Balance(負載平衡叢集)、Scientific(科學叢集)。在叢集的這三種基本類型之間,經常會發生混合與交雜。於是,可以發現高可用性設定組群也可以在其節點之間均衡使用者負載,同時仍試圖維持高可用性程度。同樣,可以從要編入應用程式的叢集中找到一個並行群集,它可以在節點之間執行負載平衡。而本文則側重於介紹基於Linux的HA解決方案方面的問題。
基於LVS的HA方案 Linux要進入高端市場就必須在這方面有相應的措施,所以許多公司都在這方面加大了研究力度。現在,我們可以使用一些現存的軟體去構築具有高可用性的LVS系統。下面列出兩種方案,以供參考。
[方案一]mon+heartbeat+ fake+coda
我們可以使用“mon”、“heart beat”、“fake”和“coda”四個軟體來構築具有高可用性的Virtual Server(虛擬伺服器)。“mon”是一個福士化的資源管理系統,用來監控網路上的伺服器節點和網路服務。“heartbeat”實現在兩台電腦間通過在串列線上使用UDP協議傳送“心跳資訊”。“Fake”是一個使用ARP欺騙的方法來實現IP接管。
當伺服器故障時,處理過程如下:“mon”進程運行在負載平衡器上,負責監測整個叢集的伺服器節點和服務進程。在設定檔“fping.monitor”中寫入要檢測伺服器節點,然後“mon”進程將會隔t秒檢查一下相應的伺服器節點是否還活著。
另外相關的服務監視器也要做相應的配置,這樣“mon”進程將每m秒檢測一下所有節點的相應服務進程。例如:http.monitor:用於配置監控http服務;ftp.monitor:用於配置監控ftp服務;以此類推。當配置完成後,某個伺服器節點失效或重新生效、服務進程失效或重新生效時都會發送一個通告資訊,因此,負載平衡器能夠知道伺服器節點是否能接受服務。
現在,負載平衡器成為了整個系統的單點失效。為了防止這一現象,我們必須安裝一個負載平衡器的備份伺服器。“fake”軟體實現當負載平衡器失效時,備份伺服器自動接管IP地址,並繼續服務。而“heartbeat”則隨時根據負載平衡器的狀態自動啟用/關閉備份伺服器上的“fake”進程。在負載平衡器和備份伺服器上都運行著一個“heartbeat”進程,它們通過串列線周期性地發送“I'm alive ”訊息。如果備份伺服器在一個預定時間內接收不到來自負載平衡器的“I'm alive”資訊時,將自動啟用“fake”進程接管負載平衡器的IP地址,並開始提供負載平衡服務;而當再次收到來自負載平衡器的“I'm alive ”訊息時,備份伺服器將自動將“fake”進程關閉,釋放出它接管的伺服器,負載平衡器重新開始工作。
但是,如果負載平衡器在客戶正在請求時失效,這時會引起客戶請求失敗,客戶必須重新發出請求資訊。
“coda”是一個容錯的Distributed File System,源於Andrew檔案系統。伺服器上的目錄能夠儲存在“coda”上,所以檔案能夠實現高可用性,並且易於管理。
[方案二]ldirectord+heartbeat
“ldirectord”(Linux Director Daemon)是Jacob Rief編程實現的一個獨立進程,以實現對服務和物理伺服器的監測,廣泛地用於http和https服務。
“ldirectord”安裝簡單,能很好地與“heartbeat”配合工作。“ldirectord”程式包含在“ipvs”包中的“contrib”目錄中。
以下是“ldirectord”的一些優點:
“ldirectord”是專門撰寫的LVS監測程式。
它從/etc/ha.d/xxx.cf檔案中讀取所有關於IPVS路由表的配置資訊。當“ldirectord”運行起來後,IPVS路由表將會被適當地配置。
可以將Virtual service配置放在多個設定檔中,所以可以單獨修改某一種服務的參數,而不影響其他的服務。“ldirectord”能被“heartbeat”輕鬆地管理----啟動、關閉。
將“ldirectord”放到/etc/ha.d/resource.d/目錄下,然後在/etc/ha.d/haresources中增加一行:
node1 IPaddr::10.0.0.3ldirectord::www ldirectord::mail
“ldirectord”能夠手動開啟、關閉。可以在無備份負載平衡器的LVS叢集中使用它。
Xlinux的LATCH HA方案 正如前面所述,高可用性解決方案(HA)是極為重要的,許多廠商為此投入了大量的研究。其中,Xlinux發行版就提供LATCH HA解決方案。下面我們就一起看看LATCH HA方案。
LATCH HA解決方案的最典型的系統結構:兩台主機A、B共用一個磁碟陣列,A為工作機,B為備份機。它們之間用一根心跳線來串連,這稱為“心跳檢測”,主要通過一條RS232檢測鏈路來完成。LATCH HA也採用了用Ping來驗證系統宕機的方法。安裝在主機上的HA軟體通過心跳線來即時監測對方的運行狀態,一旦正在工作的主機A因為各種硬體故障導致系統發生故障,主機B立即投入工作。怎麼樣,與IBM的HACMP有點像吧!
LATCH HA實現了“高可靠性共用儲存”架構。該架構由兩個或三個冗餘伺服器、一個共用冗餘磁碟陣列、一個可選DBMS及LATCH HA系統軟體構成。在LATCH HA的保護下,企業的電腦系統能夠提供不間斷的資訊服務,避免由於硬體故障或日常維護所帶來的宕機,因而能夠保障最佳的可靠性及最大程度地減少宕機時間。
方案應用
LATCH HA能夠應用在各種集中式、客戶機/伺服器模式或OLTP系統中。同時其與市場上各種主流的資料庫系統與OLTP軟體(如:Oracle、SYBASE、Informix、Tuxedo)也都保持相容。LATCH HA同時提供了各種應用程式介面。因此,客戶能夠在其私人軟體中整合各種功能來保證系統的高可靠性。
LATCH HA /HS2000 線上待機模式
在這種模式下,一個伺服器作為主伺服器。正常情況下其承當所有的服務。另外一台伺服器作為待機伺服器(正常情況下除了監控主伺服器的狀態,不進行其他的操作)。一旦主伺服器宕機,待機伺服器就接手工作,成為新的主伺服器。客戶仍然可以擁有同樣的伺服器IP地址、NFS、資料、資料庫及其他……這種應用模式近似於上面介紹的典型應用模式(兩台伺服器實際上是在完成同一個功能應用),安裝在主機上的HA軟體通過心跳線來即時監測對方的運行狀態,一旦正在工作的主機A因為各種硬體故障,如電源失效、主要組件失效或者啟動盤失效等導致系統發生故障,主機B立即投入工作。
LATCH HA /DA2000雙機就緒模式
在這種模式下,兩個主機都作為主伺服器,共用自己的磁碟陣列,各自承當一部分服務。例如:伺服器A在執行應用A, 伺服器B在執行應用B, 兩個主機在正常情況下各自獨立運行自己的應用邏輯,兩個主機同時又都作為對方的待機伺服器,通過心跳線監控對方的狀態。一旦某一伺服器宕機,另一台伺服器就承擔所有的服務,為所有的客戶服務。一旦伺服器A發生故障,伺服器B馬上接管伺服器A上原來的應用;或者伺服器B發生故障,伺服器A馬上接管伺服器B上原來的應用,這是一種互為冗餘的模式。
很明顯,一旦某一伺服器宕機,另一台伺服器的工作負擔就比較重,於是就有了三主機模式。
LATCH HA /HC2000 三主機模式
這種應用模式是最高端的HA應用模式,它既保證了系統的裝置冗餘,避免系統宕機,而且又能保證在一旦宕機的情況下有足夠的系統資源可供使用。
在這種模式中,待機伺服器C同時監控主伺服器A與B的狀態。一旦伺服器A或B宕機,伺服器C將承擔其服務,為客戶服務。這種系統結構既保證了系統的安全運行,又保證了系統資源。
Linux HA的解決方案當然不限於上述兩種,但其核心思想是一致的,即提供不間斷的服務。近年來隨著Linux作業系統不斷走向成熟,功能不斷增強,特別是其遵循GPL和標準化的PVM、MPI訊息傳遞機制的特性和在普通PC機上越來越好的高效能網路的支援,所有這些為基於Linux的叢集系統的發展提供了堅實的技術基礎,在把技術轉化為具體的應用過程中,高端的HA應用以其穩定可靠的效能和與Unix相比價格上的優勢而脫穎而出。隨著基於Intel平台的伺服器業已成為關鍵性業務和應用的主流伺服器,Linux HA叢集技術的應用亦將日益廣泛。

HA叢集結構圖
HA實際上是兩台(或更多)電腦通過一定方式互相監聽,實現熱備份。當其中Primary server出現問題時,Standby server能夠自動立即接替工作,使使用者感覺不到停機。在Primary server恢複正常之後,Standby server又會把工作還給Primary server。(出處:賽迪網)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.