从ODA看一体机的木桶理论
中考剛結束,先講個高考期間網上流傳的的笑話——2012高考數學壓軸題:姚明、黃曉明、郭敬明,三人躺在地上能否組成一個三角形?
這笑話很沒品,但是這三個中國最著名的“小明”,分別是富、帥富、高帥富的代言人,拿他們調侃下絕對不能算欺負弱勢群體,至多是羨慕嫉妒恨。
最關鍵是激發了我的不靠譜想象力,關于所謂“一體機”的木桶理論。
盡人皆知的木桶理論是說,一只木桶能盛多少水,并不取決于最長的那塊木板,而是取決于最短的那塊木板。“最短板”早已被廣泛用于形容組織和個人應均衡發展,這里就不賣弄啦。
如果換個角度“刨”一下,能不能做成個像樣的木桶,木板的數量也很重要。兩塊木板基本做不成一個木桶(就算半圓形的,也得有塊做底不是),三塊木板也未必拼得到一起(見上面的笑話)。
如果木板的數量夠多,就算個別木板稍微短一些,做成的木桶(或者木盆?)也可以盛更多的水。
有足夠多的木板就可以自己做木桶,不然就得找其他有木板的合作。
現在終于可以切入正題了,探討一下Oracle的工程系統(Engineered System)——通稱“集成系統”,俗稱“一體機”。
本文可以說是去IOE:去掉“IE”就Ok?一文的延續。“去”文一定程度上分析了Oracle為什么要做一體機,本文接著以Oracle數據庫機(Oracle Database Appliance,ODA)為例,來看看Oracle的一體機是怎么做的,以及其他“箍桶匠”可奈它何?
Oracle最有名的一體機當然是推出時間最久的Exadata,里面蘊含的技術點較多,阿里巴巴數據庫架構師張瑞(網名HelloDBA)參與翻譯的《Expert Oracle Exadata》一書有相當詳盡的剖析,不是本文的重點。去年推出的ODA可以看作是入門版的Exadata,相對簡單,從而更具代表性和借鑒意義。
Exadata Database Machine直譯過來是“數據庫機”,而Oracle Database Appliance直譯應該是“數據庫設備”,“機”的概念大于“設備”也更復雜,體現了命名的嚴謹,不像現在的中文名般關系錯亂
按照Oracle的定義,Oracle數據庫機是全面集成了Oracle數據庫軟件和服務器、存儲、網絡系統的一體化數據庫設備。“全部作為一個完整的系統設計在一起,無需組裝或布線。要使用Oracle 數據庫機,只需打開包裝,插上電源線,插上網線,為其命名,然后安裝Oracle設備管理器軟件,即可快速創建一個集群化、高度可用的數據庫系統。”
用戶配置好ODA的主要參數之后,經過約2小時的全自動初始化過程,就可以使用Oracle RAC數據庫了
這么說還是有些含糊,不妨先看看Oracle數據庫機這個“木桶”用了那些主要的木板,長度如何,以及Oracle是怎么“箍桶”的……
ODA附帶的軟件,操作系統是預裝好的,其他軟件根據用戶選擇的配置參數和授權狀況,自動化的安裝
操作系統:預裝的Oracle Linux 5.5基于Red Hat Enterprise Linux(RHEL),不能算長板,起碼不是短板;
數據庫:Oracle數據庫可以說是世界上最好的商用數據庫,絕對的長板,也是Oracle能夠做Exadata和ODA的根本。ODA和Exadata一樣運行Oracle數據庫11g R2企業版,并可配置為Oracle RAC(Real Application Clusters,真正應用集群)提供計算節點的擴展性與高可用,或者Oracle RAC One Node用于主備模式的故障切換系統;
Oracle數據庫機的硬件平臺是4U的Sun Fire X4370 M2服務器
計算、網絡、存儲:都在一臺4U的Sun Fire X4370 M2服務器中搞定。X4370 M2由2個x86服務器節點組成,每節點配備雙路英特爾至強X5675 CPU(3.06GHz),提供12個按需啟用的處理器內核和96GB DDR3-1333內存,因此共有24個內核和192GB內存。默認激活所有24個內核,但一開始企業可以只激活兩個內核(兩節點各激活一個以提供冗余)。如需更多內核,可以隨時以四核為增量(在兩節點間均勻地)逐步激活。
這2個服務器節點通過一個內部冗余的千兆以太網(GbE)互聯實現集群通信,從而無需專門的網絡設備。每個服務器節點還提供1GbE和10GbE外部網絡連接,從而能與任何數據中心兼容。
運行中的Oracle數據庫機,最上面一行4個73GB SSD,下面5行共20個600GB硬盤驅動器,皆為3.5英寸規格
Oracle數據庫機在這2個服務器節點間共享24個3.5英寸SAS驅動器,包括20個600GB 15K SAS硬盤驅動器組成的高可用共享存儲,還有4個73GB SAS固態盤(SSD)用于重做(Redo)日志,設備管理器連同Oracle自動存儲管理(Automatic Storage Management,ASM)可自動配置、管理和監控磁盤的性能和可用性。ASM提供存儲的擴展性與高可用,是RAC的好搭檔。不過,需要說明的是,這個擴展性與高可用是ODA內部兩個節點之間的,ODA本身并不能再向外擴展。如果需要更大的規模和可擴展性,就要轉移到Exadata了。
計算和存儲是影響數據庫性能的兩大要素。相對于計算而言,存儲I/O通常是瓶頸。Exadata在其基于x86架構的存儲服務器中采用了PCIe閃存加速卡(屬于SSD的一種)作為Cache,可以大幅提高(隨機)讀性能。雖然與“去IOE”陣營常用的Fusion-io?ioDrive系列PCIe SSD相比,Sun基于“RAID控制器+Marvell閃存控制芯片”架構的PCIe閃存加速卡不太夠格,但已經比基于傳統磁盤陣列的方案要好很多(Exadata存儲服務器的優勢不僅于此,非我們討論的主題),體現了整體理念先進的重要性。
ODA的73GB SAS SSD(上,應該是STEC的SLC產品)和600GB的15000RPM SAS硬盤驅動器(下,很可能是希捷Cheetah 15K.7)
理論上ODA也可以使用PCIe閃存加速卡,可能是出于成本和簡化架構的考慮,代之以4個73GB的SAS SSD。SSD在ODA中的作用是保存Redo日志,而Exadata是將Redo日志同時寫入PCIe閃存卡和硬盤驅動器。原因在于Redo日志以寫入為主,而閃存更適合以讀為主的場景,一是寫性能沒有讀性能那么出色,二是寫入一定數據量之后可能會發生抖動(性能不穩定)。ODA這么做,除了簡化架構的考慮,也不排除所采用的SAS SSD控制器技術成熟,能夠很大程度上避免寫入的抖動。
20個600GB SAS硬盤驅動器全部用于數據庫的存儲,ASM采用三重鏡像的方式提供數據冗余,因此實際可用容量為4TB(12TB÷3)。ODA還采用將“生產數據存放在磁盤的外道,備份數據存放在磁盤的內道”的方式來優化性能,加上內置SAS背板48Gb/s的高帶寬,能夠達到隨機訪問(OLTP)4000多的IOPS,順序訪問(OLAP)3000MB/s以上的吞吐率,可以說已經把20個15K RPM硬盤驅動器的性能發揮到極致了(每個200多IOPS,150MB/s以上持續傳輸率)。
Oracle提供的ODA性能測試數據
通過上面的分析,不難看出,ODA沒有Exadata那么高的技術含量,更像是一個小型的Oracle數據庫“最佳實踐”。特殊之處在于,Oracle將自己對數據庫的最佳實踐打包成了一個軟硬件一體化的“設備”(Appliance),用戶拿到ODA后只需配置幾個主要參數,等待約2小時初始化完成,即可投入使用,擺明是要搶硬件廠商和系統集成商的飯碗。
用來與ODA對比的“傳統架構”也是Oracle數據庫的解決方案,更具可比性的同時,也體現出沒把微軟SQL Server放在眼里。Oracle并不諱言,ODA會搶系統集成商的飯碗——“只要對用戶有利”
從軟件的層面看,有足夠經驗的系統集成商要做到類似于ODA的效果并不難。有豐富Oracle數據庫和Linux經驗的人相對好找,ASM也可以用其他的卷管理和文件系統(如Symantec的VxVM和VxFS)等專業存儲軟件替換,還能獲得更高的存儲空間利用率(相對ASM的三重鏡像而言)。如果再具備一定的開發能力,要做到把軟件預配置好,幾個小時完成初始化,也不是不可能的事。
問題是要做到如ODA一般的快速部署,僅僅軟件集成還不夠,硬件也得預先集成。如果用標準的x86服務器,至少需要2臺,到了客戶現場還要連線、配置冗余網絡,技術難度并不高,但是很麻煩。像Sun Fire X4370 M2這樣一個機箱里集成了2個服務器節點和冗余網絡連接,且擁有很多驅動器槽位(計算、網絡、存儲)的服務器,不是隨便可以買到的(Supermicro的類似產品未必合用)。就算Oracle肯賣,又怎么跟它競爭?
硬件上的問題,Dell這樣的服務器大廠可以搞定,也有足夠的整合能力,解決Oracle數據庫最佳實踐的軟件經驗問題。可是,把Oracle數據庫做成一體機,然后與Oracle的數據庫機競爭,恐怕只會比系統集成商的處境更尷尬。
可行的途徑,是和微軟合作,推出SQL Server的一體機。上一段舉例沒有HP(IBM有自己的DB2和Power,策略也不同,超出本文討論范圍),正是因為HP采用了與微軟合作的策略。
Exadata的第一代產品,硬件就來自于HP。Oracle選擇HP作為合作伙伴,不是沒有緣由的。HP在x86服務器上的積累,非Sun可比,特別是系統管理能力,Dell也有一定差距。第二代Exadata的硬件換成Sun,原因不需要說。被拋棄的HP,既有做一體機的意愿,又積累了不少經驗,是微軟理想的合作伙伴。
大約一年前,HP發布了一系列的AppSystems,包括4款為微軟SQL Server 2008 R2優化的“Appliance”,分別面向不同的用途(業務決策、企業數據倉庫、業務數據倉庫、數據庫整合)。當時ODA尚未問世,但Exadata已經確立了兼具OLTP和數據倉庫能力,支持混合工作負載,支持數據庫整合,主要以規模劃分的路線。雙方的硬件平臺也有一定區別,各自基于不同的考慮,這里不做評論。
在微軟SQL Server 2012合作解決方案的頁面里,HP能提供的一體機仍然基于上一代的SQL Server 2008 R2
SQL Server的市場地位低于Oracle數據庫,如果只選一家硬件合作伙伴,那么在一體機市場上,很難與Oracle的數據庫機(Exadata/ODA)組合相抗衡。因此,除了HP,微軟還要積極開發其他的合作伙伴——譬如Dell。現在Dell已經公布了建立在其新一代PowerEdge服務器(基于英特爾至強E5-2600系列CPU)之上,名為“SQL Server 2012 Fast Track”的參考架構,但還很不夠。要對Oracle的數據庫機構成實質性的威脅,羞答答的“參考架構”或“最佳實踐”是不給力的,微軟的步子必須邁得更大些,不要怕扯……(據說Dell的SQL Server 2012一體機會在下半年推出,HP也該及時更新吧)
甲骨文CEO拉里·埃里森(Larry Ellison)與蘋果大神喬布斯(Steve Jobs)有著很好的私交,雙方都認同軟硬件一體化的集成設計思路。蘋果已經取得了成功,Oracle正在路上。如果說Oracle是數據庫一體機市場上的蘋果,那SQL Server能否成為Android?
有了箍桶的手藝,木板自給自足,還是兩家合作……最終仍然要看,誰做出來的木桶,更符合客戶的需求吧?
總結
以上是生活随笔為你收集整理的从ODA看一体机的木桶理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去IOE:去掉“IE”就Ok?
- 下一篇: 归档日志满导致ORA-13516错误,A