分布式存儲(chǔ) vs 傳統(tǒng)SAN、NAS 的優(yōu)缺點(diǎn)分析

twt社區(qū)
分布式存儲(chǔ)往往采用分布式的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息。它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展,將通用硬件引入的不穩(wěn)定因素降到最低。

傳統(tǒng)存儲(chǔ)架構(gòu)的局限性和分布式存儲(chǔ)的優(yōu)點(diǎn)

傳統(tǒng)SAN存儲(chǔ)設(shè)備一般采用雙控制器架構(gòu),兩者互為備份,配置兩臺(tái)交換機(jī)與前端的服務(wù)器進(jìn)行連接,這種雙控制器架構(gòu)方式會(huì)有以下兩個(gè)方面的缺點(diǎn):

1. 網(wǎng)絡(luò)帶寬容易變成整個(gè)存儲(chǔ)性能的瓶頸;

2. 如果一個(gè)控制器損壞,系統(tǒng)的性能將大幅下降,影響存儲(chǔ)的正常使用。

傳統(tǒng)存儲(chǔ)架構(gòu)的局限性主要體現(xiàn)在以下幾個(gè)方面:

1、橫向擴(kuò)展性較差

受限于前端控制器的對(duì)外服務(wù)能力,縱向擴(kuò)展磁盤數(shù)量無(wú)法有效提升存儲(chǔ)設(shè)備對(duì)外提供服務(wù)的能力。同時(shí),前端控制器橫向擴(kuò)展能力非常有限,業(yè)界最多僅能實(shí)現(xiàn)幾個(gè)控制器的橫向。因此,前端控制器成為整個(gè)存儲(chǔ)性能的瓶頸。

2、不同廠家傳統(tǒng)存儲(chǔ)之間的差異性帶來的管理問題

不同廠商設(shè)備的管理和使用方式各有不同,由于軟硬件緊耦合、管理接口不統(tǒng)一等限制因素?zé)o法做到資源的統(tǒng)一管理和彈性調(diào)度,也會(huì)帶來存儲(chǔ)利用率較低的現(xiàn)象。因此,不同存儲(chǔ)的存在影響了存儲(chǔ)使用的便利性和利用率。

分布式存儲(chǔ)往往采用分布式的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息。它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展,將通用硬件引入的不穩(wěn)定因素降到最低。優(yōu)點(diǎn)如下:

1.高性能

一個(gè)具有高性能的分布式存戶通常能夠高效地管理讀緩存和寫緩存,并且支持自動(dòng)的分級(jí)存儲(chǔ)。分布式存儲(chǔ)通過將熱點(diǎn)區(qū)域內(nèi)數(shù)據(jù)映射到高速存儲(chǔ)中,來提高系統(tǒng)響應(yīng)速度;一旦這些區(qū)域不再是熱點(diǎn),那么存儲(chǔ)系統(tǒng)會(huì)將它們移出高速存儲(chǔ)。而寫緩存技術(shù)則可使配合高速存儲(chǔ)來明顯改變整體存儲(chǔ)的性能,按照一定的策略,先將數(shù)據(jù)寫入高速存儲(chǔ),再在適當(dāng)?shù)臅r(shí)間進(jìn)行同步落盤。

2.彈性擴(kuò)展

得益于合理的分布式架構(gòu),分布式存儲(chǔ)可預(yù)估并且彈性擴(kuò)展計(jì)算、存儲(chǔ)容量和性能。分布式存儲(chǔ)的水平擴(kuò)展有以下幾個(gè)特性:

1) 節(jié)點(diǎn)擴(kuò)展后,舊數(shù)據(jù)會(huì)自動(dòng)遷移到新節(jié)點(diǎn),實(shí)現(xiàn)負(fù)載均衡,避免單點(diǎn)過熱的情況出現(xiàn);

2) 水平擴(kuò)展只需要將新節(jié)點(diǎn)和原有集群連接到同一網(wǎng)絡(luò),整個(gè)過程不會(huì)對(duì)業(yè)務(wù)造成影響;

3) 當(dāng)節(jié)點(diǎn)被添加到集群,集群系統(tǒng)的整體容量和性能也隨之線性擴(kuò)展,此后新節(jié)點(diǎn)的資源就會(huì)被管理平臺(tái)接管,被用于分配或者回收。

3.支持分級(jí)存儲(chǔ)

由于通過網(wǎng)絡(luò)進(jìn)行松耦合鏈接,分布式存儲(chǔ)允許高速存儲(chǔ)和低速存儲(chǔ)分開部署,或者任意比例混布。在不可預(yù)測(cè)的業(yè)務(wù)環(huán)境或者敏捷應(yīng)用情況下,分層存儲(chǔ)的優(yōu)勢(shì)可以發(fā)揮到最佳。解決了目前緩存分層存儲(chǔ)最大的問題是當(dāng)性能池讀不命中后,從冷池提取數(shù)據(jù)的粒度太大,導(dǎo)致延遲高,從而給造成整體的性能的抖動(dòng)的問題。

