歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

注解高端UNIX服務器之技術

  對於服務器而言(不管是PC服務器,還是UNIX服務器),單純地提高單個處理器的運算能力和處理能力正在變得越來越難,雖然許多制造商從材料、工藝和設計等方面進行了不懈的努力,近期內仍然使得CPU保持著高速的增長勢態,但高頻之下的高功耗所引起的電池容量問題和散熱問題等負面效應,以及這些負面效應對整機系統產生的電磁兼容性問題,又反過來將CPU運算能力的提升推到了暮年。顯然,提高單個處理器速度和性能已是強弩之末,而研發多個CPU的並行處理技術,才是真正提高現代服務器處理能力和運算速度的有效途徑。這也正是多處理器服務器不僅是UNIX服務器的專利,而且也是已經在PC服務器中普遍采用的原因。目前,業界比較關注的並行處理技術主要有SMP技術、MPP技術、COMA技術、集群技術和NUMA技術等。    1.SMP技術  SMP(對稱多處理—Symmetrical MultiProcessing)技術是相對非對稱多處理技術而言的、應用十分廣泛的並行技術。在這種架構中,多個處理器運行操作系統的單一復本,並共享內存和一台計算機的其他資源。所有的處理器都可以平等地訪問內存、I/O和外部中斷。    在非對稱多處理系統中,任務和資源由不同處理器進行管理,有的CPU只處理I/O,有的CPU只處理操作系統的提交任務,顯然非對稱多處理系統是不能實現負載均衡的。在對稱多處理系統中,系統資源被系統中所有CPU共享,工作負載能夠均勻地分配到所有可用處理器之上。    目前,大多數SMP系統的CPU是通過共享系統總線來存取數據,實現對稱多處理的。如某些RISC服務器廠商使用Crossbar或Switch方式連接多個CPU,雖然性能和可擴展性優於Intel架構,但SMP的擴展性仍有限。    在SMP系統中增加更多處理器的難點是系統不得不消耗資源來支持處理器搶占內存,以及內存同步兩個主要問題。搶占內存是指當多個處理器共同訪問內存中的數據時,它們並不能同時去讀寫數據,雖然一個CPU正讀一段數據時,其他CPU可以讀這段數據,但當一個CPU正在修改某段數據時,該CPU將會鎖定這段數據,其他CPU要操作這段數據就必須等待。    顯然,CPU越多,這樣的等待問題就越嚴重,系統性能不僅無法提升,甚至下降。為了盡可能地增加更多的CPU,現在的SMP系統基本上都采用增大服務器Cache容量的方法來減少搶占內存問題,因為Cache是CPU的“本地內存”,它與CPU之間的數據交換速度遠遠高於內存總線速度。又由於Cache支持不共享,這樣就不會出現多個CPU搶占同一段內存資源的問題了,許多數據操作就可以在CPU內置的Cache或CPU外置的Cache中順利完成。    然而,Cache的作用雖然解決了SMP系統中的搶占內存問題,但又引起了另一個較難解決的所謂“內存同步”問題。在SMP系統中,各CPU通過Cache訪問內存數據時,要求系統必須經常保持內存中的數據與Cache中的數據一致,若Cache的內容更新了,內存中的內容也應該相應更新,否則就會影響系統數據的一致性。由於每次更新都需要占用CPU,還要鎖定內存中被更新的字段,而且更新頻率過高又必然影響系統性能,更新間隔過長也有可能導致因交叉讀寫而引起數據錯誤,因此,SMP的更新算法十分重要。目前的SMP系統多采用偵聽算法來保證CPU Cache中的數據與內存保持一致。Cache越大,搶占內存再現的概率就越小,同時由於Cache的數據傳輸速度高,Cache的增大還提高了CPU的運算效率,但系統保持內存同步的難度也很大。    在硬件方面,SMP可以在UltrASPARC、SPARCserver、Alpha以及PowerPC架構上實現,也可以利用包括486以上所有Intel芯片來實現。    2.集群技術  集群(Cluster)技術是近幾年興起的發展高性能計算機的一項技術。它是一組相互獨立的計算機,利用高速通信網絡組成一個單一的計算機系統,並以單一系統的模式加以管理。其出發點是提供高可靠性、可擴充性和抗災難性。一個集群包含多台擁有共享數據存儲空間的服務器,各服務器通過內部局域網相互通信。當一台服務器發生故障時,它所運行的應用程序將由其他服務器自動接管。在大多數模式下,集群中所有的計算機擁有一個共同的名稱,集群內的任一系統上運行的服務都可被所有的網絡客戶使用。采用集群系統通常是為了提高系統的穩定性和網絡中心的數據處理能力及服務能力。    常見集群技術有:    (1)服務器鏡像技術    (2)應用程序錯誤接管集群技術    錯誤接管集群技術是將建立在同一個網絡裡的兩台或多台服務器通過集群技術連接起來,集群節點中的每台服務器各自運行不同的應用,具有自己的廣播地址,對前端用戶提供服務,同時每台服務器又監測其他服務器的運行狀態,為指定服務器提供熱備份服務。    錯誤接管集群技術通常需要共享外部存儲設備—磁盤陣列櫃,兩台或多台服務器通過SCSI電纜或光纖與磁盤陣列櫃相連,數據都存放在磁盤陣列櫃上。這種集群系統中通常是兩個節點互為備份的,而不是幾台服務器同時為一台服務器備份,集群系統中的節點通過串口、共享磁盤分區或內部網絡來互相監測對方的心跳。    錯誤接管集群技術經常用在數據庫服務器、MAIL服務器等的集群中。這種集群技術由於采用共享存儲設備,所以增加了外設費用。它最多可以實現32台機器的集群,極大地提高了系統的可用性及可擴展性。目前在提高系統的可用性方面用得比較廣泛的是應用程序錯誤接管技術,即我們通常所采用的雙機通過SCSI電纜共享磁盤陣列的集群技術。    (3)容錯集群技術    容錯集群技術的一個典型的應用即容錯機,在容錯機中,每一個部件都具有冗余設計。容錯集群技術的實現往往需要特殊的軟硬件設計,因此成本很高,但是容錯系統最大限度地提高了系統的可用性,是財政、金融和安全部門的最佳選擇。    3.NUMA技術  現今的64位UNIX並行計算服務器可分為兩類:分布式共享存儲結構(DSM)和集群系統。非均勻存儲訪問(NUMA)是一種並行模型,屬於DSM這一類。NUMA的物理內存分布在不同節點上,在一個處理器存取遠程節點的數據,比存取同一點的局部數據“路徑”遠一些,時間長一些,所以是非均勻存儲訪問。    對稱多處理也是一種共享存儲器的多處理機結構。它的單一尋址空間、簡單的編程方式、操作方便是其容易普及的主要原因。大規模並行處理(MPP)屬於集群系統這一類體系結構,它的優勢是可擴展性好,但需要並行編程和並行編譯,使用不便。NUMA系統把SMP與集群的優勢結合在一起,它既有SMP的可編程性,又具有集群的可擴展性。實際上,這一“優勢的結合”實為一種折衷,其中關鍵是尋求結合的途徑並確定結合點。    NUMA3系統架構的由來  NUMA(非均勻存儲器存取結構-Non Uniform Memory Access Architecture)是在八十年代後期作為斯坦福大學的一個研究項目誕生的。1995年,SGI與斯坦福大學DASH項目組一起設計出了第一代NUMA系統;1996年,SGI推出了第二代NUMA系統,該系統的處理器數目可以從32個一直擴展到512個,並且系統帶寬可隨處理器數目增加而線性擴展;為了進一步擴展NUMA架構的功能和提高靈活性,SGI在2000年秋季推出了第三代NUMA系統,簡稱NUMA3系統。新系統可以使系統的計算能力、內存容量、外存容量、圖形性能及聯網能力獨立地擴展,NUMA3系統具有多功能性、模塊化、靈活性等三大特點。用戶可根據需要量體裁衣地配置系統,因而投資可以得到充分保護。    第三代NUMA系統采用不同的功能模塊(Brick)構成,這些模塊比第二代NUMA機的模塊小,功能更專一、更具可擴展性,而且尺寸標准化,這就進一步增加了系統的靈活性。    在第三代NUMA服務器中,采用性能更好的交叉開關Bedrock,所有的處理器和存儲器通過Bedrock連接在一起。這些處理器、存儲器和交叉開關的結合組成了稱為NUMAlink的互聯結構。另外,在第三代NUMA服務器中采用了更先進的路由芯片,通過使用特殊的光纜提供具有高帶寬和極低延遲的互聯網絡,路由芯片所有的Bedrock交叉開關連接起來形成一個單一的、連續的達1TB的存儲空間。處理器和本地以及遠程存儲器之間的通信寬帶(雙向)由原來的1.6GBps提高到3.2GBps。另外,電源采用N+1的冗余方式,因此可靠性也進一步提高。    在NUMA體系結構中,每個處理器與自已的本地存儲器和高速緩存相連,多個處理器通過處理器、存儲器互聯網絡相連。處理器還通過處理器、I/O網絡訪問共享的I/O和外圍設備。至於處理器之間的通信則通過可選的處理器之間的通信網絡來實現。NMUA技術在科學與工程計算領域具有不可替代的地位,在聯機事務處理(OLTP)、決策支持服務(DSS)和Intranet以及Internet中的地位也越來越重要。目前,NUMA並行機的處理器數目可達到512個,且帶寬可隨處理器數目基本上呈線性擴展。這樣大的處理器數,使單一系統映像的NUMA機足以覆蓋絕大多數的應用。首先,由於它具有與SMP相同的編程模式,因此在科學與工程計算領域具有不可替代的地位;其次,由於它具有共享內存和良好的可擴展性優勢,所以能很好適應企業數據中心的多種應用。    今天,NUMA系統能夠運行世界上一些最大的UNIX數據庫應用,而且正被廣泛接受為電子商務的主流技術,包括處理功能、I/O的大規模可擴展性、高可用性、工作負荷和資源管理的廣泛靈活性,而且無需改變SMP編程模型。    存儲一致性與ccNUMA  在NUMA並行機中,雖然存儲器在物理上被分配到各節點中,但可被系統內所有處理器訪問或共享。存儲一致性問題是由於多個處理器共享同一個存儲單元而引起的。SGI采用高速緩存一致性(Cache Coherent)技術來解決存儲一致性問題,這就是“ccNUMA”並行機名稱的由來。    在ccNUMA系統中,每個CPU有一個私用高速緩沖存儲器。為了得到較好的性能,CPU經常在它的高速緩存中取指令及存儲數據。在這種系統




Copyright © Linux教程網 All Rights Reserved