歡迎光臨
每天分享高質量文章

什麼是Gelato?OpenSDS多雲資料管理平臺!

01

什麼是OpenSDS Gelato

隨著雲計算行業的空前發展,越來越多的企業開始採用多雲IT架構。根據RightScale  “2019 State of the Cloud Report ”調查報告顯示,在1000餘家受訪企業中有84%採用了多雲戰略。

而在多雲應用中,企業又面臨著雲上雲下資料統一管理,資料自由流動,以及跨雲應用聯動等問題。正是為瞭解決這類問題,OpenSDS多雲資料管理平臺專案應運而生(OpenSDS Gelato)。

 

Github鏈接: https://github.com/opensds/Multi-Cloud

 

02

當前我們做了什麼

OpenSDS Gelato當前聚焦於多雲場景中物件儲存的統一管理,於2018年12月隨OpenSDS BALI版本發佈了基礎能力,該版本主要實現了兩個特性:

 

·      多雲物件資源池化南向支持各類物件儲存對接,如AWS OBS,Azure Blob,HuaweiCloud OBS等公有雲物件儲存服務,以及本地Ceph和FusionStorage物件儲存。北向提供統一的S3接口,進行跨設備和雲的物件資料統一讀寫。

·      物件資料跨雲流動提供基於策略的資料流動功能,實現跨設備和雲的資料流動和遷移。

OpenSDS Gelato中的整體架構如下圖所示:

 

後文將對圖中各模塊進行介紹。

2.1     多雲物件資源池化

OpenSDS Gelato提供兼容S3的物件儲存接口,通過這些接口用戶可以進行桶的創建/刪除,物件的上傳/下載等操作。為了便於理解,在介紹我們的具體實現之前,有必要先介紹幾個基本概念,以及他們之間的關係。

 

基本概念:

·      Backend:也稱Storage Backend,與物件儲存中的一個物理桶對應(比如AWS S3中的bucket,Azure Blob中的container),可理解為資料儲存的倉庫,是物件資料的物理儲存地。

·      Bucket:即物件儲存中通常所講的桶,用戶可通過OpenSDS提供的統一S3接口(PUT Bucket)創建,是用於儲存物件的容器。

·      Object:即物件儲存中通常所講的物件,任一物件必須屬於某一個Bucket。

Backend,Bucket和Object之間的關係,可由下圖表示:

可以看到:

·      Bucket與Backend是多對多的關係,表示一個Bucket中的多個Object可以儲存在不同的Backend中,多個Bucket中的物件可以儲存在同一個Backend中。

 

註:如此設計的目的,是為了在資料遷移、生命周期管理等場景下,當物件從一個backend遷移到另一個backend後,用戶視角看到的物件始終屬於同一個桶,可以通過固定的URL進行訪問。

 

·      Bucket和Object是一對多的關係,表示一個Bucket可以包含多個Object,一個Object必須屬於某一個Bucket。

 

結合圖 1:

·      Backend Service負責Backend的註冊,註冊過程中將判斷信息的有效性,並將backend信息存入資料庫。

·      S3 Service負責對外提供統一的S3接口

        ·   當用戶創建bucket時,S3 Service將桶的元資料信息存入資料庫。

        ·   S3 Service內部通過Adapter兼容不同的後端,當用戶上傳物件時可以指定backend,如果不指定則上傳到bucket關聯的預設backend。

 

2.2     物件資料跨雲流動

在實際的應用場景中,雲間以及雲上/雲下的資料流動涉及多種,比如備份、複製、遷移、歸檔、跨雲生命周期管理等等。OpenSDS Gelato當前版本已實現了雲間即雲上/雲下的資料遷移。

 

如圖 1所示,資料遷移主要由Dataflow Service和Datamover兩個模塊配合完成,二者交互的細節可從以下圖2中看出。

 

 

如上圖所示:

·      用戶通過Dataflow Manager創建遷移計劃,計劃被儲存在DB中;

·      Scheduler根據用戶定義計划進行調度,產生遷移job,並將job通過kafka發送給Datamover;

·      Datamover從kafka接收job,執行實際的遷移操作,並實時更新job的執行狀態和進度。

·      用戶通過Dataflow Manager可以查詢到job的狀態和進度。

 

註:當前datamover的遷移通過基礎的http請求實現,後續將考慮集成三方遷移工具實現遷移。

 

03

下一步計劃做什麼

OpenSDS Gelato將於2019年6月發佈第二個版本,在這個版本中我們將實現跨雲資料生命周期管理,即用戶針對Bucket配置生命周期管理策略,Gelato將自動根據策略定義實現資料到期刪除或遷移,遷移支持雲內不同儲存類別之間的遷移,以及雲間的遷移。

 

除此之外,我們也在考慮或設計以下內容:

 

·      集成三方資料流動工具(備份、遷移、複製等)實現更豐富的資料流動;

·      引入自動編排工具,對任務進行編排,從而實現資料流動與雲上應用的聯動,比如,將本地資料傳輸到雲上進行大資料分析,並將分析結果取回本地。

04

結語

OpenSDS Gelato 是Linux基金會下首個儲存領域的頂級開源專案,我們的原始碼完全開放,如果你對多雲場景下資料統一、智慧管理感興趣,或者有這方面的需求,我們十分歡迎你參與到社區中來貢獻代碼或idea。

你可以通過以下方式進一步瞭解OpenSDS社區:

web: https://www.opensds.io

web: https://github.com/opensds

facebook: @opensds_io

slack: opensds.slack.com

 

05

作者簡介

曾蜀芳: 華為高級軟體工程師,從事災備軟體和儲存管理軟體研發工作多年,對資料保護領域和分佈式儲存系領域有豐富的設計開發經驗。

 

來源: OpenSDS開源社區

已同步到看一看
赞(0)

分享創造快樂