搭乘CC-NUMA快車

來源:互聯網
上載者:User
搭乘CC-NUMA快車 □許耀昌

轉載自:網路世界

編者按:NUMA——Non Uniform Memory Access Achitecture,非均勻儲存空間存取結構,聽起來既複雜又陌生的名字。它是在八十年代後期作為斯坦福大學的一個研究項目誕生的,九十年代,才作為商 業伺服器投向市場。今天,NUMA系統能夠運行世界上一些最大的Unix資料庫應用,而且正被廣泛接受為電子商務的主流技術,包括處理功能、I/O的大規 模可擴充性、高可用性、工作負載和資源管理的廣泛靈活性,而且無需改變SMP編程模型。在本期的技術特寫中,我們將從頻寬、體繫結構,以及與SMP和群集 的比較等不同角度來詮釋NUMA技術的特點,以期讓讀者對其有更深入的認識。 電腦頻寬的重要性每種訊號都要佔據一定的頻率範圍,我們稱該頻 率範圍為頻寬。為了使訊號在通過通道時失真儘可能小,就要求通道的頻寬儘可能寬。香農(Shannon)定理告訴我們,訊號傳輸的極限資料率與通道的頻寬 成正比。眾所周知,不同通道的頻寬是不同的。對於數字訊號傳輸來說,通常用每秒傳輸的位元數作為單位。如同軸電纜的資料轉送率為20Mbps,光纖的資料 傳輸率可達幾千Mbps。

電腦系統的頻寬是指單位時間內所能執行的運算元目。通道或儲存頻寬是指它們的資料轉送率。電腦各組件之間的資料轉送率應均衡。

伺服器是網路運行、管理、服務的中樞,是網路系統的關鍵裝置之一,在網路系統中處於核心裝置的地位。伺服器不僅應具備處理速度快、容量大、容錯性好、可擴充性強等特點,為了保證充分的資料轉送率,應具有必要的頻寬。 儲存空間頻寬和均衡性據統計,微處理器的CPU速度大約每年提高 80%,而儲存空間的訪問速度每年僅增長7%,因而CPU與儲存空間效能之比以幾何級數的比例增加。機器均衡性的理念在許多研究中進行過定義,對於一個特定的 處理器,它被定義為每個CPU周期中儲存空間訪問的次數與每個CPU周期中浮點運算次數之比,即:(浮點運算次數/CPU周期)/(儲存空間訪問次數/CPU 週期)。因為它沒有把大多數系統中儲存空間訪問的真正代價考慮在內,其結果不夠合理。

為了克服上述定義中的不足,人們重新定義為,在較長一段時間內對未緩衝跨單元向量運算元處理時的儲存空間訪問次數,因而均衡性=(峰值浮點運算次數/CPU周期性)/(期間記憶體儲器的訪問次數/CPU周期)

根據上述定義,對當前各種體繫結構的電腦測試結果如下。 單一處理器:均衡性一般到好,效能低到中等。
共用儲存空間:均衡性差,擴充性一般,效能中等。
向量機:均衡性好,擴充性中等,效能好。
分布式儲存空間:均衡性一般,擴充性很好,效能好。 電腦體繫結構一覽 單一處理器的體繫結構

在分級儲存的電腦中,對一個CPU來說,決定持續儲存空間頻寬的關鍵因素是cache的未命中等待時間。目前,採用cache的機器其儲存系統有了 顯著的變化,儲存空間訪問中等待時間與傳輸時間之比大大改變,1990年20MHz的機器等待時間和傳輸時間大致相等,1995年100MHz的機器中等待 時間佔了絕大部分。

共用記憶體的體繫結構

向量機屬於共用記憶體體繫結構(分布式共用記憶體機器除外)。它大大簡化了cache的一致性難題和所造成的等待時間(處理延遲)。但是,向量機要比共用儲存空間或分級儲存空間的超標量機昂貴。

具有cache的機器和向量共用儲存空間電腦都有固定的儲存空間頻寬節流設定,也就是說它的機器均衡性數值隨著處理器數目增加而加大,因而處理器 數目有一個極限值。典型的情況是,共用儲存空間系統在各個處理器之間是非阻塞的(non blocking),從而允許多個CPU並發活動,這樣可以補償由 於等待時間造成的較大延遲。當使用多個處理器時,機器的cache命中率由等待時間、頻寬節流設定和匯流排/網路/交叉開關控制器的限制共同決定。在向量電腦 中,限制主要在頻寬上而不是等待時間。

對稱式多處理(SMP)共用儲存空間系統

