說起“云”這個概念,大家應(yīng)該都不陌生。近年來“云端存儲”逐漸滲透入大眾的工作環(huán)境與日常生活:不論是用于工作文件存儲和備份,還是個人資料的保存和分享,云端存儲都不失為一個方便又高效的方法。
但在十年前,云端存儲的發(fā)展尚不完善,很多人不看好其發(fā)展前景,連Vertica都在云端存儲與本地存儲的選擇中左右為難。
那么Vertica最終如何在數(shù)據(jù)存儲方式方面做出判斷?又圍繞云端存儲做了哪些技術(shù)調(diào)整?Vertica的首席設(shè)計師Chuck Bear的這篇文章能給你答案。
十多年來,Vertica致力于在企業(yè)內(nèi)部“無共享”的環(huán)境中,為企業(yè)提供業(yè)界領(lǐng)先的數(shù)據(jù)分析和查詢技術(shù)支持。由于一些出色(或幸運(yùn))的前期架構(gòu)決策,Vertica的Eon模式在公共云領(lǐng)域中的彈性隨需應(yīng)變數(shù)據(jù)庫市場上處于領(lǐng)先地位。
本文將回顧Vertica體系結(jié)構(gòu)的關(guān)鍵特征,并介紹Vertica正在進(jìn)行的將其企業(yè)模式部署選項和Eon模式部署選項聚合到一個系統(tǒng)中的工作。這個系統(tǒng)在云環(huán)境中將提供企業(yè)級性能,并在企業(yè)業(yè)務(wù)上提供云級別的靈活性。
發(fā)展歷程回顧——屢遭挫折
Vertica一直信仰純軟件的方法,而靈活的商用硬件配置對我們的客戶來說是更有價值的。盡管純軟件的方法增加了軟件的復(fù)雜性,并給我們的工作人員增加了很多需要診斷的許多環(huán)境問題,但這一決定使Vertica更適合于公共云環(huán)境。而在公共云環(huán)境中,存儲區(qū)域網(wǎng)絡(luò)(SANs)不可用,硬件設(shè)備也派不上用場。
在早期,Vertica的創(chuàng)始團(tuán)隊對共享存儲的看法非常悲觀。他們認(rèn)為這個項目要想得到支持,除非“踏過Mike Stonebraker(2015年圖靈獎得主、Vertica創(chuàng)始人)的尸體”。
這個論斷不是沒有理由的:在當(dāng)時,“共享存儲”指的就是SANs,它價格昂貴、配置難度大,而且可能存在性能問題。業(yè)務(wù)開展過程中,有時會遇到有客戶堅持使用共享存儲的情況,但結(jié)果往往是再次印證了存儲陣列存在問題的觀點(diǎn)。
當(dāng)時我們第一次在大型服務(wù)器供應(yīng)商的實(shí)驗(yàn)室中使用SANs,雖然得到了一些專家的支持,但是由于配置錯誤,所有數(shù)據(jù)都被分配到一個適配器,而沒有達(dá)到負(fù)載平衡的效果。還有,當(dāng)早期iSCSI供應(yīng)商之一將一個樣本陣列發(fā)送給我們進(jìn)行基準(zhǔn)測試時,我們的IT人員意外地將相同的LUNs映射到多臺計算機(jī)(沒有使用共享的文件系統(tǒng)),而它們開始迅速地互相攻擊對方的數(shù)據(jù)。這都是當(dāng)時開發(fā)共享存儲技術(shù)面臨的挑戰(zhàn)。
當(dāng)前技術(shù)發(fā)展——步入正軌
目前,公共云從根本上全面地改變了“共享存儲”的定義。公共云是一種簡化的對象存儲設(shè)計方案(而不是基于塊的數(shù)組),具有價格更低、更靈活的成本優(yōu)勢,在管理方面只需設(shè)置安全性措施,并確保在不再需要時對某些內(nèi)容執(zhí)行刪除就可以保證數(shù)據(jù)的安全。
值得慶幸的是,Vertica抓住了云端存儲發(fā)展的時機(jī),最終有效地利用了云存儲技術(shù)。
首先,Vertica選擇了一種存儲模型,在這種模型中,文件一旦寫入就不會更新,最終形成了一種對用戶查詢無阻礙的分析-優(yōu)化的模型。在云端工具中,“write-one, read-many”模型非常適合,因?yàn)镠DFS、S3都支持其訪問模式。而且,由于訪問本地存儲比訪問云端的共享存儲要快,這種無更新對象事務(wù)模型也允許相對無沖突的緩存。
這些試驗(yàn)結(jié)果形成了Vertica的Eon模式的基礎(chǔ),在這種模式下,計算和存儲可以分別進(jìn)行,并且該模式具有滿足客戶期望的MPP數(shù)據(jù)庫性能?;诖?,我們的云部署可以像原來的無共享MPP Vertica體系結(jié)構(gòu)一樣運(yùn)行著。
未來藍(lán)圖方向——分離計算與存儲
Vertica企業(yè)模式的用戶也很心儀很多目前只在Eon模式中可用的功能:例如無需添加更多計算節(jié)點(diǎn),即可添加存儲的功能;能提供更動態(tài)的方式來更改計算節(jié)點(diǎn)的配置的功能;以及可以啟動多個計算節(jié)點(diǎn)集群以查詢相同的數(shù)據(jù)集的功能。而在Eon模式下的云存儲中,仍有一些功能無法實(shí)現(xiàn),例如用于小型插入的寫優(yōu)化存儲(WOS),這是因?yàn)檫@個功能使用的是本地存儲而不是共享存儲。
針對以上兩種模式各自存在的問題,在未來的一系列技術(shù)更新中,Vertica計劃將Eon模式和企業(yè)模式融合在一起提供一致的體驗(yàn),并且Vertica節(jié)點(diǎn)將不需要始終保持?jǐn)?shù)據(jù)的副本。從目前進(jìn)展方面看,Vertica已經(jīng)完成在企業(yè)模式下支持多個存儲位置的更新。在走向融合發(fā)展的未來,這個統(tǒng)一的模式系統(tǒng)將根據(jù)模式、表或分區(qū)進(jìn)行選擇,并獲取多個共享存儲和本地存儲的地址。
總結(jié)與展望——宏大藍(lán)圖
Vertica基于長遠(yuǎn)目標(biāo)的設(shè)計使得產(chǎn)品已經(jīng)成功在企業(yè)內(nèi)部、公共云和私有云等各種場景部署。目前,我們正在努力將兩種Vertica模式(Eon模式和企業(yè)模式)聚合為一種模式,這種模式將列式MPP性能與所有平臺上的完全存儲靈活性相結(jié)合,能夠拓展一些功能的適用環(huán)境:例如添加存儲而不調(diào)整計算資源,或添加更多計算節(jié)點(diǎn)以擴(kuò)展分析查詢吞吐量等功能將在所有環(huán)境中可用。
計算和存儲的分離只是Vertica未來發(fā)展的支柱之一。不論是從性能和規(guī)模到改進(jìn)客戶端驅(qū)動程序,從機(jī)器學(xué)習(xí)功能到合作伙伴生態(tài)系統(tǒng),從查詢優(yōu)化到查詢執(zhí)行,從復(fù)雜數(shù)據(jù)類型支持到安全和數(shù)據(jù)保護(hù),我們都有長期計劃。