存儲架構體系發展在電信支撐系統中的應用

磁盤存儲器經過多年發展,在容量、速度及體系架構方面都有很大發展,從目前電信運營商支撐系統的現狀來看,主流還是SMP/NUMA存儲,但在電信運營商互聯網化的進程中,MPP存儲應用可能會越來越廣泛。

存儲架構體系發展在電信支撐系統中的應用

  一、存儲器發展簡述

存儲與主機分離的概念顛覆了傳統的DAS模式,存儲子系統從原來的計算系統中分離出來形成一個獨立的子系統,存儲和主機間通過高速網絡互聯。同時隨着網絡共享應用的持續增長和網絡文件共享協議的成熟,文件服務器作爲一種獨立的NAS存儲器也走向了市場。

  二、存儲體系架構的發展

存儲本質上也是計算機,影響計算機行業快速發展、頻繁更新換代的最重要的部件是CPU。計算機體系架構中一個很重要的部分就是如何讓多個CPU一起協同工作,而且性能能夠成倍提高。

結合到存儲行業來講,主機主要負責信息的快速處理,而數據存儲和數據保護等工作漸漸被轉移到存儲器上。歸根到底存儲器的功能還是儲存和保護被主機處理過的信息,其主要的設計思想應該是着重於在接收到主機的信息後做到以下幾點:高性能的IO響應能力、高可靠性、可管理性和其他數據保護功能(如容災、克隆、快照等)。

存儲器比較學術的一種分類方法是根據其體系架構進行分類。(1)低端的基於陣列控制卡技術的存儲器。(2)中端的基於簡單羣集技術的模塊化存儲器。(3)高端存儲器現在有兩種方向,一種是基於統一大緩存scale-up架構多處理器(SMP)存儲器;另外一種是分佈式緩存多處理器scale-out架構的存儲器。

  三、scale-up架構多處理器存儲介紹

此類存儲通常可以先只配少量的前端主機接口卡、後端磁盤接口卡或者核心控制卡,在升級擴容時在通過靈活添加相關接口卡來提升各個部分的性能從而達到存儲器整體性能的提升,這種設計思路稱爲scale up縱向擴展大存儲器的設計思路。

存儲器從雙控制器集羣發展到高端陣列,爲了滿足性能需求,需要用到多個控制器,把數量超過兩個以上的多控制器組合起來協同工作。這種把多路CPU組合在一起工作的設計方式在計算機體系結構裏稱爲共享存儲對稱多處理機系統(SMP)架構。SMP架構的特點包括:(1)對稱共享存儲:系統中任何處理器均可直接訪問任何存儲模塊中的存儲單元和I/O模塊聯接的I/O設備,所有內存地址單元統一編址。(2)單一的操作系統映像:全系統只有一個操作系統駐留在共享存儲器中。(3)局部高速緩存Cache及其數據一致性:每個處理器均配備局部Cache,但是這些數據必須保持與存儲器中數據是一致的。(4)低通信延遲:各個進程通過讀/寫操作系統提供的共享數據緩存區來完成處理器間的通信。(5)共享總線帶寬:所有處理器共享總線的帶寬,完成對內存模塊和I/O模塊的訪問。

  四、分佈式緩存多處理器scale-out架構的存儲器

Scale out體系架構是指基於橫向擴展的體系架構的'思路,即整個系統一開始由一個節點構成,隨着業務需求的增加,通過把更多的節點添加進去,把多臺小計算機(節點)通過一個快速的通道技術/或外部網絡連接起來,這樣就形成一臺可以做到線性擴展的超大型計算機設備,這種思路在服務器體系架構中叫做scale out,即橫向擴展。(1)傳統的存儲陣列相當於老式機頭牽引的火車。存儲控制器:1個或2個火車頭,代表性能與冗餘性;每節車廂只代表容量;對於較短的火車,火車頭會過度配置;添加車廂過載亦會超過功率極限。(2)新架構的Scale Out存儲相當於高鐵和諧號。每節車廂同時代表容量和性能;如果一節車廂的引擎出現故障,其它車廂不會受到影響;添加車廂即同時擴展性能;組合功能整體上仍是一列火車。

Scale-Out具體又可再細分成兩類架構,一種是分佈式緩存但統一編址的NUMA架構,另一類產品線是每個節點各自管理控制器內部緩存的MPP架構。

  五、Scale-Out架構分支一:NUMA架構

在前述SMP架構中,整個系統相當於一臺大型計算機,所有的處理器P/C訪問內存SM的速度和延遲都是一致的。由於總線和交叉開關工藝終將會碰到難於擴展的問題,因此其上端的處理器的數量以及下端的緩存模塊的數量和容量也會碰到擴展性的問題。這些擴展性的問題在早期並不明顯,因爲存儲器容量或者處理能力不夠時,用戶可以再新增購買,但在今天整個IT架構對於存儲器的容量、處理能力以及擴展性都提出了更大的挑戰,因此就出現了另外一種設計思路,即拋開設計一臺超級大計算機的思路,而是把多個存儲節點(引擎)通過一個快速的通道技術連接起來,仍然採用統一內存編址設計,這樣就形成一臺可以做到線性擴展的架構。

具備這種設計思想稱爲分佈共享存儲多處理機系統架構DSM,又稱爲CC-NUMA架構(高速緩存一致性非均勻存儲訪問,ccNUMA,Cache-Coherent Non-Uniform Memory Access),如圖1所示。

NUMA架構的特點:

(1)每個處理器都有自己的內存LM,本質上就是1臺的計算機;(2)這些處理器之間通過一個快速的定製網絡互聯起來;(3)各個處理器之間的內存/緩存LM統一編址,即虛擬分佈共享內存體系DSM;(4)通過在定製網絡範圍內添加更多的處理器芯片和LM緩存等模塊,從而方便的擴展整個存儲系統,即scale out橫向擴展。

  六、Scale-Out架構分支一:MPP架構

NUMA架構可以理解成將多個SMP進行鬆一點的耦合,即多個SMP之間通過快速交換通道互聯,每個SMP都有各自自己的內存,一個SMP內部的CPU訪問自己的內存時與之前沒什麼兩樣,但是要訪問其他SMP處的內存,就需要走交換通道。所以,NUMA通過犧牲了內存訪問的時延來達到更高的擴展性。SMP和NUMA架構同一臺機器內都使用單一操作系統。但是由於NUMA訪問遠端內存時的時延問題,擴展到達一定規模時,NUMA架構下的效率也不能隨着CPU數量的增加而線性增長,但是要好過SMP。   而MPP實質上是將許多獨立的主機使用外部網絡來組成一個集羣。每個節點都有各自的CPU、內存、IO總線和操作系統。整個系統屬於最鬆散的耦合,各個節點運行大範圍並行化的程序。MPP的效率隨節點數量的增長表現爲線性關係。MPP相當於把內存、把操作系統強制分開,把程序架構也強制改變以保持海量計算下的效率線性增長。

MPP體系架構特點包括:(1)由數百個乃至數千個計算結點和I/O結點組成,通過高性能互聯網絡相互聯接。(2)每個結點相對獨立,並擁有一個或多個微處理器(P/C)。(3)MPP的各個結點均擁有不同的操作系統映像。(4)各個結點間的內存模塊相互獨立,且不存在全局內存單元的統一硬件編址。

  七、電信支撐系統對於存儲架構的選擇

面對同樣的預算區間,電信支撐系統是選擇傳統scale up高端陣列,還是新型scale out架構的高端陣列,其實這是一個辯證的問題。在服務器領域,通常會根據應用系統的特點不同,選擇基於scale up架構的服務器(如數據庫服務器),或者基於scale out架構擴展的服務器(如應用服務器)。

特定場景下,由於單路I/O就可能導致整個MPP集羣中的磁盤資源全部牽動(每磁盤同一時刻只能執行一個I/O)。然後在多路大塊連續I/O併發的情況下,反而效率很差(比如多流大塊連續地址I/O);而某些特定場景下,多路I/O之間牽制很少,則表現出線性增長的性能(比如小塊高隨機I/O)。這也可以類比爲將一個程序並行分解成多個執行顆粒(類比爲高隨機I/O),顆粒間的關聯性越少,則並行執行的效率越高。所以MPP自身爲Share-Nothing架構,那麼運行在它上面的程序顆粒之間最好也Share-Nothing。因此MPP架構可廣泛用於互聯網運營商的底層Key-Value分佈式數據庫,在高隨機小塊讀訪問場景下能獲得巨量的性能以及線性的效率-擴展曲線。