01
什麼是OpenSDS Gelato
而在多雲應用中,企業又面臨著雲上雲下資料統一管理,資料自由流動,以及跨雲應用聯動等問題。正是為瞭解決這類問題,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
作者簡介
曾蜀芳: 華為高階軟體工程師,從事災備軟體和儲存管理軟體研發工作多年,對資料保護領域和分散式儲存系領域有豐富的設計開發經驗。
朋友會在“發現-看一看”看到你“在看”的內容