UCloud優(yōu)刻得歸檔存儲(chǔ)技術(shù)安全、快速、低成本

云計(jì)算憑借其強(qiáng)大的分布式計(jì)算能力,可伸縮的特性以及低成本高可靠性的優(yōu)勢(shì), 在海量數(shù)據(jù)處理方面占據(jù)優(yōu)勢(shì)地位。但是日常所產(chǎn)生的數(shù)據(jù)并非都是需要隨時(shí)存取的,事實(shí)上,我們依賴于云服務(wù)進(jìn)行存儲(chǔ)的數(shù)據(jù),大多數(shù)都不是需要頻繁訪問的熱點(diǎn)數(shù)據(jù),大量的數(shù)據(jù)被存儲(chǔ)后訪問頻率很低(例如數(shù)據(jù)歸檔, 長(zhǎng)期備份等場(chǎng)景,平均一年訪問一次甚至更低),這時(shí)候我們可以將這些不再經(jīng)常使用的“冷數(shù)據(jù)”轉(zhuǎn)移到一種成本更低的存儲(chǔ)設(shè)備來進(jìn)行長(zhǎng)期保存,我們稱這種存儲(chǔ)為歸檔存儲(chǔ)。歸檔存儲(chǔ)安全、持久且成本極低,為了保持成本低廉,數(shù)據(jù)取回時(shí)間可能需要花費(fèi)數(shù)小時(shí)。

在數(shù)據(jù)歸檔領(lǐng)域,傳統(tǒng)的磁帶庫(kù)或是藍(lán)光盤庫(kù)介質(zhì)在過往一直是首選,這些磁帶或者光盤一旦存儲(chǔ)了數(shù)據(jù),就意味著數(shù)據(jù)進(jìn)入到數(shù)據(jù)中心某個(gè)不起眼的角落中,如無必要的話,這些數(shù)據(jù)將通常會(huì)進(jìn)入到“沉睡”階段,有些數(shù)據(jù)甚至幾十年都不再被讀取使用。 如今數(shù)字經(jīng)濟(jì)的背景下,冷數(shù)據(jù)的價(jià)值挖掘受到了越來越多的關(guān)注,靈活的數(shù)據(jù)檢索,準(zhǔn)實(shí)時(shí)的數(shù)據(jù)取回能力,也成為了新時(shí)代數(shù)據(jù)歸檔場(chǎng)景的核心需求。

UCloud優(yōu)刻得的歸檔存儲(chǔ)為對(duì)象存儲(chǔ)US3提供了一套極低價(jià)格的數(shù)據(jù)存儲(chǔ)系統(tǒng),該系統(tǒng)具備存儲(chǔ)速度快、可靠性高、數(shù)據(jù)取回靈活等特性,以下是該系統(tǒng)的介紹。

硬件架構(gòu)

UCloud優(yōu)刻得的存儲(chǔ)硬件架構(gòu)是采用兩個(gè)機(jī)頭連接多個(gè)JBOD的方式來組織的,一個(gè)機(jī)架里有多個(gè)JBOD和兩個(gè)機(jī)頭,每個(gè)JBOD都分別連接到兩個(gè)機(jī)頭的HBA卡上,每個(gè)JBOD容納了一百塊以上的硬盤,JBOD是存儲(chǔ)領(lǐng)域中一類重要的存儲(chǔ)設(shè)備,英文Just a Bunch Of Disks,意為磁盤簇,磁盤連續(xù)捆束陣列,是在一個(gè)底板上安裝的帶有多個(gè)磁盤驅(qū)動(dòng)器的存儲(chǔ)設(shè)備。不同于RAID陣列,JBOD沒有用來管理磁盤上數(shù)據(jù)分布的前端邏輯,每個(gè)磁盤進(jìn)行單獨(dú)尋址,可以作為分開的存儲(chǔ)資源,用戶可以像訪問普通硬盤一樣,訪問JBOD中的任意一塊硬盤。JBOD在近幾年被一些廠家提出,并逐漸被廣泛采用。

