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