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