歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> 注解高端Unix操作系統服務器之技術

注解高端Unix操作系統服務器之技術

日期:2017/3/3 15:25:41   编辑: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)容錯集群技術

容錯集群技術的一個典型的應用即容錯機,在容錯機中,每一個部件都具有冗余設計。容錯集群技術的實現往往需要特殊的軟硬件設計,因此成本很高,但是容錯系統最大限度地提高了系統的可用性,是財政、金融和安全部門的最佳選擇。---http://www.bianceng.cn

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經常在它的高速緩存中取指令及存儲數據。在這種系統中,一個存儲器地址的內容可以有許多獨立的拷貝給各個CPU。如果每個CPU指向同一個存儲器地址,則每個CPU的高速緩存將得到該地址的內容拷貝。但是當一個CPU修改該地址的內容後,必須阻止其他各個CPU使用當前已經“過時”的數據,這就是所謂高速緩存一致性問題。那麼如何保證所有高速緩存能反映存儲器的真實情況呢?

高速緩存一致性不是用軟件來實現,它必須用硬件來管理。高速緩存一致性問題也不是用CPU來實現,而是用Hub芯片中的部分輔助線路來實現。為了提高系統的帶寬和規模可伸縮性,在采用ccNUMA體系結構的服務器中,不采用基於總線的廣播方法,而是采用基於目錄的高速緩存一致性方案。任何時候,當一個節點請求訪問存儲器中某一Cache行時,它的集線器就啟動曾經訪問過該行節點的高速緩存,並把Cache行的存儲器數據拷貝到這一節點的高速緩存中。當存儲器中的Cache行未被獨占時,其他各節點就可按同樣方式通過互聯網絡從高速緩存中讀取該行數據。當一個CPU要修改一個Cache行時,它必須取得獨占權。為此,集線器從目標行的狀態位中進行檢索,並發送一個無效信息給對該行數據作過拷貝的每個節點,在目錄存儲器中設置了對內容作修改的節點的編號。當一個CPU要讀一個Cache行,且該行被獨占時,集線器就要求該節點對這個Cache行作拷貝。其他節點則通過互聯網絡從擁有獨占權節點的高速緩存中拷貝該Cache行的最新信息。如果兩個節點要求同時訪問某一Cache行時,則有協議來保證某個節點去訪問該Cache行。

ccNUMA結構的服務器在性能、靈活性、可用性方面都能適合用戶多種應用的要求,它已成為當今互聯網經濟時代非常卓越的Internet/Web服務器,特別是在寬帶因特網中作為多媒體應用的核心服務器。與集群不同的是,集群采用一種松散的結合方式,在幾台機器之間相互通信,內部交換時間長、消耗大,而且把幾台機器作為一個系統管理,勢必增加了管理上的難度。而ccNUMA計算機則不同,無論它內部有多少個處理器,對用戶來說,它也僅僅是簡單的一台計算機。

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

模塊化結構

模塊化服務器主要包括計算模塊、I/O模塊和海量存儲器模塊。這些模塊協同工作,構成一個模塊化服務器系統。在一個模塊化服務器系統中,可以分別對每一個模塊進行升級、故障查找,或用新模塊替換舊模塊,同類模塊也可以隨時加入到模塊化服務器中,以便對系統進行擴展。

模塊化服務器的最大好處之一,就是可以保護客戶的投資。模塊化服務器是一種可伸縮的服務器,客戶可以隨著業務需要,通過向服務器中添加各種模塊,擴展他們的服務器系統;另一個顯著優點是維護管理十分方便。模塊化服務器增強了系統的可用性和容錯性。從高性能多處理器計算機體系結構觀點來看,ccNUMA體系結構,把多個處理器通過路由器光纖互聯在一起,系統帶寬可隨系統規模擴大而增加,從而克服了基於總線的SMP體系結構所造成的瓶頸。ccNUMA結構采用超立方體的多維互聯特性,加上模塊化計算所帶來的靈活性,使系統的可伸縮性達到了前所未有的水平,同時節省了費用。因此,模塊化的NUMA服務器在靈活性和經濟性方面達到了一個新境界。

硬件分區

硬件分區,是將一台服務器的硬件分割成多個分區的體系結構。將服務器配置的處理器、內存和I/O控制器等硬件資源分配給多個分區,讓各分區上運行不同的OS,也就是提供“分區功能”。利用系統的硬件分區能力,系統可同時為多種不同操作系統提供支持,從而滿足客戶對相同物理硬件不斷增長的需求。系統分區最初是靜態的,當資源從一個分區移到另一個分區時,這兩個分區中的應用和操作系統需要停止,在操作控制台對系統重新配置後,應用和操作系統才可以重新啟動。隨著操作系統進一步完善,操作系統在支持熱插拔和熱添加能力的同時,也為動態分區提供了所需要的支持基礎,這就是說,資源可以在各個分區之間移動,而不會影響這一分區中的應用運行。 ---http://www.bianceng.cn