對稱式多處理(SMP)節點包含兩個或兩個以上完全相同的處理器,在處理上沒有主/從之分。每個處理器對節點計算資源享有同等訪問權。節點內 的處理器和記憶體之間的互聯必須利用可以保持一致性的互聯方案。一致性意指無論在任何時候,處理器只能為記憶體的每個資料保持或共用唯一一個數值。

SMP共用儲存空間系統把多個處理器與一個集中的儲存空間相連。在SMP環境中,所有處理器都通過匯流排訪問同一個系統的實體儲存體器,這就意味 著SMP系統只運行作業系統的一個拷貝。為單一處理器系統編寫的應用程式可以毫無改變地在SMP系統中運行。因此SMP系統有時也被稱為均勻儲存空間。對於所 有處理器來說,訪問儲存空間中的任何地址所需的時間都是一致的。

SMP體繫結構的缺點是延展性有限,因為儲存空間介面達到飽和時增加處理器並不能獲得更高的效能。SMP處理器數目一般最多可達到32個。

嶄新的分布式儲存CC-NUMA體繫結構

最近,一些廠商開始推出新的系統,這種系統把SMP節點串連在一起,能夠比基於匯流排的SMP更易擴充。這些節點通過一個光纖通道互連,它們 的等待時間可以不一樣。通常,離某個CPU“近”的儲存空間比“遠”的儲存空間訪問速度要快,這就是NUMA中N“非”的含意。由於UMA是指均勻儲存空間訪 問,即各個CPU訪問儲存空間的時間基本相同。而NUMA意指非均勻儲存空間訪問。NUMA既保持了SMP系統單一作業系統拷貝、簡便的應用程式編程模式和易 管理的特色,又能有效地擴充系統的規模。至於CC是指快取的一致性(Cache Coherent),即某個儲存單元的內容被某個CPU改寫後,系統 可以很快地(通過專用的ASIC晶片和光纖通道)通知其他各個CPU。實踐表明,適度的非均勻性可以工作得很好,遠端與本機存放區器的訪問時間成比例使編程 人員可以採用類似網路中的訊息傳遞機制。分布在各CPU附近的儲存空間在物理上是分開的,但在邏輯上是統一的,因而可以運行大型應用程式,而不必並行編程、 並行編譯。 讓CC-NUMA“轉”起來 為了理解CC-NUMA是如何工作的,先從傳統的對稱式多處理(SMP)結構講起。 SMP是多個處理器通過一個叫互連匯流排的傳輸機構,相互間通訊以及與一個共用儲存空間組通訊。

CC-NUMA與SMP類似,能夠處理多個串連起來的處理器,每個處理器能存取一個公用的儲存空間組。這種結構把處理器分成幾個節點,在每個節點中所 有處理器互連在一起,互相通訊,並可與節點內的本機存放區器通訊以減輕SMP的匯流排阻塞情況。例如,一個64處理器的伺服器可以分成2個大節點,每個節點有 32個處理器,並有其自己的儲存空間組。處理器也可存取其它所有節點中的儲存空間組,這種存取時間隨著節點的距離遠近而異,CC-NUMA相對於SMP擴充性 更強,只需一個作業系統,管理相對容易。

與群集不同的是,群集採用一種鬆散的結合方式,在幾台機器之間相互連信,內部交換時間長,消耗大。

而且把幾台機器作為一個系統管理,勢必增加了管理上的難度。而CC-NUMA電腦則不同,無論它內部有多少個處理器,對使用者來說,它也僅僅是簡單的一台電腦。

總而言之,CC-NUMA克服了SMP和群集的某些弊端,在他們不能施展才能的地方發揮了作用。

典型的CC-NUMA系統包括Convex的Exemplar,HP V2600 NUMA系列、 IBM的NUMA Q和SGI的Origin系列。Convex和IBM系統採用32位Intel晶片的“環型”互連結構,即每個SMP結點插入到環形網 中,訊息請求和應答都要環繞網運行。 產品篇 HP V2600 NUMA伺服器

V2600運行於HP-UX 11作業環境,能夠支援15000個應用,包括主要資料庫和ERP應用。V系列伺服器體繫結構的基礎是HP的(SCA——可擴充的電腦體繫結構)可伸縮電腦體繫結構,它基於高可伸縮節點、一致性快取和非均勻儲存訪問技術。

V2600的作業環境基於64位HP-UX UNIX作業系統,該系統提供了完全的64位環境,包括64位系統核心與地址空間,64位檔案大小和檔案系統大小,64位檔案資料類型。

