用Nehalem、SSD和Solaris 打造完美阿里巴巴電子商務平臺
基于IT產業(yè)不斷涌現的各種嶄新技術,以及阿里巴巴電子商務業(yè)務的不斷快速發(fā)展,阿里巴巴和英特爾合作對于互聯網應用中數據庫的新型應用平臺展開探討和研究,開拓了全新的數據庫平臺,并最終成功部署到阿里巴巴電子商務平臺應用環(huán)境中,展現了高科技推動互聯網生產力的典型驅動力。
本文從架構角度分析幾種新技術(Nehalem, Solaris, SSD)的特點,并能夠把它們有機的結合起來,充分發(fā)揮各自的潛力,相互配合,統一到一個高效的組合中。同時,基于一些測試數據和真實的實際運營的情況,給出較令人信服的論據。最后,本文對將來的發(fā)展做進一步展望。
背景介紹
數據庫系統的發(fā)展,特別是高端數據庫,一直是小型機的天下。基于PC服務器解決方案成本低,但往往被認為單臺系統性能不能滿足大規(guī)模系統的要求,更主要的是系統的穩(wěn)定性和可靠性常常為人詬病。
人脈通是阿里巴巴今年推出的電子商務領域的SNS平臺,背靠阿里巴巴強大的交易平臺和豐富的用戶數目,其對性能的要求在規(guī)劃時期就被明確地提了出來。同時,基于成本和可擴展性的考慮,阿里巴巴也打算嘗試新的數據庫平臺系統架構,而不是單一的使用小型機。
阿里巴巴數據庫平臺的特點和業(yè)務
數據庫系統是典型的IO密集型應用系統,其系統壓力瓶頸最容易出現在IO操作方面。對于 Oracle 數據庫,由于其優(yōu)異的實現機制的設計,shared pool 的高效實現,大大降低了解析 SQL 語句所需要的資源。同時,對即使像 MySQL 這樣沒有 shared pool 機制的數據庫,只要訪問的數據稍微離散一些,性能瓶頸很快就會出現在 IO 操作上面了。當然,如果系統的訪問集中在相對靜止的少部分數據的話,瓶頸可能還是會出現在CPU以及其與內存的交互方面,但是這樣的系統已經很稀少了。
隨著 Web2.0 的流行,互聯網信息量的增長簡直可以用爆炸式來形容。而 此類Web2.0 類型的應用,由于用戶交互性非常高,正是典型的高并發(fā)高離散的實時性數據請求類應用,自然就會給數據庫帶來直線上升的壓力。
對于阿里巴巴這樣的典型電子商務類型的網站應用,其實質可以被認為是較早涉及Web2.0的應用,也是非常典型的OLTP數據庫應用。其最顯著的特點就是每個事務處理單元都比較小,即每個事務請求涉及的數據量都很小,但是并發(fā)量非常高,而且要求響應時間要非常短。對應到數據庫就是會產生大量的離散IO操作,這對于傳統的機械硬盤來說無疑是非常致命的,因為硬盤的機械原理決定了離散的小IO請求會讓大部分服務時間花在磁頭尋道上面。所以,對于高并發(fā)的 OLTP 數據庫系統,為了解決苛刻的 IOPS 量,不得不使用大量的機械硬盤,通過 RAID 技術將數據進行 strip 處理,來提高存儲系統的并發(fā) IO 處理能力,進而提高整個存儲系統的 IOPS 能力,以滿足前端應用對每次請求的響應時間要求。
另一方面,當傳統大規(guī)模數據庫的IO請求由昂貴的機械硬盤存儲設備來滿足的時候,處理器的壓力也進而增加?,F有的解決方案往往是尋求大型的服務器系統,包括多路的小型機等來滿足。這樣的方案也許能解決一時的需求,但在系統的可擴展性,針對阿里巴巴不斷增長的業(yè)務數據需求來說,總是會達到瓶頸而無法順利的滿足要求。
最后,對數據庫系統,特別是阿里巴巴這樣的電子商務類系統,數據的安全性、一致性和可靠性是最重要的?,F有的一些方案比如PC服務器配合Linux的方案,在操作系統本身以及文件系統上,確實在這方面要比小型機系統都要遜色。
阿里巴巴人脈通數據庫體系架構
綜合考慮以上因素,在阿里巴巴規(guī)劃新的開放平臺人脈通系統的時候,恰逢一些新技術的出現和成熟,我們?yōu)槠渫瞥隽巳碌捏w系架構:使用英特爾高性能SSD作為IO存儲設備,運行在英特爾全新一代Nehalem服務器平臺上,同時采用高可靠的Solaris作為操作系統。下面分別對這個數據庫系統的體系結構,使用的新技術以及其和阿里巴巴數據庫系統的結合分別進行介紹。 #p#page_title#e#
體系架構介紹
新的體系架構完全基于開放式的PC Server硬件,使用英特爾最新推出的基于Nehalem平臺的服務器,配備高性能的SSD磁盤作為存儲設備。從軟件上看,新架構選擇了Solaris作為操作系統,而MySQL則作為最終的數據庫軟件。同時為了解決數據的高可用和可擴展性兩大難題,使用了阿里巴巴自主研發(fā)的數據庫中間代理層軟件(Cobar),使得基于新架構的數據庫平臺達到了非常理想的狀態(tài)。
人脈通系統的基本架構如下圖所示:
圖表 1 阿里巴巴人脈通架構
Cobar 通過數據的切分來解決數據庫的擴展問題,不僅支持通過表名來進行垂直切分,還可以通過指定的“key”通過某種特定算法將同一個表中的數據水平切分到多個 MySQL 中,通過垂直和水平拆分,讓數據庫系統具有了幾乎無限的擴展性。
在高可用性方面,Cobar通過兩種方式來實現了高可用需求。第一種方式是和MySQL 的 Replication 相結合,同時管理 Master 和 Slave 的連接,當現有 Master 不可用的時候,自動將所有寫請求路由到原 Slave 上,在應用端幾乎感受不到切換過程帶來的任何異常。第二種方式則完全由 Cobar 自行實現,通過實時(或者異步)的將數據寫入2個或者更多的數據庫中,而且還支持同時寫MySQL和Oracle數據庫。在任何一個數據庫出現異常的情況下,系統仍然可以繼續(xù)提供完整的服務。
架構中新技術元素分析
英特爾Nehalem平臺。Nehalem處理器是英特爾公司2009年初推出的新一代處理器,基于45納米改進的High-K技術,采用了全新的內存控制器嵌入和QPI互聯的架構,增強的酷睿架構和動態(tài)智能能耗管理技術,其它還有一些平臺技術比如PCIE 2.0,虛擬化IO支持的增強等?;谟⑻貭朜ehalem處理器的服務器能達到高達60%的整形性能、超過100%的浮點性能以及超過200%的內存帶寬性能提升。Nehalem 5500系列至強處理器的革命性,集中體現在了三個方面:
智能高性能,可順應不斷變化的業(yè)務和應用要求自動優(yōu)化性能。
自動化高能效,可按比例調整工作負載的能耗使用情況,實現最佳的性能功耗比,并減少運營成本。
靈活強大的虛擬化支持:可在虛擬化環(huán)境中提供一流的性能和可管理性,提高IT基礎設施的效率和利用率,降低總體擁有成本。
圖表 2 英特爾Nehalem系統架構
同時,在數據庫事務處理方面,Nehalem平臺體現了強大的實力,最新的TPC-C評測結果創(chuàng)造了新的紀錄(見圖),表明了Nehalem在這方面無可比擬的進步。
表 3 Nehalem的TPCC性能
英特爾SSD固態(tài)磁盤。I/O存儲速度技術的發(fā)展一直落后于英特爾處理器的速度進步,伴隨著摩爾定律的更迭,英特爾處理器在過去十幾年性能得到了近百倍的提升,而傳統硬盤的訪問速度不過在1倍之內。兩者之間不協調發(fā)展阻礙了某些應用,特別是需要大量數據訪問應用對處理器的應用。英特爾在2008年適時推出基于Flash NAND技術的固態(tài)磁盤,內部10通道提供NATIVE的SATA訪問接口。對傳統硬盤最高能達到近百倍的IOPS提升。英特爾SSD改變的是I/O性能,提供了大量服務器架構革新的機會。
圖表 4 英特爾高性能SSD固態(tài)磁盤
SSD可以非常完美地提供應用中對I/O的訪問需求,提供了充分利用系統處理器的機會。結合Nehalem處理器,兩者的配合使用,可以達到對類似數據庫應用的比較充分的平衡高效解決方案。
Solaris操作系統。免費、開放的Solaris操作系統是一個歷史證明、業(yè)界領先的、可用于關鍵業(yè)務的操作系統,并能幫助客戶節(jié)約時間和運營成本,它擁有很多其他操作系統所沒有的,激動人心的技術特點來幫助提高系統的性能,可靠性,安全性和可管理性,這些重要的技術特點包括ZFS文件系統、DTrace動態(tài)跟蹤技術、預測性自愈(Predictive Self Healing)以及用來提高系統利用率的Solaris容器。Intel和Sun公司從2007年開始建立了長期的合作關系,來自兩個公司的工程師共同對x86平臺上的Solaris操作系統進行了大量的性能優(yōu)化,從而保證Solaris在x86平臺上具有最優(yōu)的性能表現。2009年5月才發(fā)布的Solaris 10 Update 7就對Intel最新發(fā)布的Nehalem平臺進行了大量有針對性的優(yōu)化工作,從而可以充分發(fā)揮出Nehalem平臺的強大性能。 #p#page_title#e#
高性能
通過優(yōu)化的調度器和內存分配優(yōu)化(Memory Placement Optimization),Solaris操作系統可以充分發(fā)揮Intel的QPI(QuickPath Interconnect)技術的能力,從而在非內存訪問一致性(NUMA)系統中給應用帶來巨大的性能提升。Solaris操作系統還擁有一個杰出的線程模型,使得不管對于客戶應用還是業(yè)界標準的測試程序,它都能提供超越其競爭對手的性能。尤其是對于Nehalem平臺,優(yōu)化過的Solaris操作系統能夠充分發(fā)揮出該平臺上多核和超線程的技術優(yōu)勢。
可靠性
通過預測性自愈技術,Solaris操作系統可以自動的診斷、隔離軟硬件錯誤、并幫助系統自動恢復。FMA(Fault Management Architecture)是預測性自愈的重要組成部分,它通過接收相關的軟硬件錯誤信息,自動診斷系統發(fā)生的問題。一旦診斷,FMA會對問題進行響應,比如停止相關硬件和服務,并建議相應的處理意見給系統管理員。預測性自愈技術可以大大降低Solaris系統宕機的概率。
有效的能耗管理
通過創(chuàng)新的能耗感知調度器(Power Aware Dispatcher),Solaris操作系統可以充分發(fā)揮Nehalem平臺上能耗管理技術的優(yōu)勢,使得操作系統內核盡可能長時間待在C-state狀態(tài),在保證應用性能的前提下可以充分降低系統的能耗。
新技術對數據庫平臺系統的支持
Nehalem超強的處理能力,讓 PC Server 在CPU資源方面已經具有了可以和小型機媲美的運算能力,雖然暫時 PC Server 平臺所能夠承載的 CPU 數量還比較有限,但是從目前的數據庫環(huán)境實測數據來看,從單機 CPU 處理能力來比較,一臺配備2個4核 Nehalem CPU 的 PC Server 的處理能力已經完全不遜色于配備16個Power 5+ CPU 的 IBM P590。而且從PC Server迅猛的發(fā)展速度來看單機達到8個CPU容量的 PC Server 的出現應該不會讓我們等待太久。
SSD 磁盤。針對于上面所描述的數據庫應用場景,SSD 硬盤有其天生的優(yōu)勢。其幾乎可以忽略不計的數據尋址時間,讓每次 IO 的響應時間非常之短,從原來在機械硬盤上的毫秒級響應速度縮短了1到2個數量級至微秒級別。在讓整個數據庫的并發(fā)響應能力得到了極大的提高,自然也會讓前端應用的響應體驗得到了非常大的提升,也讓系統的用戶體驗得到了改善。
Solaris操作系統的很多特性和阿里巴巴的數據庫系統結合起來,給整個體系架構帶來了很大的幫助,包括系統性能提升,數據的可管理性以及系統利用率的提高等:
ZFS文件系統
眾所周知,ZFS這個突破性的文件系統,可以在普通存儲設備上實現通常只有高端存儲設備具有的管理功能和一些高級特性,使其在易用性和近乎無限的擴展性方面與現有的其他文件系統相比具有非常大的優(yōu)勢。ZFS的管理便利性,極大的降低了系統的運維成本。通過合理的設計,將ZFS與先進的SSD磁盤想結合,使用SSD磁盤作為ZFS的L2ARC,可以在極小的成本投入前提下讓整個存儲設備的性能得到成倍的提升。此外,ZFS在功能方面也有很多目前僅僅在部分高端存儲中才有的高級特性。如基于事務的高度安全的文件操作,支持多種類型設備的 L2ARC,非常高效的 snapshot 功能,基于block級別的快照遠程復制功能等等。
ZFS給我們的 MySQL 數據庫帶來的最大益處就是事務安全的 snapshot 功能以及其基于block的遠程復制功能。這對于沒有一個很好的物理備份解決方案的 MySQL 來說,提供了一個非常好的備份手段,可以幫助我們在非常短的時間內在線完成備份操作,完全不會影響到線上業(yè)務的正常運行。
Dtrace
作為OS層面一個動態(tài)監(jiān)測系統,Solaris 的 Dtrace 可以說是在 OS 上一個非常大的創(chuàng)新。由于監(jiān)測的數據全部取自運行時狀態(tài),所以在性能調優(yōu)和 Trouble Shooting 方面有著非常大的功用。此外,Solaris 在教育、通信以及金融行業(yè)中,都得到了大量的實際場景的證明,具有非常好的穩(wěn)定可靠性。尤其是在高負載的場景下,Solaris 基本上不會出現因為資源消耗光而無法管理的情況,但Linux就很可能遇到如此的窘況。 #p#page_title#e#
Container
Solaris的Container 通過資源管理技術從 OS 層面提供虛擬化能力,通過相應的配置,在單個物理機器上獲得多個邏輯的系統,使得一個系統看上去是邏輯上獨立的多個系統。從而提高硬件設備的整體利用率,有效的隔離多個應用之間的相互影響,并降低把多個應用整合到一個系統的成本。
實驗測試數據分析
新架構中最主要的兩大部件 CPU 和 存儲設備的測試效果性能非常理想,不論是 CPU 還是 SSD 磁盤的 IO 能力,表現都非常的好,阿里巴巴對此進行評估數據如下:
通過阿里巴巴專門用于選型數據庫主機的系統標準測試套件的壓力測試,得到如圖所示的下 ATPS 數據。從測試數據可以看出,Intel 用于 PC Server 的 X86架構 CPU 的處理能力各個產品提升非常之快,到Nehalem每核的處理能力已經可以和 小型機芯片不相上下了。
通過 Oracle 所提供的IO測試工具 Orion 實測所得到 IO 能力如下:
8K random read: 約 19000 IOPS
8k random write: 約 16000 IOPS
注:傳統的15K FC 機械盤的 IOPS 是無法逾越200的。
新架構中最主要的兩大部件 CPU 和 存儲設備的測試效果性能非常理想,不論是 CPU 還是 SSD 磁盤的 IO 能力,表現都非常的好,阿里巴巴對此進行評估數據如下:
通過阿里巴巴專門用于選型數據庫主機的系統標準測試套件的壓力測試,得到如圖所示的下 ATPS 數據。從測試數據可以看出,Intel 用于 PC Server 的 X86架構 CPU 的處理能力各個產品提升非常之快,到Nehalem每核的處理能力已經可以和 小型機芯片不相上下了。
通過 Oracle 所提供的IO測試工具 Orion 實測所得到 IO 能力如下:
8K random read: 約 19000 IOPS
8k random write: 約 16000 IOPS
注:傳統的15K FC 機械盤的 IOPS 是無法逾越200的。
圖表 5阿里巴巴數據庫標準套件ATPS性能
實際運營說明
新架構組合不僅在測試中給我們展示了非常卓越的表現,在阿里巴巴實際的應用場景中,所表現出的處理能力也達到了預期的滿意水平。阿里巴巴最新推出的商人SNS系統“人脈通”的數據庫平臺最終部署運行在這套全新架構組合之上,主機主要配置信息如下:
品牌:Dell R710
CPU:X5520
內存:24GB DDR3
磁盤:8 * 64GB Intel SLC SSD
操作系統:Sun OS Solaris 10 Update 10
人脈通的訪問鏈接(http://renmai.china.alibaba.com/)以及主頁截圖:
人脈通系統僅僅使用了4臺上述主機,就非常輕松的支撐起了方便廣大商友經營自己人脈關系的強大交互平臺。與其他線上系統比較,這4臺新架構組合的主機,所具有的CPU處理能力,已經與12到20臺配備了2個4核的上一代CPU的2950的處理能力不相上下了,而其隨機IO的處理能力更是可以與配有超過100塊FC機械盤的中高端存儲媲美。
總體和展望
隨著 x86 平臺芯片技術的飛速發(fā)展,PC Server 的處理能力與小型機的處理能力的差距已經越來越小了。雖然目前 PC Server 由于其自身的擴展能力還受到一定的限制,單機所能承載的 CPU 數量有限,但隨著分布式架構的日趨成熟,我們對主機的 Scale Up 能力已經并不像多年以前那樣非??粗亓恕6?,隨著 PC Server 架構技術的不斷發(fā)展,單機能夠承載 CPU 的數量一定會在不久的將來得到較大的突破。
而 SSD 硬盤的出現,更是可能給整個存儲產業(yè)帶了較大的變革。很長一段時間以來,傳統機械硬盤的單個 IO 響應時間一直難以有較大的突破,而隨著 SSD 磁盤的出現,這一問題迎刃而解。雖然目前在容量方面還不如傳統的機械硬盤,但我們相信隨著工藝和技術的提升,SSD 硬盤的容量問題很快就會得到解決了。
通過擁有小型機一樣處理能力的 PC Server, 加上可以與高端存儲媲美的 SSD 磁盤,運行在高可靠性的操作系統Solaris上,同時結合Alibaba在軟件方面的創(chuàng)新,打造高性能高可用可擴展的Web2.0經濟型數據庫平臺已經成為現實,通過數十萬的成本構建過去需要數百萬甚至上千萬的設備才能支撐的系統已經不再是夢想。 #p#page_title#e#
作為一個開放型的平臺,數據庫本身如何做到很好的可擴展性同時滿足極高要求的可用性,是這個系統的關鍵點。在構建系統過程中,阿里巴巴的目標不僅僅是構建一個開放平臺,同時也是以開放的心態(tài)與各廠商一起合作,共同打造開放的電子商務基礎環(huán)境。