長久以來一直存在著一個話題:UNIX服務器能否替代專有系統。這同樣是一個見仁見智的問題,但是不容忽視的事實是,各UNIX廠商在高端產品不斷推陳出新,增加產品的技術內涵,既以達到並超過大型主機為目標,又作為自己UNIX技術的集中體現,與其他UNIX廠商競爭。

當然, UNIX技術的發展決不能僅限於性能和功能上。在安全性和管理性上,UNIX服務器有不少需要向主機學習的地方。但是,高端UNIX系統已經基本可以滿足主機用戶的要求,並且在各廠家的推動下更快地進步。UNIX占據主機的部分市場也將是不可避免的。這就和NT服務器和低端UNIX服務器的競爭有些類似。

隨著市場競爭的日益加劇和IT企業的大規模兼並,曾經出現的幾十家UNIX廠商競相角逐的景象已不復存在。目前僅剩下幾家UNIX廠商,他們把持了UNIX服務器的市場和技術發展趨勢。下面我們就看看幾款有代表性的產品。

HP 9000 Superdome高端UNIX服務器

Superdome服務器主要面向大型互聯網企業、互聯網服務提供商,以及開發電子商務戰略,需要處理大量數據的企業。

Superdome是惠普公司在繼V系列之後推出的第一款支持64個及可無限擴展微處理器的服務器,可以同時支持PA-RISC和IA64處理器。64個CPU的一款可支持256GB內存,I/O插槽最多可達192個。Superdome提前做好了開放系統的集成工作,可在同一台系統上分區,運行HP UX-11i、Linux、MPE和Windows NT;性能可以通過硬件物理分區、多級分區、軟件虛擬分區和綜合動態分區等功能獲得提高。惠普為Superdome制定了全新的銷售定價方式和服務模式-“全面客戶服務模式”。Superdome的客戶將得到惠普公司的全套解決方案,使客戶在系統革新、建設、運行和發展升級四個使用階段中都能全程享受到惠普提供的支持服務。

IBM p系列680服務器

p系列680服務器是IBM最強大的UNIX對稱多處理器系統,在處理眾多不同的關鍵電子商務應用(包括Web serving和hosting、ERP、 SCM、CRM等等)上尤為出色。

680中配備的微處理器采用了絕緣硅(SOI)技術。該技術通過在芯片電路上塗上一層絕緣體,降低了電流發熱。芯片熱度的降低不僅可以提高運行速度,還可以減少運行錯誤,或系統崩潰的機率。680配備的CPU運行頻率為600MHz,每一枚微處理器的緩存容量為16MB,系統內存容量為96GB,SMP配置最多可達4個6路處理器模塊。

Sun Enterprise 10000服務器

Sun Enterprise 10000運行在Solaris操作環境下,對於基於主機的或客戶機/服務器的各類應用,如在線交易處理、決策支持系統、數據倉庫、通信服務或多媒體服務等,它都是理想的通用服務器或數據服務器。

Sun E10000脫胎於CRAY的CS6400,是第一個具有硬件分區(Hard Partition)功能的UNIX高端服務器,同時也是第一個達到64路SMP計算的UNIX單機。它采用Sun UltraSPARCII 400MHz處理器,最多可配置64個CPU,最大內存容量為64GB,可以實現最多16個分區(或稱為域),在線磁盤存儲容量可達64TB,具有動態重組特性(可提供在線服務能力)和動態系統域特性。通過在系統的核心部位采用Gigaplane-XB互連,提供的數據帶寬可達到每秒12.8GB。

SGI Origin 3000服務器

SGI Origin 3000高性能服務器新產品采用SGI NUMAflex結構,即SGI新型模塊化計算結構或稱為第三代NUMA架構。SGI 3000服務器可以從兩個64位的MIPS RISC CPU的最低配置擴展到512個CPU的共享存儲的多處理器系統。另外,SGI的InfiniteReality3圖形子系統也可以集成到該結構中。

第三代NUMA服務器采用模塊化設計,7種基本模塊分別是CPU擴展模塊、磁盤存儲器擴展模塊、基本的I/O模塊、PCI擴展模塊、路由器互聯模塊、XIO擴展模塊和圖形擴展模塊。模塊化設計使系統配置更加靈活,更加經濟高效,並具有很高的容錯性和系統擴充性,能為客戶提供可靠的總體投資保護和卓越的性能。

Copyright © Linux教程網 All Rights Reserved