4.多副本的一致性

與傳統(tǒng)的存儲(chǔ)架構(gòu)使用RAID模式來保證數(shù)據(jù)的可靠性不同,分布式存儲(chǔ)采用了多副本備份機(jī)制。在存儲(chǔ)數(shù)據(jù)之前,分布式存儲(chǔ)對(duì)數(shù)據(jù)進(jìn)行了分片,分片后的數(shù)據(jù)按照一定的規(guī)則保存在集群節(jié)點(diǎn)上。為了保證多個(gè)數(shù)據(jù)副本之間的一致性,分布式存儲(chǔ)通常采用的是一個(gè)副本寫入,多個(gè)副本讀取的強(qiáng)一致性技術(shù),使用鏡像、條帶、分布式校驗(yàn)等方式滿足租戶對(duì)于可靠性不同的需求。在讀取數(shù)據(jù)失敗的時(shí)候,系統(tǒng)可以通過從其他副本讀取數(shù)據(jù),重新寫入該副本進(jìn)行恢復(fù),從而保證副本的總數(shù)固定;當(dāng)數(shù)據(jù)長(zhǎng)時(shí)間處于不一致狀態(tài)時(shí),系統(tǒng)會(huì)自動(dòng)數(shù)據(jù)重建恢復(fù),同時(shí)租戶可設(shè)定數(shù)據(jù)恢復(fù)的帶寬規(guī)則,最小化對(duì)業(yè)務(wù)的影響。

5.容災(zāi)與備份

在分布式存儲(chǔ)的容災(zāi)中,一個(gè)重要的手段就是多時(shí)間點(diǎn)快照技術(shù),使得用戶生產(chǎn)系統(tǒng)能夠?qū)崿F(xiàn)一定時(shí)間間隔下的各版本數(shù)據(jù)的保存。特別值得一提的是,多時(shí)間點(diǎn)快照技術(shù)支持同時(shí)提取多個(gè)時(shí)間點(diǎn)樣本同時(shí)恢復(fù),這對(duì)于很多邏輯錯(cuò)誤的災(zāi)難定位十分有用,如果用戶有多臺(tái)服務(wù)器或虛擬機(jī)可以用作系統(tǒng)恢復(fù),通過比照和分析,可以快速找到哪個(gè)時(shí)間點(diǎn)才是需要回復(fù)的時(shí)間點(diǎn),降低了故障定位的難度,縮短了定位時(shí)間。這個(gè)功能還非常有利于進(jìn)行故障重現(xiàn),從而進(jìn)行分析和研究,避免災(zāi)難在未來再次發(fā)生。多副本技術(shù),數(shù)據(jù)條帶化放置,多時(shí)間點(diǎn)快照和周期增量復(fù)制等技術(shù)為分布式存儲(chǔ)的高可靠性提供了保障。

6.存儲(chǔ)系統(tǒng)標(biāo)準(zhǔn)化

隨著分布式存儲(chǔ)的發(fā)展,存儲(chǔ)行業(yè)的標(biāo)準(zhǔn)化進(jìn)程也不斷推進(jìn),分布式存儲(chǔ)優(yōu)先采用行業(yè)標(biāo)準(zhǔn)接口進(jìn)行存儲(chǔ)接入。在平臺(tái)層面,通過將異構(gòu)存儲(chǔ)資源進(jìn)行抽象化,將傳統(tǒng)的存儲(chǔ)設(shè)備級(jí)的操作封裝成面向存儲(chǔ)資源的操作,從而簡(jiǎn)化異構(gòu)存儲(chǔ)基礎(chǔ)架構(gòu)的操作,以實(shí)現(xiàn)存儲(chǔ)資源的集中管理,并能夠自動(dòng)執(zhí)行創(chuàng)建、變更、回收等整個(gè)存儲(chǔ)生命周期流程?;诋悩?gòu)存儲(chǔ)整合的功能,用戶可以實(shí)現(xiàn)跨不同品牌、介質(zhì)地實(shí)現(xiàn)容災(zāi),如用中低端陣列為高端陣列容災(zāi),用不同磁盤陣列為閃存陣列容災(zāi)等等,從側(cè)面降低了存儲(chǔ)采購(gòu)和管理成本。(觀點(diǎn)來自@baimmi 某金融集團(tuán) 架構(gòu)師)

分布式存儲(chǔ)與傳統(tǒng)的SAN、NAS相比的優(yōu)勢(shì)和缺點(diǎn)

