· OsdMaster,該模塊每個(gè)Set有一套,實(shí)現(xiàn)Set內(nèi)部的存儲路由管理,并對各塊磁盤的狀態(tài)進(jìn)行監(jiān)控,及時(shí)剔除異常磁盤。
UFile存儲路由算法設(shè)計(jì)
UFile存儲集群采用去中心化設(shè)計(jì),數(shù)據(jù)存儲采用固定的路由算法進(jìn)行存儲,由于存儲集群的規(guī)模為固定,因此路由表也為固定,這就保證了存儲系統(tǒng)的簡單性及穩(wěn)定性。下面詳細(xì)介紹UFile數(shù)據(jù)存儲層的路由算法設(shè)計(jì)。
第一步,在存儲集群上線時(shí),每個(gè)集群的OsdMaster將磁盤信息進(jìn)行組織,生成一個(gè)存儲路由表,該路由表的每個(gè)項(xiàng)目對應(yīng)3塊分布在不同機(jī)架及存儲機(jī)器上的磁盤,對象數(shù)據(jù)將按照路由表指定的位置進(jìn)行存儲。
第二步,每個(gè)存儲在UFile上的對象數(shù)據(jù)將被切分成若干個(gè)4MB的數(shù)據(jù)塊,稱為分片。UFile為每個(gè)對象分配一個(gè)單集群內(nèi)部唯一的對象ID,對象ID與分片編號拼接獲得分片ID,通過字符串哈希算法獲得哈希值,并在路由表中找到該分片存儲的3塊磁盤位置,由UFile接入模塊將該分片數(shù)據(jù)提交到3塊磁盤上。
第三步,當(dāng)單塊磁盤出現(xiàn)異常時(shí),OsdMaster會發(fā)現(xiàn)這一情況,并將該磁盤標(biāo)記為異常狀態(tài),當(dāng)接入層寫入此數(shù)據(jù)時(shí),會只寫入兩份數(shù)據(jù),待磁盤修復(fù)后,再從這兩份數(shù)據(jù)中拷貝一份數(shù)據(jù)到已修復(fù)磁盤,恢復(fù)數(shù)據(jù)的多份高可靠存儲。在出現(xiàn)一個(gè)哈希表項(xiàng)中有2塊磁盤不可使用的情況時(shí),為保證數(shù)據(jù)安全性,該存儲集群將不允許寫入操作,寫入操作會被切換到其他集群提供服務(wù),從而保證UFile讀寫的高可用性。
UFile功能優(yōu)勢
海量存儲
存儲空間無上限,無需考慮存儲空間擴(kuò)容問題,單文件最大支持5TB,適用于音視頻、圖片分享等UGC類應(yīng)用海量文件存儲。
高并發(fā)
支持高并發(fā)訪問,突破傳統(tǒng)磁盤I/O限制,滿足高訪問量及高下載量業(yè)務(wù)需求,適用于高下載量、高訪問量應(yīng)用文件的存儲。
訪問加速
存儲文件結(jié)合CDN分發(fā)加速,國內(nèi)外500+加速節(jié)點(diǎn),有效降低訪問延遲,提高下載速度,提升全網(wǎng)終端用戶的訪問體驗(yàn)。
安全可用
所存文件保存三份副本,分布存儲于不同存儲集群,即使單份數(shù)據(jù)損壞也不影響存儲文件的可用性,同時(shí)保證文件安全。
內(nèi)容保護(hù)
可通過身份驗(yàn)證機(jī)制及防盜鏈設(shè)置控制終端用戶訪問權(quán)限,避免因內(nèi)容被盜用產(chǎn)生的版權(quán)損失和惡意訪問的流量消耗。
圖片處理
提供圖片處理服務(wù),支持圖片縮放、剪裁、添加水印等功能,并提供多種尺寸設(shè)置,滿足移動(dòng)端、PC端等多終端訪問需求。
更低成本
存儲單價(jià)僅為云硬盤的1/2,下載由CDN分發(fā),降低存儲及網(wǎng)絡(luò)成本,按實(shí)際使用量計(jì)費(fèi),無存儲及帶寬資源閑置浪費(fèi)。
開發(fā)支持
完備的API接口及SDK開發(fā)包支持,適合多種語言,與原有業(yè)務(wù)無縫結(jié)合,能夠極大縮短開發(fā)周期,幫助業(yè)務(wù)快速上線。
總結(jié)
在大量企業(yè)對數(shù)據(jù)存儲需求強(qiáng)勁的背景下,UCloud對象存儲系統(tǒng)應(yīng)運(yùn)而生。本文通過介紹UFile產(chǎn)品、底層文件存儲系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)、功能優(yōu)勢,分析了UFile如何實(shí)現(xiàn)高可靠及高可用特性。從云存儲技術(shù)出發(fā),UCloud助力各領(lǐng)域企業(yè)更高效、更智能地探索數(shù)據(jù)價(jià)值。