應對海量數據 Oracle數據庫機青睞至強
隨著企業業務的發展,大型數據倉庫越來越多,其規模也在迅速擴大,平均每兩年規模增大3倍。大型數據倉庫要求以最高的磁盤讀取速度掃描幾十、幾百或幾千個磁盤,所以企業常常發現數據倉庫越大,運行速度就越慢。
Oracle Exadata數據庫機,也叫“數據庫云服務器”,正是從緩解類似難題入手,通過高度的數據壓縮比和海量數據的Flash Cache緩存等技術,滿足高端用戶一直面對的數據量持續增長的IO壓力和存儲壓力。此前Oracle 的CEO Larry Ellison曾宣稱,數據庫機是Oracle近30年歷史上最重要的產品。
▲使用英特爾至強處理器的Oracle Exadata數據庫機
下面我們將以Oracle Exadata數據庫機為例,從性能、可用性、可擴展性、投資成本等多角度來分析x86平臺對于數據倉庫、OLTP、數據庫混合負載等企業級關鍵業務應用的價值所在。
#p#
打破數據庫應用I/O瓶頸
我們知道,服務器從內到外的數據傳輸過程要經過“CPU—緩存—內存—內部存儲—外部存儲”等環節。對于傳統數據倉庫應用來說,大量數據需要從存儲系統讀取到服務器內存,是其最大的瓶頸所在。為了打破這一瓶頸,“減少數據傳輸量、增加I/O通道、提高I/O帶寬”是通常需要考慮的方法,Oracle Exadata正是從這三個方面著手解決問題。
首先我們來看一下,Oracle Exadata是一臺什么樣的機器。
據了解,Oracle Exadata數據庫機(數據庫云服務器)主要針對在線事務處理 (OLTP)、數據倉庫 (DW) 和混合工作負載整合在內的所有數據庫應用環境,把數據庫服務器、存儲服務器、InfiniBand交換機、以太網交換機、KVM、電源等模塊在出廠時就在機柜中配置好,并經過嚴格測試。用戶拿到機器之后即可使用Oracle數據庫11g、存儲管理等軟件,不必再重新進行服務器、存儲的配置。以一個機柜的滿配置來看,Oracle數據庫機擁有8臺基于英特爾至強7500的數據庫服務器和14臺存儲服務器,總存儲容量可以達到100TB,IOPS可以達到每秒100萬次I/O操作。根據企業業務量的規模不同,可以從1/4機柜擴展到8個整機柜,最大可以管理到多個PB級數據庫。下圖顯示的是每二版Exadata系統的架構:
針對上面提到的I/O瓶頸問題,Oracle Exadata將應用進行分隔運行,讓計算和內存密集型的數據處理類應用在數據庫服務器上執行,而讓I/O密集型的搜索類應用直接在存儲服務器上執行。在這一理念指導下,Oracle在存儲服務器上,通過智能掃描SmartScan、混合型列壓縮技術、自動透明的存儲索引、數據挖掘模型評價等技術,在存儲端就實現數據密集型的處理,從而可以將發送到數據庫服務器的數據量減少10倍。而傳統的做法是,全部的數據庫只能存在于數據庫主機,來源于存儲端的數據大部分會被數據庫主機所丟棄,而這些大量的廢棄數據會占用寶貴的數據庫主機資源,如I/O、CPU、內存等,進而嚴重影響其它任務的執行,處理變得緩慢。
▲Smart Scan技術讓搜索在存儲端進行
另外,Oracle Exadata通過模塊化設計,在通過增加存儲單元時,提高整機的數據吞吐量;并采用每秒40Gb的InfiniBand做系統內部互連,其帶寬比傳統的光纖通道要快10倍。正是通過一系列技術創新,Exadata系統化地解決了數據庫應用中讓人頭疼的存儲I/O瓶頸問題。
#p#
PK傳統SMP小型機
以往,針對大規模的數據庫類應用需求,一些用戶通過基于SMP架構的小型機來滿足。這些小型機可以支持多顆CPU,實現從2路到4路、8路、16路,直至256路的縱向擴展(Scale-up),即在一個機箱里增加更多的CPU、內存和I/O等資源。
從SMP的系統架構來看,其最大的優勢在于共享內存,對內存統一編址。但也正是這一點為SMP的發展帶來很大障礙,因為共享內存資源必然引起資源沖突。換言之,要保持SMP系統從2路到256路的線性或接近于線性增長,其SMP架構下的系統總線、高速總線等同樣需要線性增長,但技術實現難度很大,也會導致設計和制造成本不斷攀升。
總的來看,目前大型SMP系統主要存在四個瓶頸:首先是價格昂貴,單一系統動輒數萬美元乃至數十萬美元,如果用雙機方案,成本就得翻倍;其二是系統擴展性較差,單一系統最多256顆CPU,而模向擴展又受制于高昂的投資成本;其三是存在技術瓶頸,單獨依靠SMP難以提高計算機整體性能,尤其是越來越重的I/O需求;其四是系統兼容性差,每種系統自成體系,與其他廠家的產品難以兼容。
因此,對于要求更加苛刻的環境,比如大企業不間斷運行、負載很重的大型數據庫,相對于傳統SMP小型機,許多廠商和用戶都開始青睞更加靈活高效的x86服務器集群系統(Scale-out,橫向擴展),如Oracle Exadata數據庫機,因為集群技術允許使用低成本的服務器來構造具有高可伸縮性和高可用性的高性能系統。
下面我們就來比較一下Oracle Exadata與傳統SMP小型機的具體差異:
在性能方面,通過一系列智能存儲技術,Oracle的數據庫機可以大大提高數據處理的性能,其大型OLAP及OLTP業務處理性能是傳統解決方案的幾十倍至數百倍。
在可擴展性方面,通過將縱向擴展和橫向擴展兩種方式相結合,Oracle數據庫機可以更加靈活地滿足業務發展的需求。通過導線和外部InfiniBand交換機可以擴展至更多機柜,達到數百個存儲服務器、數PB容量數據庫。
在成本上,通過采用基于英特爾至強的x86服務器和存儲系統等通用組件,使得Oracle數據庫機的總擁有成本大大降低。跟使用SMP小型機和專有存儲陣列的方案相比,其硬件成本只有1/6,總體成本不到小機的一半。
在易用性上,傳統SMP小型機在部署起來比較麻煩,需要針對服務器、存儲、操作系統和數據庫需要分別進行配置,費時費力。而Exadata是軟硬一體化的產品,包含了操作系統、數據庫和服務器、存儲等,因此部署極為簡單,號稱即插即用。
需要特別強調的是高可用性。從至強7500開始,X86系統的RAS特性已經提高到了一個全新的水平,這些技術多達22條,集中解決三個方面的問題:一是數據保護,可以診斷哪些數據出錯,利用CRC、ECC校驗來糾正錯誤,如果不能糾正,可以把這些壞的數據進行隔離,以保證不影響其他數據,避免系統的重啟和宕機。二是高可用設計,包括QPI Link之間的互備和熱切換,內存和CPU的熱切換、故障預警機制等等,以保證系統的高可用。三是降低系統計劃內的宕機時間,包括系統分區管理技術、CPU和內存的熱添加和熱移除等。
此外,Oracle數據庫機還通過冗余電源、冗余交換機、數據庫文件鏡像、數據庫集群、備份等多種技術,來提高系統的整體可用性。
#p#
小結:技術與應用的雙重驅動
Oracle數據庫機的出現,在一定程度上反映了這樣一個道理:IT產業的發展離不開技術與應用的雙重驅動力。在不同階段,這兩個驅動力的作用可能不太一樣,但只有相互結合,才能更好、更快地促進產業發展。數據庫機正是如此,一方面,數據倉庫、商業智能、大型ERP等應用需要有更好的技術來應對海量數據的挑戰,另一方面,x86服務器、智能存儲、數據庫軟件等技術層面的進步也使得今天業界有能力來更高效地應對這些挑戰。據了解, Oracle Exadata的客戶已經涵蓋金融服務、保險、電信及制造業等領域,包括深圳聯合金融服務集團有限公司、海爾、中冶,中國人壽、青島市社保、新疆電信、北京移動、遼寧移動、中遠集運等。
隨著云計算的發展,Oracle的數據庫機也在向云方向轉變,于是我們最近聽到了一個新的名字:Oracle數據庫云服務器。在Oracle看來,除了IaaS、PaaS、SaaS之外,數據庫也是一種服務,即DB as a Service(DBaaS)。因為只有把數據變成有用的信息,通過數據挖掘、商業智能系統顯現出來,變成企業的決策與行動,數據才能真正轉化成企業的核心競爭力。因此,我們有理由相信,Oracle的數據庫云服務器還只是一個開端,云時代才剛剛開始。
【編輯推薦】