分布式存儲(chǔ)與傳統(tǒng)的SAN、NAS相比,優(yōu)勢(shì)如下:

1、性能:在分布式存儲(chǔ)達(dá)到一定規(guī)模是,性能會(huì)超過傳統(tǒng)的SAN、NAS。大量磁盤和節(jié)點(diǎn),結(jié)合適當(dāng)?shù)臄?shù)據(jù)分布策略,可以達(dá)到非常高的聚合帶寬。傳統(tǒng)的SAN、NAS都會(huì)有性能瓶頸,一旦達(dá)到最大擴(kuò)展能力,性能不會(huì)改變甚至降低。

2、價(jià)格:傳統(tǒng)的SAN、NAS,價(jià)格比較高。特別是SAN網(wǎng)絡(luò)設(shè)備,光纖網(wǎng)絡(luò)成本比較高。而且,以后擴(kuò)展還需要增加擴(kuò)展柜。成本太高。分布式存儲(chǔ)只需要IP網(wǎng)絡(luò),幾臺(tái)X86服務(wù)器加內(nèi)置硬盤就可以組建起來,初期成本比較低。擴(kuò)展也非常方便,加服務(wù)器就行。

3、可持續(xù)性:傳統(tǒng)的SAN、NAS擴(kuò)展能力受限,一個(gè)機(jī)頭最多可以帶幾百個(gè)磁盤。如果想要個(gè)PB以上的共享存儲(chǔ),分布式存儲(chǔ)只最好的選擇。不用擔(dān)心擴(kuò)展能力問題。

缺點(diǎn):

1、需要比較強(qiáng)的技術(shù)能力和運(yùn)維能力,甚至有開發(fā)能力的用戶。傳統(tǒng)存儲(chǔ)開箱即用,硬件由廠家提供,也有完善的文檔和服務(wù)。而分布式很多是開源或者是有公司基于開源系統(tǒng)提供支持服務(wù),版本迭代比較快,出問題后有可能需要自己解決。

2、數(shù)據(jù)一致性問題。對(duì)于Oracle RAC這一類對(duì)數(shù)據(jù)一致性要求比較高的應(yīng)用場(chǎng)景,分布式存儲(chǔ)的性能可能就稍弱了,因?yàn)榉植际降慕Y(jié)構(gòu),數(shù)據(jù)同步是一個(gè)大問題,雖然現(xiàn)在技術(shù)一直在進(jìn)步,但是也不如傳統(tǒng)存儲(chǔ)設(shè)備數(shù)據(jù)存儲(chǔ)方式可靠。

3、穩(wěn)定性問題。分布式存儲(chǔ)非常依賴網(wǎng)絡(luò)環(huán)境和帶寬,如果網(wǎng)絡(luò)發(fā)生抖動(dòng)或者故障,都可能會(huì)影響分布式存儲(chǔ)系統(tǒng)運(yùn)行。例如,一旦發(fā)生IP沖突,那么整體分布式存儲(chǔ)可能都無(wú)法訪問。傳統(tǒng)存儲(chǔ)一般使用專用SAN或IP網(wǎng)絡(luò),穩(wěn)定性方面,更可靠一些。(觀點(diǎn)來自@劉東 某軟件集團(tuán) 咨詢顧問)

關(guān)聯(lián)閱讀:

分布式存儲(chǔ)如何保證數(shù)據(jù)一致性?

從服務(wù)端角度,如何盡快將更新后的數(shù)據(jù)分布到整個(gè)系統(tǒng),降低達(dá)到最終一致性的時(shí)間窗口,是提高系統(tǒng)的可用度和用戶體驗(yàn)非常重要的方面。對(duì)于分布式存儲(chǔ)系統(tǒng):

N — 數(shù)據(jù)復(fù)制的份數(shù)

W — 更新數(shù)據(jù)是需要保證寫完成的節(jié)點(diǎn)數(shù)

R — 讀取數(shù)據(jù)的時(shí)候需要讀取的節(jié)點(diǎn)數(shù)

如果W+R>N,寫的節(jié)點(diǎn)和讀的節(jié)點(diǎn)重疊,則是強(qiáng)一致性。例如對(duì)于典型的一主一備同步復(fù)制的分布式存儲(chǔ)系統(tǒng),N=2,W=2,R=1,則不管讀的是主副本還是從副本的數(shù)據(jù),都是一致的。

如果W+R<=N,則是弱一致性。例如對(duì)于一主一備異步復(fù)制的分布式存儲(chǔ),N=2,W=1,R=1,則如果讀的是從副本,就可能無(wú)法讀取主副本已經(jīng)更新過的數(shù)據(jù),從而讀到了臟數(shù)據(jù)所以是弱一致性。

