如今SDS領(lǐng)域玩家眾多,技術(shù)流派也很多,有開源的、有閉源的;有對(duì)稱結(jié)構(gòu)、有非對(duì)稱結(jié)構(gòu);有叫SDS的、也有叫HCI(Hyper-ConvergedInfrastructure)、還有叫ServerSAN、云存儲(chǔ)的,令人眼花繚亂、摸不清頭腦。
應(yīng)該說(shuō)SDS還處在發(fā)展的初期階段,相應(yīng)的技術(shù)和測(cè)試標(biāo)準(zhǔn)都還不完善,客戶對(duì)其技術(shù)了解的深度也不夠。兩大因素綜合起來(lái)造成客戶選擇SDS的時(shí)候會(huì)感覺無(wú)從下手。
三類SDS應(yīng)用場(chǎng)景的三大關(guān)鍵指標(biāo)
SDS按照提供的數(shù)據(jù)組織方式分為塊存儲(chǔ)、文件存儲(chǔ)和對(duì)象存儲(chǔ)三類。按照交付模式又分成獨(dú)立存儲(chǔ)形態(tài)和HCI形態(tài)(也就是把SDS、計(jì)算和網(wǎng)絡(luò)集成在一個(gè)系統(tǒng)里)兩種。本文僅以SDS的塊存儲(chǔ)類別為例,從企業(yè)用戶的角度如何選擇一款適合自己的SDS。
SDS塊存儲(chǔ)的主要應(yīng)用場(chǎng)景和傳統(tǒng)的SAN設(shè)備類似,主要應(yīng)用在需要提供裸磁盤(塊設(shè)備)的場(chǎng)景,例如:服務(wù)器虛擬化、桌面虛擬化、數(shù)據(jù)庫(kù)等。當(dāng)然SDS塊存儲(chǔ)提供出的塊設(shè)備也可以格式化成本地文件系統(tǒng),存放一些非結(jié)構(gòu)化數(shù)據(jù),但這不是主要應(yīng)用場(chǎng)景。
建議客戶選擇SDS的時(shí)候,首先需要問(wèn)一下自己兩個(gè)問(wèn)題:1、主要應(yīng)用場(chǎng)景是什么?2、最關(guān)注的前三位的技術(shù)指標(biāo)是什么?而且還要清楚SDS發(fā)展在什么階段(目前SDS還處在社會(huì)主義的初級(jí)階段),把預(yù)期和現(xiàn)實(shí)拉得近一些,有些過(guò)高的要求在這個(gè)階段SDS還不能提供。
關(guān)于SDS技術(shù)評(píng)價(jià)通常包括以下7個(gè)維度:可靠性、穩(wěn)定性、擴(kuò)展性、功能、性能、易用性、兼容性。
針對(duì)SDS塊存儲(chǔ)前三位技術(shù)指標(biāo)維度為:
三大應(yīng)用場(chǎng)景都把可靠性和穩(wěn)定性排在了前兩位,之所以這樣排列因?yàn)榇鎯?chǔ)是IT系統(tǒng)的基石。所謂的可靠性就是局部故障不會(huì)導(dǎo)致數(shù)據(jù)丟失和業(yè)務(wù)中斷,這一點(diǎn)理所應(yīng)當(dāng)排在第一位;穩(wěn)定性是指不會(huì)因?yàn)榫植抗收显斐尚阅艽蠓秳?dòng),給業(yè)務(wù)響應(yīng)造成影響,比如說(shuō)看個(gè)小電影中途老卡誰(shuí)受得了。
說(shuō)到這有人會(huì)問(wèn),這兩點(diǎn)對(duì)于傳統(tǒng)陣列是必須和默認(rèn)的要求?我想說(shuō),傳統(tǒng)陣列都是昂貴、專用的硬件堆起來(lái),發(fā)生硬件故障的概率很低,而SDS大都部署在廉價(jià)的標(biāo)準(zhǔn)x86服務(wù)器上,x86服務(wù)器發(fā)生硬件故障的概率要高很多;并且SDS都是分布式系統(tǒng),要管理幾十臺(tái)、乃至成千上萬(wàn)臺(tái)x86服務(wù)器上,這樣發(fā)生硬件故障的概率會(huì)呈數(shù)量級(jí)的上升。如何保證大規(guī)模分布式系統(tǒng)的可靠性和穩(wěn)定性也正是SDS首要解決的難點(diǎn)。
Amazon的S3系統(tǒng)由上百萬(wàn)臺(tái)服務(wù)器組成,每分鐘都會(huì)有很多設(shè)備下線和上線,能保證這樣大規(guī)模集群的可靠性和穩(wěn)定性,應(yīng)該沒幾個(gè)廠家有這樣的技術(shù)吧?
另外還別忘了,SDS還處在“社會(huì)主義初級(jí)階段”并不是拿出來(lái)一個(gè)廠家就能保證幾千臺(tái)服務(wù)器的SDS系統(tǒng)可靠和穩(wěn)定的。
VSI和VDI環(huán)境通常規(guī)模很大,而且規(guī)模增長(zhǎng)的速度也較快,所以把擴(kuò)展性放在了第三位。對(duì)于數(shù)據(jù)庫(kù)應(yīng)用,性能是毋容置疑非常重要的一個(gè)指標(biāo),所以排在了第三位。
眼見未必為實(shí),測(cè)試中的那些“貓膩”
終于想清楚我要的SDS長(zhǎng)什么樣了,忽然又想起一件大事“誰(shuí)家的產(chǎn)品能達(dá)到我的要求呢?”
一個(gè)最直接的辦法就是拿測(cè)試來(lái)說(shuō)吧(測(cè)試還是蠻麻煩的一件事,準(zhǔn)備測(cè)試環(huán)境、編寫測(cè)試規(guī)范、查看測(cè)試結(jié)果……)?;蛟S還有一個(gè)偷懶的辦法,就是“你們有和我的需求差不多的案例嗎?我去問(wèn)問(wèn)那家企業(yè)用的咋樣啊”,但耳聽為虛眼見為實(shí),聽一面之詞總是不踏實(shí)。
相比之下測(cè)試是一個(gè)較為讓人放心的辦法,但如果你不熟悉SDS的水,同樣有些坑你也發(fā)現(xiàn)不了,嘿嘿。
好了,下面這一段就是從測(cè)試和技術(shù)構(gòu)架角度幫助客戶判斷關(guān)鍵技術(shù)指標(biāo)優(yōu)劣。
1、B域、C域,1/3節(jié)點(diǎn)損壞和RTO為0
可靠性在SDS上主要體現(xiàn)在兩個(gè)方面,當(dāng)集群中磁盤或節(jié)點(diǎn)發(fā)生故障時(shí),數(shù)據(jù)會(huì)不會(huì)丟失?業(yè)務(wù)會(huì)不會(huì)中斷?中斷的時(shí)長(zhǎng)是多少?
這里有兩個(gè)指標(biāo)需要關(guān)注:1、容錯(cuò)度,2、故障恢復(fù)時(shí)間。
先說(shuō)一下容錯(cuò)度這個(gè)指標(biāo)。
因?yàn)橹髁鞯腟DS都采用副本技術(shù),以三副本為例,丟失1份數(shù)據(jù),應(yīng)該還有2份數(shù)據(jù)存在,數(shù)據(jù)不會(huì)丟,也就是容錯(cuò)度為1/3個(gè)節(jié)點(diǎn)。但如果超過(guò)1/3的節(jié)點(diǎn)同時(shí)down機(jī),集群還能工作嗎?這個(gè)不一定所有廠家都能做到。
很多SDS的容錯(cuò)域都是提前配置好的。以3副本9個(gè)節(jié)點(diǎn)為例,通常會(huì)配置3個(gè)容錯(cuò)域ABC、每個(gè)容錯(cuò)域各3個(gè)節(jié)點(diǎn),每個(gè)容錯(cuò)域保存獨(dú)立的副本數(shù)據(jù)。例如當(dāng)以一個(gè)容錯(cuò)域A的3臺(tái)機(jī)器都故障時(shí),還有兩2個(gè)副本存在,數(shù)據(jù)不會(huì)丟失,業(yè)務(wù)照常運(yùn)行,這就是通常所說(shuō)的能容忍1/3節(jié)點(diǎn)宕機(jī)。這樣的要求大多數(shù)廠家都能做到,但如果同時(shí)B域或者C域也有機(jī)器down機(jī)呢?這時(shí)候多半會(huì)出現(xiàn)兩副本都丟失情況,系統(tǒng)異常了。
故障恢復(fù)時(shí)間這個(gè)指標(biāo)也很關(guān)鍵。當(dāng)系統(tǒng)中發(fā)生節(jié)點(diǎn)宕機(jī),故障恢復(fù)的時(shí)間當(dāng)然越快越好了,最高的要求是故障恢復(fù)時(shí)間等于0。要實(shí)現(xiàn)這個(gè)指標(biāo)很不容易,因?yàn)楫?dāng)SDS系統(tǒng)中節(jié)點(diǎn)發(fā)生故障時(shí),要恢復(fù)這個(gè)故障,需要做很多事:第一步,發(fā)現(xiàn)這個(gè)故障;第二步,選出一個(gè)節(jié)點(diǎn)接替故障節(jié)點(diǎn),并進(jìn)行數(shù)據(jù)重構(gòu);第三步,重新刷新尋址空間,讓客戶機(jī)能獲取數(shù)據(jù)位置的變化。每一步都需要時(shí)間花費(fèi),特別對(duì)大規(guī)模集群來(lái)講,想把故障恢復(fù)時(shí)間控制得很小更是難上加難。宣稱故障恢復(fù)時(shí)間為零的SDS廠家并不多。
所以故障恢復(fù)時(shí)間的數(shù)量級(jí)是衡量一個(gè)SDS可靠性等級(jí)的一個(gè)非常重要的因子。用戶可以根據(jù)前端業(yè)務(wù)對(duì)故障恢復(fù)時(shí)間的敏感程度,設(shè)立相應(yīng)的要求標(biāo)準(zhǔn)。
2、Ceph性能抖動(dòng)的問(wèn)題
對(duì)于SDS來(lái)講,它的穩(wěn)定性主要關(guān)注點(diǎn)在:當(dāng)系統(tǒng)發(fā)生磁盤/節(jié)點(diǎn)故障,恢復(fù)數(shù)據(jù)而產(chǎn)生數(shù)據(jù)遷移時(shí),前端的性能表現(xiàn)是否穩(wěn)定。
在前面可靠性段落中談到了,SDS故障恢復(fù)有三個(gè)步驟,每一步處理不好都會(huì)影響性能表現(xiàn)。特別是數(shù)據(jù)重構(gòu)和重新尋址這兩個(gè)環(huán)節(jié),會(huì)對(duì)性能穩(wěn)定性造成很大的影響。
例如著名的開源產(chǎn)品Ceph,不止一個(gè)客戶反映當(dāng)系統(tǒng)中出現(xiàn)節(jié)點(diǎn)宕機(jī)的情況下,性能下降和波動(dòng)很厲害,對(duì)業(yè)務(wù)影響很大。只所以出現(xiàn)這個(gè)問(wèn)題首先是和它元數(shù)據(jù)管理和尋址的方式(Crush算法)有關(guān),即在節(jié)點(diǎn)動(dòng)蕩時(shí),元數(shù)據(jù)(其實(shí)是ceph內(nèi)部保存的資源列表)發(fā)生變化,從而導(dǎo)致數(shù)據(jù)的地址發(fā)生變化,最終導(dǎo)致大量的沒有必要的數(shù)據(jù)遷移,規(guī)模越大,這個(gè)問(wèn)題暴露的越明顯。其次是它數(shù)據(jù)遷移采用整盤拷貝的方式,會(huì)有無(wú)效遷移導(dǎo)致的網(wǎng)絡(luò)帶寬的擁擠。
還有一個(gè)坑透露一下,有些SDS系統(tǒng)在拔盤或者宕節(jié)點(diǎn)時(shí),可以不發(fā)生數(shù)據(jù)重構(gòu),當(dāng)磁盤或者節(jié)點(diǎn)重新上線或歸位時(shí)才重構(gòu)。因此,穩(wěn)定性測(cè)試時(shí)最好觀察一下,磁盤或者節(jié)點(diǎn)歸位后的表現(xiàn)。甚至建議,用頻繁的節(jié)點(diǎn)上/下線來(lái)測(cè)試它的穩(wěn)定性,因?yàn)楣?jié)點(diǎn)抖動(dòng)還是會(huì)時(shí)常發(fā)生的。
3、VSAN的局限
擴(kuò)展性很難測(cè)試,因?yàn)槟阋獪?zhǔn)備幾百臺(tái)、上千臺(tái)的服務(wù)器環(huán)境是不可能,除非你是土豪,那怎么辦?沒辦法,看構(gòu)架吧。市場(chǎng)上主流SDS分為有中央元數(shù)據(jù)管理節(jié)點(diǎn)的非對(duì)稱構(gòu)架和無(wú)中央管理節(jié)點(diǎn)的全對(duì)稱構(gòu)架兩大類,前者相比后者擴(kuò)展性受限。簡(jiǎn)單的理解就是“非對(duì)稱構(gòu)架”中好比有個(gè)指揮官,一個(gè)指揮官能管的人比較有限的?!叭珜?duì)稱構(gòu)架”中是沒有指揮官的,全憑自覺性,像是一大堆人在干活,一個(gè)病了,無(wú)需向領(lǐng)導(dǎo)請(qǐng)假,會(huì)有另外一個(gè)人立馬自動(dòng)接替他的工作。舉例證明:VSAN是有中央管理節(jié)點(diǎn)的,它官方宣稱的單集群支持最大節(jié)點(diǎn)數(shù)64個(gè);鵬云網(wǎng)絡(luò)的ZettaStor是無(wú)中央節(jié)點(diǎn)的,能支持萬(wàn)級(jí)的節(jié)點(diǎn)數(shù)量。因此從具體實(shí)例上也能看出,構(gòu)架決定了其擴(kuò)展能力。
4、SSD緩沖擊穿
目前閃存技術(shù)發(fā)展得很快,性能比傳統(tǒng)磁介質(zhì)硬盤高了幾個(gè)數(shù)量級(jí),正是因?yàn)殚W存技術(shù)的發(fā)展也給SDS造就了可以在性能上PK傳統(tǒng)陣列的基礎(chǔ)。
如果你很有錢的話完全可以用SSD做主存。但目前SSD價(jià)格還較貴,性價(jià)比較高的方式是用SSD做緩存,通常一個(gè)存儲(chǔ)節(jié)點(diǎn)上配個(gè)幾百GB-1TB的SSD做緩存。SSD緩存對(duì)性能的貢獻(xiàn)在小數(shù)據(jù)量時(shí)會(huì)表現(xiàn)的非常好,一旦數(shù)據(jù)量足夠大,SSD被穿透,那就實(shí)打?qū)嵉乜绰浔P(寫到硬盤持久化層)的性能表現(xiàn)了。如果你的系統(tǒng)數(shù)據(jù)量很小,SSD緩存的容量足夠你支持業(yè)務(wù)峰值,那可以多些關(guān)注SDS緩存加速的性能表現(xiàn)。如果你的系統(tǒng)數(shù)據(jù)量很大,那SSD會(huì)長(zhǎng)時(shí)間被穿透,那你就重點(diǎn)一下落盤的性能表現(xiàn)了。
目前SDS廠家在SSD緩存利用效率上,水平都差不太多,沒有太多很獨(dú)到的算法出現(xiàn)。倒是落盤這個(gè)環(huán)節(jié),因?yàn)檫x擇的技術(shù)路線不同,表現(xiàn)不一。有的就是差不多發(fā)揮原有磁盤的性能,甚至還低;有的利用一些IO算法,把普通磁盤的性能表現(xiàn)提升幾倍,像鵬云網(wǎng)絡(luò)的ZettaStor在落盤時(shí)采用了“變隨機(jī)為半順序”的IO優(yōu)化算法,把隨機(jī)IO裸盤的速度提升了3-5倍。鵬云網(wǎng)絡(luò)之所以能做這樣的IO優(yōu)化,因?yàn)閆ettaStor是完全自主開發(fā)的。采用開源方案的廠家要實(shí)現(xiàn)起來(lái)估計(jì)會(huì)很難,這是要?jiǎng)拥狡浜诵奈募到y(tǒng)層的。
有些廠家在性能測(cè)試時(shí)會(huì)用很小的卷、很小的數(shù)據(jù)去測(cè)試,看上去IOPS會(huì)很高,但真實(shí)環(huán)境不會(huì)是這么小的負(fù)載,所以一旦多創(chuàng)建些大卷,進(jìn)行長(zhǎng)時(shí)間大數(shù)據(jù)量的性能測(cè)試,SSD被寫穿透時(shí),性能立馬一落千丈,鳳凰變?yōu)蹼u了。
不記得那位大咖說(shuō)過(guò)一句話,“不談延遲的性能測(cè)試都是耍流氓”。
看一個(gè)系統(tǒng)的延遲小不小,一個(gè)是實(shí)測(cè),另外從構(gòu)架上也能看出些端倪。就是看一下它的IO路徑是否夠短。例如,直接寫裸磁盤的總比經(jīng)過(guò)文件系統(tǒng)層轉(zhuǎn)換再寫裸磁盤的IO路徑短很多吧,這就是為什么Ceph想降低延遲很難的原因所在。眾所周知,Ceph的塊存儲(chǔ)不是直接訪問(wèn)裸磁盤的,而是通過(guò)文件系統(tǒng)把裸磁盤轉(zhuǎn)換成塊設(shè)備給應(yīng)用的。
小結(jié)
看到了這些問(wèn)題,是不是讓你對(duì)SDS望而卻步了?如果這樣,你就把孩子、臟水一起潑掉了。
就像改革開放,陽(yáng)光和蒼蠅總會(huì)一起進(jìn)來(lái),良莠不齊,這是目前SDS市場(chǎng)的正常現(xiàn)象,鵬云網(wǎng)絡(luò)之所以把些傷疤揭開,是因?yàn)橄嘈?,真金不怕火煉!用戶可以不選擇鵬云網(wǎng)絡(luò),但一定要爭(zhēng)取選擇正確!這是寫作本文所期待的!
評(píng)論
查看更多