硬盤的選擇上我們首選HM-SMR(Host-Managed-SMR)盤,當(dāng)然也兼容普通的CMR盤,SMR盤的優(yōu)點(diǎn)是成本低廉,但是不支持隨機(jī)讀寫,上面的數(shù)據(jù)按固定的大小(通常是256MB)被分為一個(gè)個(gè)的Zone,只有1%的CMR Zone是支持隨機(jī)寫的,剩余99%的SMR Zone都是只支持順序?qū)懙?,?shù)據(jù)的擦除也是以Zone為單位的,這種盤的缺點(diǎn)是不適用于頻繁更改性寫入,但用來存儲(chǔ)大容量,修改少的數(shù)據(jù)卻十分合適,且成本低于普通HDD盤,適合作為UCloud優(yōu)刻得歸檔存儲(chǔ)的存儲(chǔ)介質(zhì)。

兩個(gè)機(jī)頭用于管理連接在上面的JBOD和硬盤,裝有操作系統(tǒng),它們之間是主從關(guān)系,主機(jī)頭負(fù)責(zé)接收IO請(qǐng)求,主機(jī)頭故障后,從機(jī)頭接替成為主。

存儲(chǔ)的成本其中還有非常顯著的一部分是電力的開銷,如果所有硬盤長(zhǎng)時(shí)間保持全部上電狀態(tài),將帶來比較大的一筆電力開銷,考慮到我們歸檔存儲(chǔ)寫多讀少的特性,且寫入都是追加寫,速度很快,少量的硬盤就可以充分利用網(wǎng)絡(luò)帶寬,所以我們的設(shè)計(jì)目標(biāo)是在正常使用的情況下可以做到大部分的硬盤處于下電狀態(tài),只有少部分硬盤處于上電狀態(tài)提供IO,在5年的質(zhì)保期間保證50k的上下電頻率,平均下來是小時(shí)級(jí)別。為此,UCloud優(yōu)刻得在軟件架構(gòu)上設(shè)計(jì)了一套上下電調(diào)度策略,具體后文會(huì)有講解。

軟件架構(gòu)

冗余策略

常用的冗余策略有副本和糾刪兩種方式,為了達(dá)到節(jié)省成本的目的,UCloud優(yōu)刻得歸檔存儲(chǔ)采用的策略是對(duì)數(shù)據(jù)進(jìn)行糾刪分片,又由于硬件架構(gòu)上的較多硬盤配置,以及異步寫的原因,我們采用了較大的EC比例。

Blob

考慮到前面提到的SMR盤的Zone和糾刪條帶的設(shè)定,我們引入了Blob這一概念, 例如采用大比例的EC糾刪策略, 把綜合考慮Zone和EC比例的數(shù)據(jù)劃分到一個(gè)Blob,這樣刪除或壓縮數(shù)據(jù)時(shí)可以以Blob為單位來進(jìn)行。

磁盤組

我們把每個(gè)JBOD的磁盤分成了一個(gè)個(gè)邏輯的磁盤組。一次IO的所有糾刪分片都在一個(gè)磁盤組中,一個(gè)Blob也只屬于某一個(gè)磁盤組,例如23+3的糾刪分片,那么一個(gè)磁盤組就包含26塊盤, 且上電,下電也是以磁盤組為最小單位的。當(dāng)上層來了寫IO時(shí),為了避免磁盤組頻繁上下電,會(huì)讓一個(gè)磁盤組持續(xù)服務(wù)寫操作,當(dāng)該磁盤組寫到一定的量后,按輪詢策略挑選下一個(gè)磁盤組進(jìn)行上電。

元數(shù)據(jù)

我們利用每塊硬盤那1%的支持隨機(jī)讀寫的CMR Zone來存儲(chǔ)元數(shù)據(jù)信息,元數(shù)據(jù)信息包含兩部分,Disk Meta和Zone Meta, Disk Meta用于保存整個(gè)磁盤的元數(shù)據(jù),包含唯一標(biāo)識(shí)這塊盤的Disk ID, 屬于哪個(gè)JBOD,有多少個(gè)Zone,以及Zone Meta在磁盤中的偏移和長(zhǎng)度等。Zone Meta用于保存這塊盤每個(gè)Zone的元數(shù)據(jù)信息,包括這個(gè)Zone是第幾個(gè),有沒有被使用等。

歸檔服務(wù)啟動(dòng)時(shí),通過加載Disk Meta和Zone Meta在內(nèi)存中構(gòu)建每個(gè)Blob的信息。

上下電調(diào)度策略

