UCloud雲端儲存技術深度解析
隨著無人駕駛、機器人送餐等人工智慧(AI)應用逐漸進入大眾生活,再加上資本熱潮的助推,AI的發展備受矚目。然而,要真正實現AI從概念到落地,還必須具備足夠的資料、足夠的計算能力和足夠的行業應用三個條件,而云計算恰好能滿足這些要求。
當下,AI正與雲端計算進行深度融合,未來會變得更加智慧,但在智慧化的背後是對海量資料儲存的剛性需求。據不完全統計,單是一輛無人駕駛汽車每秒產生的資料容量就在1G左右,相當於每秒傳送20萬封純文字電子郵件或上傳100張高清數碼照片。因此,沒有大容量和超穩定的儲存系統,這一切都將無從談起。無儲存,不智慧。為了更加清晰的瞭解雲端儲存技術的實現過程,UCloud儲存研發部將對雲端儲存——物件儲存(UFile)技術進行深度解析。
物件儲存 UFile概念
物件儲存(UFile)是為網際網路應用提供非結構化檔案儲存的服務;相對於傳統硬碟儲存,UFile具有儲存無上限、支援高併發訪問、成本更低等優勢;解決業務架構的檔案儲存問題,有效降低海量檔案的儲存成本,支援熱點資料的高併發訪問,提升終端使用者訪問體驗。
單地域UFile儲存架構六大叢集
1)ULB(UCloud Load Balancer) 實現外網的對接及接入層的負載均衡與容災處理,該模組通過定期向接入層模組埠傳送心跳以檢測接入層模組的可用性,發現異常模組及時進行剔除;
2)接入層提供檔案訪問服務,該模組為無狀態設計,因此可以平行擴容及縮容;
3)索引層儲存檔案物件的元資料資訊,包括物件名稱、物件大小、建立時間、儲存位置等;
4)儲存層是實際儲存檔案資料的模組叢集,主要實現檔案資料的多份分佈及高可靠儲存;
5)資料處理層主要實現UFile圖片及資料處理,包括圖片的實時裁剪、縮放、旋轉、水印、格式轉換、資訊獲取等操作,客戶還可以使用自己的通用計算映象對資料進行處理;
6)名字服務主要實現索引層及資料處理層模組的容災剔除,以上3個叢集的模組會定期在名字服務註冊自身服務,當其中有部分模組因機器異常或者網路中斷導致無法提供服務時,名字服務會將該機器從名字中剔除,並且通知接入層,從而實現後臺模組的容災剔除。
重點設計解析
UFile索引層設計
UFile索引層為一套分散式KV儲存系統,其主要目標是保證UFile物件元資料的高效能、高可靠、高可用及可擴充套件的儲存,其主要分成兩層架構:
1)索引接入叢集解決索引儲存叢集的管理及元資料的分佈,這一層模組為無狀態設計,通過名字服務實現異常狀態的容災剔除;
2)索引儲存叢集實現物件元資料的分散式儲存,每個物件元資料將儲存3份,保證資料的可靠性及高可用性,同時物件儲存採用SSD(固態硬碟)作為儲存介質,也保證了元資料儲存的高併發低延時訪問特性。另外,該模組採用固定叢集規模的方式進行管理,每個叢集支撐的儲存量、訪問量固定,儲存可實現以叢集為單位的水平擴容,保障業務不斷增長情況下的高效能穩定訪問支援。
UFile儲存層設計
儲存層包括三種類型模組叢集:
1)儲存節點,該模組按照固定大小的叢集(稱為“Set”)進行組織和管理,每個叢集支撐的儲存量及訪問量規格固定,同時該模組可根據儲存量需求橫向進行無限擴充套件,從而滿足客戶無儲存量上限的資料儲存需求。每個物件資料在儲存層儲存三份資料,通過對異常情況的及時處理和壞盤的及時修復,保證資料極高的可靠性(99.99999999%);
2)SetMaster,該模組進行Set狀態的管理,接入叢集通過SetMaster決定上傳物件資料的儲存叢集,並執行資料的儲存操作;
3)OsdMaster,該模組每個Set有一套,實現Set內部的儲存路由管理,並對各塊磁碟的狀態進行監控,及時剔除異常磁碟。
UFile儲存路由演算法設計
UFile儲存叢集採用去中心化設計,資料儲存採用固定的路由演算法進行儲存,由於儲存叢集的規模為固定,因此路由表也為固定,這就保證了儲存系統的簡單性及穩定性。下面詳細介紹UFile資料儲存層的路由演算法設計。
第一步,在儲存叢集上線時,每個叢集的OsdMaster將磁碟資訊進行組織,生成一個儲存路由表,該路由表的每個專案對應3塊分佈在不同機架及儲存機器上的磁碟,物件資料將按照路由表指定的位置進行儲存。
第二步,每個儲存在UFile上的物件資料將被切分成若干個4MB的資料塊,稱為分片。UFile為每個物件分配一個單叢集內部唯一的物件ID,物件ID與分片編號拼接獲得分片ID,通過字串雜湊演算法獲得雜湊值,並在路由表中找到該分片儲存的3塊磁碟位置,由UFile接入模組將該分片資料提交到3塊磁碟上。
第三步,當單塊磁碟出現異常時,OsdMaster會發現這一情況,並將該磁碟標記為異常狀態,當接入層寫入此資料時,會只寫入兩份資料,待磁碟修復後,再從這兩份資料中拷貝一份資料到已修復磁碟,恢復資料的多份高可靠儲存。在出現一個雜湊表項中有2塊磁碟不可使用的情況時,為保證資料安全性,該儲存叢集將不允許寫入操作,寫入操作會被切換到其他叢集提供服務,從而保證UFile讀寫的高可用性。
UFile功能優勢
- 海量儲存
儲存空間無上限,無需考慮儲存空間擴容問題,單檔案最大支援5TB,適用於音視訊、圖片分享等UGC類應用海量檔案儲存。
- 高併發
支援高併發訪問,突破傳統磁碟I/O限制,滿足高訪問量及高下載量業務需求,適用於高下載量、高訪問量應用檔案的儲存。
- 訪問加速
儲存檔案結合CDN分發加速,國內外500+加速節點,有效降低訪問延遲,提高下載速度,提升全網終端使用者的訪問體驗。
- 安全可用
所存檔案儲存三份副本,分佈儲存於不同儲存叢集,即使單份資料損壞也不影響儲存檔案的可用性,同時保證檔案安全。
- 內容保護
可通過身份驗證機制及防盜鏈設定控制終端使用者訪問許可權,避免因內容被盜用產生的版權損失和惡意訪問的流量消耗。
- 圖片處理
提供圖片處理服務,支援圖片縮放、剪裁、新增水印等功能,並提供多種尺寸設定,滿足移動端、PC端等多終端訪問需求。
- 更低成本
儲存單價僅為雲硬碟的1/2,下載由CDN分發,降低儲存及網路成本,按實際使用量計費,無儲存及頻寬資源閒置浪費。
- 開發支援
完備的API介面及SDK開發包支援,適合多種語言,與原有業務無縫結合,能夠極大縮短開發週期,幫助業務快速上線。
總結
在大量企業對資料儲存需求強勁的背景下,UCloud物件儲存系統應運而生。本文通過介紹UFile產品、底層檔案儲存系統實現細節、功能優勢,分析了UFile如何實現高可靠及高可用特性。
文章來自微信公眾號:細說雲端計算