關(guān)于云存儲,你需要知道的一些事(一) UCloud云計算
引言
Alphago打破圍棋神話、無人駕駛、機器人送餐,人工智能已備受全球矚目,現(xiàn)在資本的熱潮也正轉(zhuǎn)向AI市場,智能化大潮已勢不可擋。當(dāng)下人工智能和云業(yè)務(wù)緊密關(guān)聯(lián),未來將變得更加智能,但在這個智能化的背后,是對海量數(shù)據(jù)存儲的剛性需求,據(jù)悉,單是一輛無人駕駛汽車每秒產(chǎn)生的數(shù)據(jù)容量就在1G左右,相當(dāng)于每秒發(fā)送20萬封純文本電子郵件,或上傳100張高清數(shù)碼照片。沒有大容量、超穩(wěn)定的存儲系統(tǒng),這一切都是無稽之談。
無存儲,不智能,那么云存儲技術(shù)是如何實現(xiàn)的?今天將由UCloud存儲研發(fā)部經(jīng)理李希源給我們帶來云存儲-—對象存儲(UFile)技術(shù)深度解析。
對象存儲 UFile
對象存儲(UFile)是為互聯(lián)網(wǎng)應(yīng)用提供非結(jié)構(gòu)化文件存儲的服務(wù);相對于傳統(tǒng)硬盤存儲,UFile具有存儲無上限、支持高并發(fā)訪問、成本更低等優(yōu)勢;解決業(yè)務(wù)架構(gòu)的文件存儲問題,有效降低海量文件的存儲成本,支持熱點數(shù)據(jù)的高并發(fā)訪問,提升終端用戶訪問體驗。
單地域UFile存儲架構(gòu)集群介紹
單地域UFile架構(gòu)大體可劃分為6大集群:
- ULB實現(xiàn)外網(wǎng)的對接及接入層的負載均衡及容災(zāi)處理,主要實現(xiàn)外網(wǎng)IP地址的綁定及接入層集群的秒級異常剔除,該模塊通過定期向接入層模塊端口發(fā)送心跳檢測接入層模塊的可用性,在發(fā)現(xiàn)異常時及時進行異常模塊的剔除
- 接入層提供文件訪問服務(wù),該模塊為無狀態(tài)設(shè)計,因此可以平行擴容及縮容
- 索引層保存文件對象的元數(shù)據(jù)信息,包括對象名稱、對象大小、創(chuàng)建時間、存儲位置等信息
- 存儲層是實際存儲文件數(shù)據(jù)的模塊集群,主要實現(xiàn)文件數(shù)據(jù)的多份分布及高可靠存儲
- 數(shù)據(jù)處理層主要實現(xiàn)UFile圖片及數(shù)據(jù)的處理,包括圖片的實時裁剪、縮放、旋轉(zhuǎn)、水印、格式轉(zhuǎn)換、信息獲取操作,以及使用客戶自己的通用計算鏡像對數(shù)據(jù)進行處理
- 名字服務(wù)主要實現(xiàn)索引層、存儲層及數(shù)據(jù)處理層模塊的容災(zāi)剔除,以上3個集群的模塊會定期在名字服務(wù)注冊自身的服務(wù),當(dāng)其中有部分模塊因機器異?;蛘呔W(wǎng)絡(luò)中斷導(dǎo)致無法提供服務(wù)時,名字服務(wù)會將該機器從名字中剔除,并且通知接入層,從而實現(xiàn)后臺模塊的容災(zāi)剔除。
主要從以下三點解析:
- UFile索引層設(shè)計
- UFile存儲層設(shè)計
- UFile存儲路由算法設(shè)計
UFile索引層設(shè)計
UFile索引層為一套分布式KV存儲系統(tǒng),其主要目標是保證UFile對象元數(shù)據(jù)的高性能、高可靠、高可用及可擴展的存儲,其主要分成2層架構(gòu):
- 索引接入集群,主要解決索引存儲集群的管理及元數(shù)據(jù)的分布,這一層模塊為無狀態(tài)設(shè)計,通過名字服務(wù)實現(xiàn)異常狀態(tài)的容災(zāi)剔除
- 索引存儲集群,實現(xiàn)對象元數(shù)據(jù)的分布式存儲,每個對象元數(shù)據(jù)將存儲3份,保證數(shù)據(jù)的可靠性及高可用性,同時對象存儲采用SSD作為存儲介質(zhì),保證了元數(shù)據(jù)存儲的高并發(fā)低延時訪問特性。該模塊采用固定集群規(guī)模的方式進行管理,每個集群支撐的存儲量、訪問量固定,存儲可實現(xiàn)以集群為單位的水平擴容,保障業(yè)務(wù)不斷增長情況下的高性能穩(wěn)定訪問支持
UFile存儲層設(shè)計
存儲層包括3中類型模塊集群:
- 存儲節(jié)點,該模塊按照固定大小的集群(稱為Set)進行組織和管理,每個集群支撐的存儲量及訪問量規(guī)格固定,該模塊可根據(jù)存儲量需求橫向進行***擴展,從而實現(xiàn)客戶無存儲量上限的數(shù)據(jù)存儲。每個對象數(shù)據(jù)在存儲層存儲3份數(shù)據(jù),通過對異常情況的及時處理及壞盤的及時修復(fù),保證數(shù)據(jù)極高的可靠性(99.99999999%)
- SetMaster,該模塊進行Set狀態(tài)的管理,接入集群通過SetMaster決定上傳的對象數(shù)據(jù)的存儲集群,并執(zhí)行數(shù)據(jù)的存儲操作
- OsdMaster,該模塊每個Set有一套,實現(xiàn)Set內(nèi)部的存儲路由管理,并對各塊磁盤的狀態(tài)進行監(jiān)控,及時剔除異常磁盤
UFile存儲路由算法設(shè)計
UFile存儲集群采用無中心設(shè)計,數(shù)據(jù)存儲采用固定的路由算法進行存儲,因為存儲集群的規(guī)模是固定的,因此路由表也是固定,這就保證了存儲系統(tǒng)的簡單性及穩(wěn)定性。下面詳細介紹UFile數(shù)據(jù)存儲層的路由算法設(shè)計。
在存儲集群上線時,每個集群的OsdMaster將該集群的磁盤信息進行組織,生成一個存儲路由表,該路由表的每個項目對應(yīng)3塊分布在不同機架及存儲機器上的磁盤,對象數(shù)據(jù)將按照該路由表指定的位置進行存儲。
每個存儲在UFile上的對象數(shù)據(jù)將被切分成若干個4MB的數(shù)據(jù)塊,稱為分片。UFile為每個對象分配一個單集群內(nèi)部唯一的對象ID,通過對象ID和分片編號拼接獲得分片ID,通過字符串哈希算法獲得哈希值,并在路由表中找到該分片存儲的3塊磁盤位置,由UFile接入模塊將該分片數(shù)據(jù)提交到3塊磁盤上。
當(dāng)單塊磁盤出現(xiàn)異常時,OsdMaster會發(fā)現(xiàn)該情況并將該磁盤標記為異常狀態(tài),接入層寫入該數(shù)據(jù)時,將只寫入兩份數(shù)據(jù),磁盤修復(fù)后,將從這兩份數(shù)據(jù)中拷貝一份數(shù)據(jù)到已修復(fù)磁盤,恢復(fù)數(shù)據(jù)的多份高可靠存儲。當(dāng)出現(xiàn)一個哈希表項中有2塊磁盤不可使用的情況下,為保證數(shù)據(jù)安全性,該存儲集群將不允許寫入操作,寫入操作將被切換到其他集群提供服務(wù),從而保證UFile讀寫的高可用性。
UFile功能優(yōu)勢:
1. 海量存儲
存儲空間無上限,無需考慮存儲空間擴容問題,單文件***支持5TB。適用于音視頻、圖片分享等UGC類應(yīng)用海量文件存儲。
2. 高并發(fā)
支持高并發(fā)訪問,突破傳統(tǒng)磁盤I/O限制,滿足高訪問量及高下載量業(yè)務(wù)需求。適用于高下載量高訪問量應(yīng)用文件的存儲。
訪問加速
存儲文件結(jié)合CDN分發(fā)加速,國內(nèi)外500+加速節(jié)點,有效降低訪問延遲、提升下載速度。提升全網(wǎng)終端用戶的訪問體驗。
3. 安全可用
所存文件保存三份副本,分布存儲于不同存儲集群。即使單份數(shù)據(jù)損壞也不影響存儲文件的可用性,同時保證文件安全。
4. 內(nèi)容保護
可通過身份驗證機制及防盜鏈設(shè)置控制終端用戶訪問權(quán)限,避免因內(nèi)容被盜用產(chǎn)生的版權(quán)損失及惡意訪問的流量消耗。
5. 圖片處理
提供圖片處理服務(wù),支持圖片縮放、剪裁、添加水印等功能,并提供多種尺寸設(shè)置,滿足移動端、PC端等多終端訪問需求。
6. 更低成本
存儲單價僅為云硬盤的1/2,下載由CDN分發(fā),降低存儲及網(wǎng)絡(luò)成本。按實際使用量計費,無存儲及帶寬資源閑置浪費。
7. 開發(fā)支持
完備的API接口及SDK開發(fā)包支持,適合多種語言,與原有業(yè)務(wù)無縫結(jié)合,能夠極大縮短開發(fā)周期,幫助業(yè)務(wù)快速上線。
總結(jié):
在大量企業(yè)對數(shù)據(jù)存儲的強需求背景下,UCloud對象存儲系統(tǒng)應(yīng)運而生,本文通過介紹UFile產(chǎn)品、底層文件存儲系統(tǒng)實現(xiàn)細節(jié)、功能優(yōu)勢,分析UFile如何實現(xiàn)高可靠及高可用特性,為企業(yè)數(shù)據(jù)服務(wù)保駕護航,從云存儲技術(shù)出發(fā),助力各個領(lǐng)域的企業(yè)更高效、更智能探索數(shù)據(jù)價值。
【本文是51CTO專欄機構(gòu)作者“大U的技術(shù)課堂”的原創(chuàng)文章,轉(zhuǎn)載請通過微信公眾號(ucloud2012)聯(lián)系作者】