通常來講,主流的存儲類型可以分為塊存儲、文件存儲、對象存儲。當然今天主要講的是塊存儲。傳統(tǒng)SAN存儲是過去人們經(jīng)常在討論的一種集中式塊存儲,其交付給客戶的時候通常是以一種雙控架構(gòu)的形式出現(xiàn),可理解為背板專有硬件集成了兩個控制節(jié)點,緊密耦合在一起,這使得在業(yè)務(wù)部署的時候會以“成對”的形式出現(xiàn),并且一對雙控和另一對雙控之間要互相通信,對網(wǎng)絡(luò)環(huán)境有著較高要求,企業(yè)不同業(yè)務(wù)部門的存儲系統(tǒng)難以發(fā)揮協(xié)同作用。
傳統(tǒng)的集中式塊存儲計算能力還是主要由控制器提供,所以計算力是受限的。打個比喻,傳統(tǒng)的綠皮火車,只有一個火車頭在跑,加容量只是不停的在后面一節(jié)一節(jié)的掛火車皮,它的性能無法得到線性的增長,可能你掛的越多,最后平均下來整個系統(tǒng)運行的效率越慢。
此外,其需要專有的硬件設(shè)計以及專業(yè)的硬件架構(gòu),這也造成了其本身擁有的硬件成本明顯高于x86服務(wù)器,運維起來也比較復(fù)雜。一般這種存儲出問題的話,基本上需要專業(yè)廠商派專業(yè)的服務(wù)人員來解決。由此可以看到,傳統(tǒng)的存儲如果想適應(yīng)云時代的需求,面臨著比較明顯的局限。
想讓存儲滿足云時代的要求,要滿足哪些特點?首先,要基于標準x86硬件、軟件/硬件冗余設(shè)計,整體架構(gòu)高可用,存儲是數(shù)據(jù)的一個終點,要通過計算、網(wǎng)絡(luò)最終把數(shù)據(jù)保存在存儲上。其次,根據(jù)業(yè)務(wù)架構(gòu)與規(guī)模進行存儲架構(gòu)的調(diào)整。存儲能夠根據(jù)業(yè)務(wù)架構(gòu)的調(diào)整、業(yè)務(wù)規(guī)模的變化相應(yīng)的做靈活的調(diào)整。
再有,容量和性能擁有完整的Scale Out能力,讓性能和容量可以隨著節(jié)點線性增長。同時,開放的API、支持與業(yè)務(wù)耦合。需要做到軟件定義,需要提供開放的API,可以為不同的業(yè)務(wù)做耦合,不需要綁得那么緊。此外,統(tǒng)一管理、統(tǒng)一運維。在管理和運維方面,一定盡量簡化運維人員參與的復(fù)雜度,降低運維成本,盡量讓存儲系統(tǒng)自己去運維。
對于企業(yè)的核心業(yè)務(wù)系統(tǒng)來講,數(shù)據(jù)庫算是典型的應(yīng)用場景之一,這里面包括了傳統(tǒng)的業(yè)務(wù)系統(tǒng),比如Oracle、SQL Server、SAP,大部分的金融行業(yè)客戶或者傳統(tǒng)企業(yè)一定會用這種數(shù)據(jù)庫,當然也有一些面向分布式的解決方案,比如基于MySQL的分布式數(shù)據(jù)庫,MySQL是目前比較流行的或者大多數(shù)客戶在新業(yè)務(wù)系統(tǒng)部署時候使用的開源數(shù)據(jù)庫。
舉個例子,某家保險巨頭需要的存儲系統(tǒng)要具備足夠的穩(wěn)定性、足夠的性能,才放心讓它支撐核心業(yè)務(wù)系統(tǒng)。核心業(yè)務(wù)系統(tǒng)里面數(shù)據(jù)庫是最關(guān)鍵的,比如最常見的Oracle數(shù)據(jù)庫,傳統(tǒng)企業(yè)用什么跑Oracle?基本上都是國外廠商的品牌,比如EMC、IBM或者Oracle一體機來跑Oracle數(shù)據(jù)庫。
為什么數(shù)據(jù)庫非常關(guān)鍵呢?比如說這個保險客戶,所有的保單,客戶支付的保費、賠付的金額,都要放在這個數(shù)據(jù)庫里面。如果這個數(shù)據(jù)庫出現(xiàn)任何問題,哪怕丟一筆數(shù)據(jù),如果這個客戶要做理賠,服務(wù)商不清楚他到底繳了多少錢、需要賠付他多少錢,這個產(chǎn)生的問題就非常大了。銀行更是一樣,存一筆錢進去之后,這個數(shù)據(jù)丟了,對銀行和客戶都有很嚴重的影響。另外一個層面來講,新的業(yè)務(wù)系統(tǒng)要能夠基于當前較為流行的Serverless、服務(wù)網(wǎng)格、容器K8S,可以將新的業(yè)務(wù)系統(tǒng)采用最新的架構(gòu)來做承載和部署。
如果剖析一些新的分布式存儲架構(gòu)的網(wǎng)絡(luò)拓撲,可以看到前端的業(yè)務(wù)集群沒有任何變更,數(shù)據(jù)庫的服務(wù)集群,比如說三節(jié)點的Oracle RAC系統(tǒng),也沒有太大的變化。變化在哪?在整個萬兆網(wǎng)絡(luò)和存儲服務(wù)集群。傳統(tǒng)業(yè)務(wù)里,存儲是基于FC的存儲,網(wǎng)絡(luò)是兩套網(wǎng)絡(luò),一套網(wǎng)絡(luò)是基于業(yè)務(wù)的傳統(tǒng)萬兆以太網(wǎng)絡(luò)或者千兆以太網(wǎng)絡(luò);另一套網(wǎng)絡(luò)是專門跑存儲的FC網(wǎng)絡(luò)。
當做了存儲技術(shù)架構(gòu)的變更之后,從網(wǎng)絡(luò)層面來看就是統(tǒng)一架構(gòu)了,基于一套萬兆的以太網(wǎng)絡(luò)來實現(xiàn)的。存儲的網(wǎng)絡(luò)和業(yè)務(wù)的網(wǎng)絡(luò)整合,對運維來說復(fù)雜度降低了,因為它是同一套架構(gòu)。此外,在存儲服務(wù)集群上可以看到網(wǎng)絡(luò)拓撲相對比較復(fù)雜,因為一個節(jié)點上面有四根網(wǎng)線來做業(yè)務(wù)的傳輸和網(wǎng)絡(luò)的傳輸,不過網(wǎng)絡(luò)的流量是可以做平均分配的,因為其沒有一個統(tǒng)一的入口,不像傳統(tǒng)的集中式存儲,而是有兩個存儲網(wǎng)關(guān),所有的流量都要通過存儲網(wǎng)關(guān)與后端存儲來做通信。
分布式存儲的網(wǎng)絡(luò)流量、業(yè)務(wù)流量是均勻分布到所有存儲節(jié)點的,會將網(wǎng)絡(luò)流量和網(wǎng)絡(luò)壓力做了平均分配,可以實現(xiàn)對業(yè)務(wù)流量的分擔,具備很大的容量擴展和網(wǎng)絡(luò)并發(fā)能力的。可以說,是一個比較典型的傳統(tǒng)金融行業(yè)客戶對存儲和數(shù)據(jù)庫的使用架構(gòu)。
結(jié)語
總體來說,高性能、高可用、快速交付、業(yè)務(wù)連續(xù)性、工作負載管理是云時代分布式存儲需要具備的五個特性,而只有這樣才能滿足對企業(yè)核心業(yè)務(wù)系統(tǒng)的支持需求。