V級系統具有以下特性,如HP HyperPlane:交叉頻寬為61.2GB/s的傳輸系統。交叉開關提供了從CPU 和I/O管道到存取系統的順利訪問。使用HP HyperPlane可防止處理記憶體和I/O通訊的系統匯流排的系統效能下降。每一個節點最多包含32個處理器,8個存取板和支援28個PCI I/O控制器介面的7個I/O通道;包括2~128個64位PA 8600處理器;最大128GB SDRAM; 最大7.68 GB/s I/O管道吞吐率; 最多112個工業標準PCI I/O 控制介面。

為了進一步擴大擴充能力,HP使用了自己的基於記憶體互連串連起來的4個並行V系列伺服器系統,以提供對CC-NUMA真正的支援。它具有 SMP和分布式存取體繫結構的優點,包括編程模組、SMP特性和分布存取子系統的延展性。SCA互連是一個多級記憶體子系統,第一級由傳統SMP記憶體構 成。記憶體子系統的第二級是通過利用一個專用互連串連第一級記憶體建立的,該互連為高頻寬和故障彈性提供多個雙向環路。SCA HyperLink被實施為一系列單向鏈路(節點之間以點到點方式串連),允許以類似交叉記憶體請求的方式跨環路交叉訪問,此外,該技術還允許在任何給定時 間內進行多個請求,以減少延遲時間。由於HP在SMP上的優勢,因此每個節點很大,但節點數不多,結構更簡單,提高傳輸效率,降低故障機率。為了提高訪問 速率,內部完全通過記憶體串連,在本地記憶體中做遠地記憶體的緩衝,本地的CPU訪問遠程緩衝時,先查看本機快取,這樣大大縮短了訪問時間。

IBM NUMA-Q體繫結構(原Sequent)

IBM NUMA-Q系統使用CC-NUMA或快取相關的NUMA方案。記憶體單元緊鄰多處理器SMP構建塊,能夠最大限度地提高CC-NUMA系統中的整個系統速度。這些構建塊通過一個互聯裝置串連在一起,構成單一系統影像。

硬體快取意味著不需要軟體來保持多個資料拷貝的最新特性或在多例作業系統和應用程式之間傳輸資料。一切都是在硬體層次上管理的,就象在任何SMP節點中一樣,其中單一案例作業系統使用多個處理器。

NUMA-Q系統使用基於Intel的4處理器或“quad”構建塊,這些構建塊也包括記憶體和7個輸入/輸出插槽。目前,IBM NUMA-Q最多支援16個構建塊或64個處理器,它們通過一個基於硬體、快取、速度很高的可擴充的相互串連裝置串連在一起,構成單一NUMA系統, 其方式與給傳統大型匯流排SMP系統的底板增加處理器基板相同。現有的NUMA-Q體繫結構能夠在單一系統節點中支援64個構建塊或256個處理器。

NUMA-Q能提供整合的MVS風格多重路徑交換型光纖通道SAN (儲存網域網路)的Unix系統。這種功能是需要支援特大規模高效能事務和資料倉儲環境的電子商務及客戶關係管理(CRM)應用的一個關鍵啟動技術。光纖通 道SAN允許大型後端Unix資料庫機器及數百個前端Unix或NT應用伺服器使用一個公用的交換光纖,經濟有效地共用資料中心類磁碟儲存和磁帶庫。

NUMA-Q通過一個交換型光纖通道SAN光纖直接將I/O運行到其串連的存放裝置,而不是通過處理記憶體訪問的互聯。在NUMA Q系統 上,這消除了隨著處理器增加損害大型SMP系統輸送量的資源搶佔。而且,由於在作業系統層次支援的I/O多重路徑特性,NUMA Q提供唯一固有的容錯 SAN。

在一個24×7的電子商務環境,能夠在不中斷系統啟動並執行情況下管理資源及線上和離線利用資源是一個重要的優勢。NUMA-Q將能夠在運行 Unix和Windows NT的基於交換器的下一代系統中實現這一功能。這種先進的電腦系統設計方案能夠為其他體繫結構不能支援的線上關鍵業務Unix和Windows NT系統提供效能、可擴充性、可用性和可管理性的結合。

SGI DSM CC-NUMA