對(duì)于分布存儲(chǔ)式系統(tǒng),為了保證高可用性,一般設(shè)置N>=3,且強(qiáng)制在主副本讀取,也是通常說的分布式存儲(chǔ)系統(tǒng)使用強(qiáng)一致性原則。(@baimmi )

分布式存儲(chǔ)的文件存儲(chǔ)和對(duì)象存儲(chǔ)有哪些區(qū)別?

文件存儲(chǔ)與對(duì)象存儲(chǔ)區(qū)別主要可從三方面來進(jìn)行比較:

1、展現(xiàn)模式:

文件存儲(chǔ):以盤符 / 目錄的形式展現(xiàn),優(yōu)點(diǎn)是符合用戶現(xiàn)有使用習(xí)慣,用戶可以像使用本地硬盤一樣使用存儲(chǔ)系統(tǒng),缺點(diǎn)是無(wú)法定制化存儲(chǔ)元數(shù)據(jù)信息,對(duì)業(yè)務(wù)系統(tǒng)無(wú)優(yōu)化;

對(duì)象存儲(chǔ):與應(yīng)用系統(tǒng)相結(jié)合形式展現(xiàn),優(yōu)點(diǎn)是可按需調(diào)用存儲(chǔ)接口,并為文件設(shè)置元數(shù)據(jù)以及標(biāo)簽屬性,可滿足業(yè)務(wù)系統(tǒng)定制化需求,缺點(diǎn)是需要業(yè)務(wù)系統(tǒng)直接調(diào)用存儲(chǔ),用戶無(wú)法直接調(diào)用系統(tǒng)內(nèi)數(shù)據(jù)。

2、訪問協(xié)議

文件存儲(chǔ):NFS/CIFS 協(xié)議訪問,優(yōu)點(diǎn)是鎖機(jī)制可支持多人同時(shí)對(duì)數(shù)據(jù)進(jìn)行修改(鎖機(jī)制由應(yīng)用系統(tǒng)決定 , 缺點(diǎn)是為保證數(shù)據(jù)訪問一致性,需要進(jìn)行數(shù)據(jù)索引信息同步,對(duì)系統(tǒng)并發(fā)性能以及系統(tǒng)規(guī)模存在較大影響。

對(duì)象存儲(chǔ):HTTP 傳輸協(xié)議以及 RESTful 接口訪問,優(yōu)點(diǎn)是通過算法存放文件元數(shù)據(jù)信息,無(wú)元數(shù)據(jù)同步限制,系統(tǒng)可無(wú)限制擴(kuò)展,且性能隨著存儲(chǔ)系統(tǒng)規(guī)模擴(kuò)展而線性提升,缺點(diǎn)是采用 RESTful 接口 Put 、 Get 、 Delete ,不支持多人同時(shí)對(duì)同一文件修改。

3、數(shù)據(jù)結(jié)構(gòu)

文件存儲(chǔ):采用樹形目錄結(jié)構(gòu),讀取和存儲(chǔ)數(shù)據(jù)要經(jīng)過更長(zhǎng)路徑才能到達(dá)目標(biāo)位置。隨著數(shù)據(jù)越來越多,目錄結(jié)構(gòu)會(huì)越來越繁雜,查找以及調(diào)取文件的速度會(huì)越來越慢(操作系統(tǒng)對(duì)目錄字節(jié)數(shù)存在限制); 如若出現(xiàn)設(shè)備損壞或者擴(kuò)容時(shí),需要將巨型目錄樹中的數(shù)據(jù)重新分配均衡,效率較差。

對(duì)象存儲(chǔ):采用扁平目錄結(jié)構(gòu),拋棄了嵌套的文件夾,避免維護(hù)龐大的目錄樹,只保留二級(jí)(或三級(jí))目錄結(jié)構(gòu)。根下直接就是桶 桶中直接存放對(duì)象,桶中不能再建桶(禁止多層文件夾)。 每個(gè)對(duì)象文件都只需要一個(gè) ID 就能獲取對(duì)象。

適用場(chǎng)景總結(jié):

文件存儲(chǔ):數(shù)百 TB-PB 級(jí)數(shù)據(jù)并行計(jì)算類應(yīng)用;億級(jí)別以內(nèi)小文件存儲(chǔ)類應(yīng)用;需要在線修改數(shù)據(jù)類應(yīng)用系統(tǒng),如:非編系統(tǒng)。

對(duì)象存儲(chǔ):PB- 數(shù)百 PB 級(jí)數(shù)據(jù)存儲(chǔ)存儲(chǔ)類應(yīng)用;千億級(jí)海量小文件數(shù)據(jù)存儲(chǔ)以及海量并發(fā)。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論