判斷超融合存儲(chǔ)優(yōu)劣的幾個(gè)原則初探(2)
在上一篇文章中,強(qiáng)調(diào)了區(qū)分系統(tǒng)存儲(chǔ)介質(zhì)訪問方式的重要性,接下來,需要考慮的問題就是IO請(qǐng)求所經(jīng)過的網(wǎng)絡(luò)路徑。
所謂IO請(qǐng)求路徑,通常包括幾個(gè)部分:接收外部(如虛擬機(jī)的)IO請(qǐng)求、尋址即將外部IO請(qǐng)求轉(zhuǎn)換為(ServerSAN)系統(tǒng)內(nèi)部請(qǐng)求、將內(nèi)部IO請(qǐng)求發(fā)至相應(yīng)的存儲(chǔ)節(jié)點(diǎn)以實(shí)現(xiàn)數(shù)據(jù)訪問。
在一個(gè)ServerSAN系統(tǒng)中,通常會(huì)由客戶端塊設(shè)備驅(qū)動(dòng)來負(fù)責(zé)接收外部IO請(qǐng)求,其處理方式亦尋址方式有多種:有些需要查詢?cè)獢?shù)據(jù)庫(Metadata Store,用于存放內(nèi)部數(shù)據(jù)塊的元數(shù)據(jù),包括數(shù)據(jù)塊在哪個(gè)存儲(chǔ)節(jié)點(diǎn)上的信息);有的則利用Consistent Hashing的方法,直接計(jì)算出IO請(qǐng)求對(duì)應(yīng)的內(nèi)部存儲(chǔ)地址,從而達(dá)到省略查詢?cè)獢?shù)據(jù)庫的目的。
此外,將內(nèi)部請(qǐng)求發(fā)送到存儲(chǔ)節(jié)點(diǎn)也有多種方式:以副本為3份的寫請(qǐng)求為例,有的是將數(shù)據(jù)依次寫入3個(gè)存儲(chǔ)節(jié)點(diǎn),如此就涉及3個(gè)網(wǎng)絡(luò)跳轉(zhuǎn);也有的是將數(shù)據(jù)先寫入主節(jié)點(diǎn)(Primary),再由主節(jié)點(diǎn)發(fā)給另外兩個(gè)從節(jié)點(diǎn),如此需要兩個(gè)網(wǎng)絡(luò)跳轉(zhuǎn)。另外一種方式是同時(shí)廣播給3個(gè)存儲(chǔ)節(jié)點(diǎn),如此只涉及一個(gè)網(wǎng)絡(luò)跳轉(zhuǎn)。
圖 1擁有最長(zhǎng)網(wǎng)絡(luò)路徑的系統(tǒng)
以Sheepdog Storage系統(tǒng)為例,一個(gè)IO請(qǐng)求需要通過QEMU block driver,Gateway,存儲(chǔ)節(jié)點(diǎn)3個(gè)網(wǎng)絡(luò)跳轉(zhuǎn),即網(wǎng)絡(luò)路徑為3。以Ceph為例,一個(gè)IO請(qǐng)求需要通過RBD(客戶端驅(qū)動(dòng)),主OSD(存儲(chǔ)節(jié)點(diǎn)),從OSD共3個(gè)網(wǎng)絡(luò)跳轉(zhuǎn),即網(wǎng)絡(luò)路徑為3。
圖 2擁有最短網(wǎng)絡(luò)路徑的系統(tǒng)
目前為止,我們見到的分布式存儲(chǔ)系統(tǒng)里***的I/O路徑為2:客戶端驅(qū)動(dòng)和存儲(chǔ)節(jié)點(diǎn);其中尋址功能被合并到客戶端驅(qū)動(dòng),并且尋址不需要查詢?cè)獢?shù)據(jù)庫??蛻舳蓑?qū)動(dòng)直接廣播到所有的存儲(chǔ)節(jié)點(diǎn)上。
同樣的,就像上篇文章提到,有沒有一個(gè)判斷ServerSAN系統(tǒng)I/O路徑的簡(jiǎn)單方法呢?
不幸地是,我們很難通過一個(gè)系統(tǒng)的外部表象來判斷這個(gè)系統(tǒng)的I/O路徑是多少,是否***?我也沒有想出一個(gè)簡(jiǎn)單的方法。但就像判斷直接和間接訪問裸設(shè)備一樣,判斷系統(tǒng)的I/O路徑對(duì)于判斷系統(tǒng)的水平也是非常重要的。
盡管沒有一個(gè)簡(jiǎn)單的方法,但在實(shí)際的選型過程中,I/O路徑應(yīng)該成為一個(gè)考察的重點(diǎn),用戶應(yīng)該要求供應(yīng)商介紹其系統(tǒng)架構(gòu),以及外部I/O、內(nèi)部I/O請(qǐng)求的方法,一旦我們得知系統(tǒng)不是內(nèi)直接尋址或不是將數(shù)據(jù)一次性廣播給所有的副本節(jié)點(diǎn),我們就可以得出如此的判斷:該系統(tǒng)的I/O路徑極有可能不是極有可能***的。
(未完待續(xù))
作者簡(jiǎn)介:陳靚,1999年北京航空航天大學(xué)碩士畢業(yè),2002年考入美國(guó)俄亥俄州立大學(xué)學(xué)習(xí)計(jì)算機(jī)科學(xué),2006年獲得該校博士學(xué)位。此后入職美國(guó)Amazon,于AWS Storage Team(云計(jì)算核心存儲(chǔ)團(tuán)隊(duì))工作,長(zhǎng)達(dá)7年之久,曾經(jīng)擔(dān)任系統(tǒng)架構(gòu)師和研發(fā)團(tuán)隊(duì)帶頭人,負(fù)責(zé)設(shè)計(jì)和實(shí)現(xiàn)了著名的AWS Glacier系統(tǒng)結(jié)構(gòu);2011年加入AWS S3團(tuán)隊(duì),負(fù)責(zé)對(duì)AWS S3 的Volume子系統(tǒng)新版本的研發(fā)。2013年,接受南京市政府321計(jì)劃的感召,選擇歸國(guó)創(chuàng)業(yè),創(chuàng)辦了南京鵬云網(wǎng)絡(luò)科技有限公司,致力于私有云存儲(chǔ)產(chǎn)品的研發(fā)。2015年入選中組部“國(guó)家千人計(jì)劃”專家人才。