當前物理CPU正遵循摩爾定律在穩定的高速發展,然而人類對計算能力的要求更高,一方面應用對計算能力要求超過摩爾定律的速度,另外一方面要求提高計算能力的使用效率,這都離不開軟件的協助。虛擬化和分布式都是現在流行的架構,他們代表著兩個不同的發展方向:虛擬化——一臺機器分成多臺機器用;分布式——多臺機器合成一臺機器用。正可謂“天下大勢,分久必合,合久必分”。
一、分布式架構發展和現狀
1.從SMP到MPP
從系統架構來看,目前的商用服務器主要分為三類,對稱多處理器結構SMP,非一致存儲訪問結構NUMA以及海量并行處理結構MPP。
SMP(Symmetric Multi-Processor)
所謂對稱多處理器結構,是指服務器中多個CPU對稱工作,無主次或從屬關系。各CPU共享相同的物理內存,每個CPU訪問內存中的任何地址所需時間是相同的,因此SMP也被稱為一致存儲器訪問結構(UMA:Uniform Memory Access)。
SMP服務器的主要特征是共享,系統中所有資源(CPU、內存、I/O等)都是共享的。也正是由于這種特征,導致了SMP服務器的主要問題,那就是它的擴展能力非常有限。
NUMA(Non-Uniform Memory Access)
由于SMP在擴展能力上的限制,人們開始探究如何進行有效地擴展從而構建大型系統的技術,NUMA就是這種努力下的結果之一。利用NUMA技術,可以把幾十個CPU(甚至上百個CPU)組合在一個服務器內。
NUMA服務器的基本特征是具有多個CPU模塊,每個CPU模塊由多個CPU(如4個)組成,并且具有獨立的本地內存、I/O槽口等。由于其節點之間可以通過互聯模塊(如稱為Crossbar Switch)進行連接和信息交互,因此每個CPU可以訪問整個系統的內存。顯然,訪問本地內存的速度將遠遠高于訪問遠地內存(系統內其它節點的內存)的速度,這也是非一致存儲訪問NUMA的由來。由于這個特點,為了更好地發揮系統性能,開發應用程序時需要盡量減少不同CPU模塊之間的信息交互。利用NUMA技術,可以較好地解決原來SMP系統的擴展問題,在一個物理服務器內可以支持上百個CPU。比較典型的NUMA服務器的例子即我們常說的小機例如HP的Supterdome和IBM的Power服務器。
但NUMA的節點互聯機制是在同一個物理服務器內部實現的,當某個CPU需要進行遠地內存訪問時,它必須等待,這也是NUMA服務器無法實現CPU增加時性能線性擴展的主要原因。2013年年度備受矚目的“淘寶去IOE”的原因也在此。在IBM的小機和Oracle數據庫的組合下,淘寶通過硬件升級獲得的性能增長達到了瓶頸,無法滿足客戶的爆發性增長。
MPP(Massive Parallel Processing)
和NUMA不同,MPP提供了另外一種進行系統擴展的方式,它由多個SMP服務器通過一定的節點互聯網絡進行連接,協同工作,完成相同的任務,從用戶的角度來看是一個服務器系統。其基本特征是由多個SMP服務器(每個SMP服務器稱節點)通過節點互聯網絡連接而成,每個節點只訪問自己的本地資源(內存、存儲等),是一種完全無共享(Share Nothing)結構,因而擴展能力最好,理論上其擴展無限制(如圖1所示)。目前的技術可實現512個節點互聯,數千個CPU。目前業界對節點互聯網絡暫無標準,如 NCR的Bynet,IBM的SPSwitch,它們都采用了不同的內部實現機制。但節點互聯網僅供MPP服務器內部使用,對用戶而言是透明的。
在MPP系統中,每個SMP節點也可以運行自己的操作系統、數據庫等。但和NUMA不同的是,它不存在異地內存訪問的問題。換言之,每個節點內的CPU不能訪問另一個節點的內存。節點之間的信息交互是通過節點互聯網絡實現的,這個過程一般稱為數據重分配(Data Redistribution)。
但是MPP服務器需要一種復雜的機制來調度和平衡各個節點的負載和并行處理過程。目前一些基于MPP技術的服務器往往通過系統級軟件(如數據庫)來屏蔽這種復雜性。例如NCR的Teradata就是基于MPP技術的一個關系數據庫軟件,基于此數據庫來開發應用時,不管后臺服務器由多少個節點組成,開發人員所面對的都是同一個數據庫系統,而不需要考慮如何調度其中某幾個節點的負載。
MPP以其優良的擴展架構成為了分布式架構的基礎。
圖1 MPP服務器架構圖
2.分布式架構應用現狀
當前主流的分布式應用有兩種:分布式數據庫和Hadoop分布式系統。兩種解決方案對比如表1所示。
表1 分布式數據庫和Hadoop分布式系統的對比
MPP分布式數據庫較Hadoop分布式系統,在復雜邏輯的結構化數據處理上具有一定的優勢,且可基于SQL開發,對于有較豐富SQL經驗的系統開發者,開發與運維更容易。當然,業界MPP分布式數據庫產品價格也要高于Hadoop這個源于開源社區的產品。
這是否意味著MPP分布式數據庫就是大數據處理的最佳解決方案呢?我們以銀行系統數據的價值密度和數據特征為例來考慮這個問題。對于銀行系統數據,我們基本可以達成這樣一個共識:銀行系統數據中,結構化數據價值密度通常高于非結構化或半結構化數據,而在銀行數據中非結構化數據占用了大量的存儲資源。這是因為銀行系統中結構化數據以賬務數據為主,而非結構化數據則主要集中在憑證影像等數據。當然結構化數據中也包括部分日志信息等價值密度不高的數據。
數據存儲與處理技術在由“一種架構支持所有應用”向“多種架構支持多類應用”轉變。同樣對于數據消費層數據處理技術,也應根據數據價值密度及數據特征等因素采用與之相匹配的架構來支持。對于數據消費層數據中那些價值密度高的交易及賬務數據可采用MPP分布式數據庫構建數據處理平臺,而對于那些價值密度不高的結構化數據和非(半)結構化數據則可以采用Hadoop分布式系統作為處理平臺。
3.分布式局限性:CAP理論
如圖2所示,CAP原理中有三個要素:一致性(Consistency),可用性(Availability)和分區容忍性(Partition tolerance)。
圖2 CAP原理示意圖
CAP原理指的是在分布式系統中這三個要素最多只能同時實現兩點,不可能三者兼顧。因此在進行分布式架構設計時,必須做出取舍。而對于分布式數據系統,分區容忍性是基本要求,否則就失去了價值。因此設計分布式數據系統,就是在一致性和可用性之間取一個平衡。對于大多數Web應用,其實并不需要強一致性, 因此犧牲一致性而換取高可用性,是目前多數分布式數據庫產品的方向。
從客戶端角度,多進程并發訪問時,更新過的數據在不同進程如何獲取的不同策略,決定了不同的一致性。對于關系型數據庫,要求更新過的數據能被后續的訪問都能看到,這是強一致性。如果能容忍后續的部分或者全部訪問不到,則是弱一致性。如果經過一段時間后要求能訪問到更新后的數據,則是最終一致性。
但Web應用也有例外,比如支付寶系統,就要求數據(銀行賬戶)的強一致性,而且面對大量淘寶用戶,可用性要求很高,因此只能犧牲數據的分區冗余。
對于MPP DB而言,雖說是宣稱Scale out(橫向擴展),但是這種out一般到100,而Hadoop一般可以到1000+。在我們的測試中,也發現線性擴展性一項即使是在較小的節點數方面,也并未達到絕對的直線的性能。
這是為什么呢?我們大致可以從CAP理論上來找到一些理由。因為MPP DB始終還是DB,一定要考慮C(Consistency),其次考慮A(Availability),最后才在可能的情況下盡量做好P(Partition-tolerance)。而Hadoop就是為了并行處理和存儲設計的,所以優先考慮的是P,然后是A,最后再考慮C。所以后者的可擴展性當然好于前者。
二、虛擬化架構發展和現狀
目前,虛擬化的價值已經被廣泛認可,虛擬化架構也已經為大家所熟知,本文不在這里贅述,僅探討一些關鍵的更新。
1.全融合虛擬化架構
全融合虛擬化架構,也就是我們常說的軟件定義數據中心。從最直觀的定義來看,就是虛擬化、軟件化數據中心的一切資源。虛擬化是從服務器虛擬化開始的,虛擬機帶來的好處很多客戶都已經非常了解。但是網絡、存儲是物理性很強的資源,虛擬機雖然帶來了一些靈活性,沒有辦法在其他資源上體現。只做計算虛擬化相當于僅完成了整個工作的30%。軟件定義的數據中心就是把數據中心所有的傳統物理硬件的資源進行虛擬化、軟件化,從而實現了資源的抽象和與硬件的解耦和,是實現云計算的基礎。
計算存儲融合
HDFS是Google公司的GFS的開源實現,GFS是大數據的基礎。HDFS是分布式的文件系統,即每臺服務器在只使用內置硬盤的情況下,通過網絡互連,組建了一個由多個節點組成的,每個節點都同時使用并行文件系統。分布式文件系統是先進支撐互聯網應用的基礎,無論是淘寶還是騰訊,都有一個基于開源,自己研發的,名叫TFS(巧合,都叫TFS)的分布式文件系統。TFS是支撐其海量數據的基礎。
Ceph是OpenStack中最流行的存儲管理模塊,同時支持文件體統,塊設備和對象存儲。Ceph像一批黑馬,大有取代swift(對象存儲)和cinder(塊設備)的趨勢。
存儲產品本身也處在變革的過程中,SSD的出現徹底改變了傳統存儲。SSD作為緩存能夠極大的提升分布式文件系統的性能,通過互聯網已經證明自己實力的文件系統必將在企業市場激起新的浪潮。
計算網絡融合
¡ SDN和VXLAN
SDN提出了采用軟件定義網絡的思路,具有轉發和控制分離、控制邏輯集中、網絡虛擬化、網絡能力開放化等特點。SDN實現的核心控制器,即可以是普通的物理服務器也可以是虛擬機。
VXLAN技術是為了解決數據中心虛擬多租戶和虛擬機遷移的問題而設計的。VXLAN技術采用了L2 over L3技術,在原有的數據報文封裝中增加了VXLAN封裝,并增加了IP封裝,使得原有的L2報文可以穿越L3網絡,擴大了二層網絡的范圍,使得虛擬機遷移 可以靈活跨越三層部署。同時,VXLAN封裝大大擴展了租戶ID字段,避免了采用VLAN方式受到4K容量的限制。
VXLAN與SDN,前者解決虛擬遷移,后者關注控制,將支撐未來云計算網絡的搭建。
¡ NFV
NFV即網絡功能虛擬化,傳統網絡設備是由專門的硬件芯片和定制軟件平臺組成的。NFV指把定制軟件平臺安裝在通用硬件平臺,即x86服務器上。其本質在于解決電信運營商多年來高昂的網絡成本和封閉的網絡功能。
¡ SDN與NFV
SDN是一種跨設備級的技術,不僅只體現在企業網中的某一臺設備上,其通過改變網絡控制層與轉發層的邏輯關系,將為下一代網絡帶來更多、更新的功能,比如針對不同的業務客戶群,通過改變節點設備的轉發流表,優化不同的業務流。而NFV則屬于產品級的技術,通過改變單臺設備功能的承載形態進而影響整個網絡架構,比如在城域網中,將原本存在于統一集成網關設備中的路由、多媒體以及安全等網絡功能轉移到通用服務器上運行,以便降低成本、更好地響應用戶的需求。例如,H3C的VSR,就是一款運行在標準服務器虛擬機上的純軟件路由器產品,實現了計算平臺和網絡平臺的融合。
2.公有云服務
無論公有云還是私有云,云服務管理平臺經過多年的發展已經落地,其功能模塊已經確定。云管理平臺由門戶應用、服務運營、資源管理、運維管理、系統管理以及接口等組成。用戶能夠通過自服務門戶Portal進行用戶登錄登錄、服務訂購、服務變更、服務退訂、資源使用等服務操作。運營人員能夠通過運營管理門戶Portal進行用戶管理、資源模板管理以及系統管理等運營操作。大家可以看到,融合后虛擬化架構作為一部分包含在資源管理中(如圖3所示)。
圖3 云服務管理平臺的主要功能
三、結束語
隨著業務的不斷發展,傳統企業用戶會發現特定應用,通過傳統的硬件升級也無法滿足其需求,即遇到了性能或者容量的天花板。因此,傳統企業反而轉向互聯網行業學習分布式架構來解決他們遇到的問題。“棱鏡門”事件的主角——美國國家安全局之所以選中Amazon來提供其基礎設施而沒有選中IBM也是基于其海量數據(世界范圍內監聽電話,監控電郵)過濾分析的需求。
但是分布式架構也不是萬能的。傳統行業的IT強調數據一致性,而分布式系統強調線性擴展,只保證最終一致,這兩者不可兼得。大家可以參考前文的CAP理論,數據一致性,可用性,分區耐受性這三者在任一時刻,任何系統只有兩項能同時成立。
除此以外,傳統行業和互聯網企業的建設模式也是不同的,傳統行業傾向于購買定制硬件(Unix服務器,FC存儲)和商業軟件(Oracle數據庫,Weblogic中間件)和商業的解決方案。由于不掌握核心技術,企業IT管理人員遇到問題會直接咨詢廠商,專業廠商為企業義務連續性背書。而互聯網企業由于可以看到源代碼并且具備操作系統內核級修改的能力,傾向于使用開源軟件,x86架構廉價硬件配合大量工程師定制開發;企業遇到問題只有依靠自己解決。這兩種方式沒有孰優孰劣,適合的就是最好的,而且從成本上其實講差不多。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:新一代數據中心的計算架構
本文網址:http://www.guhuozai8.cn/html/solutions/14019318121.html