SGI的DSM(分布式共用記憶體)CC-NUMA系統有很大的不同,它採用64位的RISC晶片、交叉開關和Craylink光纖通道,以 “胖”的超立方體結構互連,因而能以高頻寬和低延遲方式運行。由於SGI的DSM CC-NUMA採用模組化結構、分布式記憶體、路由器專用晶片和分布式的I/O連接埠,資訊的輸入/輸出通過一個智能的交叉開關在專用晶片介面上串連,它可以 和PCI、VME、SCSI、Ethernet、ATM、FDDI及其他I/O裝置串連,因而在網路上可以提供極高速的資料轉送率。在SGI 64位的作業系統IRIX的支援下,它的DSM CC-NUMA系統頻寬和儲存空間效能可隨CPU數目增加成比例增長,目前,SGI CC-NUMA機器已做到在512個CPU內,頻寬可隨CPU數目線性增長。因此可以稱它為優秀的“頻寬機器”。

SGI的頻寬機器——Origin伺服器,其高速的儲存空間頻寬可達26GB/s、高速的I/O頻寬可達102.4GB/s,最大記憶體可達 256GB,而聯機的光纖通道磁碟容量可達400TB。不管是串連資料倉儲、儲存或檢索、產品資料管理,還是為成千上萬個客戶提供Web服務, Origin伺服器都能夠勝任。 概念篇 大規模平行處理

大規模平行處理(Massively Parallel Processing或者"ShareNothing")節點傳統上是由單一CPU、少量的記憶體、部分I/O、節點間的互聯以及每個節點的作業系統的一個 執行個體組成。節點間的互聯(以及駐留於各節點的作業系統執行個體)不需要硬體一致性,因為每個節點擁有其自己的作業系統以及自己唯一的實體記憶體地址空間。因而, 一致性是在軟體中通過“訊息傳送”(message passing)實現的。

MPP的效能調整涉及資料分區,以便最大限度地減少必須在節點之間傳送的資料量。擁有資料自然分區的應用程式可以正常運行於大型MPP系統,例如電視點播(video on demand)應用。

COMA

COMA意為“快取唯一的儲存空間體繫結構”(Cache Only Memory Architecture),它是CCNUMA體繫結構的競爭者,兩者具有相同的目標,但實現方式不同。COMA節點不對記憶體組件實行分布,也不通過尖 端的互聯裝置使整個系統保持一致性。COMA節點沒有記憶體,只在每個構建塊中配置大容量的快取。互聯裝置依然必須維護一致性,一個作業系統拷貝運行於 整個構建塊,但沒有特定資料的“本地"記憶體單元。COMA硬體可以補償與記憶體配置和進程調度相關的不合適的作業系統演算法。但它需要修改作業系統的虛擬儲存 子系統,除快取一致性互聯板之外,還需要特別定製記憶體板。

群集

群集(或群集系統)由兩個或更多的節點群組成,每個節點運行各自的作業系統拷貝;每個節點運行各自的應用拷貝;節點共用其它公用資源集區。與之 對照,MPP系統的節點不共用儲存資源。這是群集化SMP系統與傳統MPP系統之間的主要差別。重要的是,要注意在群集系統中必須在試圖更新共用存放庫 (資料庫)任何部分之前執行鎖定,以保持資料庫內部的一致性。正是由於這一需求使群集的管理與擴充比單個SMP節點更難以執行。

從群集系統擷取更多效能,比在節點內實現擴充更困難。主要障礙是單節點環境外的通訊成本問題。往節點外部傳送資訊必須忍受軟體一致性的較 長延遲。擁有大量進程間通訊的應用程式在SMP節點內工作效果更好,因為通訊非常迅速。如果減少跨節點的進程間通訊需求,應用程式就可以在群集和MPP系 統實現更有效擴充。

反射記憶體群集

反射記憶體群集(Reflective Memory Cluster,RMC)是群集化系統,在節點之間有一個記憶體複製或轉儲機制以及一個鎖定資訊流互聯裝置 。轉儲使用軟體一致性技術來執行。反射記憶體群集系統為應用程式提供較迅速的訊息傳送,並使各個節點不必經過磁碟就能獲得相同的記憶體頁面。在RMC系統,從 其它節點的記憶體獲得資料,比返回磁碟資料要快上百倍。顯然,只有節點間需要共用資料,而且應用能夠利用共用的資料,才可實現效能提高。

反射記憶體群集比傳統的基於網路的訊息傳送速度更快,因為一旦建立串連,訊息就可以由應用節點發送,不會干擾作業系統。

NUMA

NUMA範疇包含若干種不同體繫結構,從廣義上來講,以下結構均可以視為擁有非均勻儲存空間訪問延遲:RMC、MPP、CCNUMA以及 COMA,但它們之間的差異卻相當大。RMC和MPP有多個節點,屬於“NUMA"的部分是節點間的軟體一致性。至於CCNUMA和COMA,其硬體一 致性是在節點內部,其“NUMA"組件是在一個節點內。

聯繫我們

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