為了節(jié)省電力成本,所有磁盤組并不是保持長(zhǎng)期上電狀態(tài)的,當(dāng)沒有讀IO時(shí),只有當(dāng)前負(fù)責(zé)寫的磁盤組處于上電狀態(tài),當(dāng)這個(gè)磁盤組寫到一定量后,切換到下一個(gè)寫磁盤組上電,原來的寫磁盤組安排下電。對(duì)于讀IO,分為非緊急讀和緊急讀兩種,如果是非緊急讀,且這個(gè)讀IO對(duì)應(yīng)的磁盤組處于下電狀態(tài),則為這個(gè)磁盤組加一個(gè)讀標(biāo)記,每小時(shí)輪詢所有磁盤組,將有讀標(biāo)記但處于下電狀態(tài)的磁盤組上電,已處于上電狀態(tài)的磁盤組如果超過一定時(shí)間沒有收到IO請(qǐng)求會(huì)安排下電,也就是說,對(duì)于非緊急讀,最多需要數(shù)個(gè)小時(shí)的時(shí)間來等待磁盤組上電,而對(duì)于緊急讀IO來說,如果這次IO對(duì)應(yīng)的磁盤組處于下電狀態(tài),則立即安排上電,進(jìn)行數(shù)據(jù)讀取。

IO流程

上層IO的數(shù)據(jù)通過計(jì)算被切割成一個(gè)個(gè)EC分片(如果數(shù)據(jù)大小沒有按EC條帶對(duì)齊需要填0),分別派發(fā)到其對(duì)應(yīng)磁盤組的每個(gè)磁盤上,如果是非緊急讀IO可能需要等待對(duì)應(yīng)的磁盤組上電后進(jìn)行重試,如果是寫IO,當(dāng)一個(gè)Blob寫滿后,也就是磁盤組中每個(gè)磁盤的當(dāng)前Zone被寫滿后,會(huì)切換到下一個(gè)Zone,分配下一個(gè)Blob開始寫,寫成功后向上層返回這次IO對(duì)應(yīng)的Blob編號(hào)和在這個(gè)Blob內(nèi)的偏移,用于上層組織文件的元數(shù)據(jù)信息。

數(shù)據(jù)保存

數(shù)據(jù)在磁盤上是以4KB大小的Sector為單位寫下去的,每個(gè)IO所攜帶的數(shù)據(jù)經(jīng)過EC計(jì)算后落盤時(shí),都會(huì)被拆分成一個(gè)個(gè)Sector, 且在每個(gè)Sector的尾部都填充了一塊Sector Meta,用于記錄這個(gè)Sector的元數(shù)據(jù)信息,包括這個(gè)Sector對(duì)應(yīng)了第幾個(gè)Zone,以及這個(gè)Sector上數(shù)據(jù)的crc等,這樣可以防止硬盤的靜默錯(cuò)誤。

周期性數(shù)據(jù)檢查

歸檔服務(wù)啟動(dòng)后會(huì)周期性掃描已經(jīng)寫滿的Blob,對(duì)這個(gè)Blob的每個(gè)Sector進(jìn)行數(shù)據(jù)校驗(yàn),這一過程利用了上文提到的每個(gè)Sector 尾部的Sector Meta里保存的crc,校驗(yàn)失敗時(shí)會(huì)上報(bào)錯(cuò)誤,通知到相關(guān)運(yùn)維人員進(jìn)行處理。

總結(jié)

這套歸檔存儲(chǔ)系統(tǒng)在保證了高性能、安全的前提下,大幅地優(yōu)化了成本。非常適用于一些數(shù)據(jù)量大但訪問頻率不高的存儲(chǔ)場(chǎng)景,比如保存一些下載量少的多媒體數(shù)據(jù),大型數(shù)據(jù)庫(kù)、日志、用戶資料的備份等等。目前,UCloud優(yōu)刻得歸檔存儲(chǔ)服務(wù)已經(jīng)于2019年上線,且穩(wěn)定運(yùn)行多年,存儲(chǔ)了PB級(jí)別的歸檔數(shù)據(jù),預(yù)計(jì)隨著更大圍的應(yīng)用,將會(huì)更大幅度地節(jié)省存儲(chǔ)成本。

有對(duì)UCloud優(yōu)刻得歸檔存儲(chǔ)感興趣的小伙伴,可以與我們進(jìn)行更多產(chǎn)品咨詢和交流。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )