Linux和Windows搭配提供高可用性、可擴充性系統

來源:互聯網
上載者:User

我們的業務系統,不管是企業內部系統還是互連網應用系統,都需要可擴充,高可用性的系統。可擴充性和高可用性不是孤立的,只有結合起來,才能達到理想的效果。

可擴充性是系統、網路或進程的可選屬性之一,它表達的含義是可以以一種優雅的方式來處理不斷增長的工作,或者以一種很明白的方式進行擴充。例如:它可以用來表示系統具備隨著資源(典型的有硬體)的增加提升輸送量的能力。
垂直擴充的意思是給系統中的單節點增加資源,典型的是給機器增加CPU或記憶體,垂直擴充為作業系統和應用模組提供了更多可共用的資源,因此它使得虛擬化的技術(應該是指在一台機器上運行多個虛擬機器)能夠啟動並執行更加有效。
水平擴充的意思是指給系統增加更多的節點,例如為一個分布式的軟體系統增加新的機器,一個更清晰的例子是將一台web伺服器增加為三台。隨著電腦價格的不斷降低以及效能的不斷提升,以往需要依靠超級電腦來進行的高效能運算的應用(例如:地震分析、生物計算等)現在可以採用這種多個低成本的應用來完成。由上百台普通機器構成的叢集可以達到傳統的基於RISC處理器的科學電腦所具備的計算能力。

可擴充性更加強調的是水平擴充性,在使用者訪問數量快速增長的情況下,不終止現有服務來擴充系統的容量。比如web伺服器目前已經不能接受更多的使用者訪問,可以在不停止服務的情況下增加第2台伺服器,甚至更多的伺服器,而且新增伺服器對已有的伺服器不會造成負面影響。

沒有辦法保證系統7*24不發生故障,但使用者卻要求任何時候都可以正常訪問系統,這就是系統高可靠性的需求。一般來說,一個服務是運行在一個系統/機器上,一旦系統/機器出現故障,使用者就不能再正常訪問這個服務;如果把同一個服務分開放在2個不同的系統/機器,那麼即使是一個系統出故障,服務依然是可以訪問的。另外一個好處是恢複故障的壓力減輕了。現在業界更傾向用 N 個9 來量化可用性, 最常說的就是類似 "4個9(也就是99.99%)" 的可用性。看一下表 1 能更為直觀一些。

描述 通俗叫法 可用性層級 年度停機時間
基本可用性 2個9 99% 87.6小時
較高可用性 3個9 99.9% 8.8小時
具有故障自動回復能力的可用性 4個9 99.99% 53分鐘
極高可用性 5個9 99.999%

5分鐘

根據墨菲定律(Murphy's Law)[“有可能出錯的事情,就會出錯(Anything that can go wrong will go wrong)”]的推論,世界上沒有 100% 可靠的 Web網站(除非不運行)。

可能的解決方案有2種:一種是針對單服務的升級,但是升級過程複雜、成本高、且針對的往往是單一故障點;另一種是針對伺服器叢集的升級,也即架設網路服務的有效結構,這樣做的好處在於:通過增強叢集系統的冗餘性從而實現高可用性、通過分而治之實現高效能和高吞吐率、通過對結點數目的動態調整實現高可擴充性和高效能/價格比等。

這裡最常用到的一個技術就是叢集。叢集技術中常用的是負載平衡,負載平衡技術在Windows 上有群集、NLB,在Linux上有LVS,還有第三方提供的解決方案,例如F5負載平衡器。

我們開發的應用系統都運行在Windows平台上,可靠性和穩定性方面都比較差,儘管windows佔據了絕大部分的案頭市場,但在伺服器領域,其份額還是很少的:象google、yahoo、tencent、baidu等擁有上萬台伺服器應用的機構都不約而同的選擇linux做為運營平台來支撐巨大的業務訪問。每個業務都運行在一個系統/機器上,一旦系統/機器發生故障,業務將不可避免的停止服務。任何一個伺服器出故障,運行在上面的業務將不再問使用者提供有效服務。

Windows上比較廉價的叢集方案式採用NLB,曾經使用過NLB搭建叢集,實現方式可參考Windows Server 2003網路負載平衡的實現。Linux的廉價叢集方案就是LVS,LVS和NLB比較起來有很多的優勢,LVS可以使得這項工作(組建高可擴充的網路服務)變得容易起來,而且LVS已經被證明非常穩定,也正在被越來越多網站和系統所部署。LVS的相關資料可以參考LVS項目有關中文文檔。

1.在Linux核心中實現,2.6核心已經整合IPVS核心補丁了,所以不再需要重新編譯核心.;

2.三種IP負載平衡技術(通過網路位址轉譯實現虛擬伺服器、通過IP隧道實現虛擬伺服器、通過直接路由實現虛擬伺服器);

3.十種負載調度演算法;

4.支援IPv4和IPv6。

對於系統的高可用性而言,可組建的叢集可以是WEB叢集、Cache叢集、郵件叢集、Media叢集、DNS叢集、MySql叢集等。此外,LVS的硬體平台方面:

  • 任何跑Linux的硬體平台都可以運行LVS;
  • LVS的負載平衡和報文轉寄對CPU速度要求低;
  • 可以用低功耗的硬體平台運行LVS,如Intel ATOM CPU 1.6GHz, 功耗2~3W,及Gigabit Ethernet。

傳統模式下,使用者的訪問請求通過DNS伺服器解析後,把服務要求轉寄給web伺服器,取得資料後返回給使用者。這種模式有2個麻煩:同時訪問的使用者增加到某個程度後,伺服器不能提供所需的正常訪問;遇到故障,所有的訪問請求都將失敗。要解決這樣一個難題,LVS是上上之選。當我們採用LVS方案之後,更改dns伺服器的記錄,這樣使用者的訪問將首先到達LVS控制器所在的伺服器,LVS把請求按照某種演算法轉寄給後面真正的伺服器。那麼資料的返還是怎樣的一個過程呢?在採用DR方式的叢集形式下,真實伺服器直接把資料返還給使用者而不再經過LVS控制器。這樣設計使得結構更簡單一些,LVS控制器的壓力也小很多。

LVS/DR主要由控制器和真實伺服器2部分構成,需要在控制器和真實伺服器上做好配置才能提供正常的服務。實現LVS/DR最重要的兩個東西是ipvs核心模組和ipvsadm工具包,幸運的是,當前的發行版已經包含ipvs核心模組,不必再像舊的核心版本需要打這個補丁,ipvsadm需要從網上下載安裝。

LVS可以把服務要求轉寄到各種各樣的作業系統,Windows下設定子網路遮罩為255.255.255.255比linux設定要麻煩些。要想在網路位置本地串連的tcp/ip屬性設定4個255掩碼是不能得逞的,唯一的辦法是修改註冊表。預設狀況下,windows並沒有環回介面存在,配置之前得先安裝這個“裝置”。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.