云存儲系統OpenStack Object Storage(Swift)介紹

openkk 12年前發布 | 45K 次閱讀 OpenStack 分布式/云計算/大數據

OpenStack是一個美國國家航空航天局和Rackspace合作研發的開源云計算項目,并成為Apache下的一個重要開源項目,目前已經發展到了180家公司參與其中。

OpenStack Object StorageSwiftOpenStack開源云計算項目的子項目之一。Swift的目的是使用普通硬件來構建冗余的、可擴展的分布式對象存儲集群,存儲容量可達PB級。OpenStack Object Storage 最初由 Rackspace 采用Python語言開發,并于 2010 7 月貢獻給 OpenStack ,作為該開源項目的一部分。它的目的是用于托管 Rackspace Cloud Files service ,原始項目代號是 swift,所以沿用至今。

在分布式對象存儲中的一個關鍵問題是數據該如何存放。RingSwift中最重要的組件,用于記錄存儲對象與物理位置間映射關系。在涉及查詢accountcontainerobject信息時就需要查詢集群的ring信息。

 

先來看一下Swift文檔中關于Ring的描述:

       Ring用來確定數據駐留在集群中的位置。有單獨對應于Account數據庫、container數據庫和單個objectring

       Ring中每個partition在集群中都(默認)3replica。每個partition的位置由ring來維護,并存儲在映射中。

       Ring使用zone的概念來保證數據的隔離。每個partitionreplica都確保放在了不同的zone中。一個zone可以是一個硬盤,一個服務器,一個機架,一個交換機,甚至是一個數據中心............

.......

 

在上述Ring的特性描述中提到了Ring使用zonedevicepartitionreplica等等來維護數據和磁盤間的映射信息。那么在Ring的背后采用什么算法,使用了什么機制來保證數據的安全、高效和可擴展呢?這些概念對于數據存儲帶來了什么好處?本文逐步深入探討了Swift如何通過Ring組件來實現冗余的、可擴展的目的。

項目主頁:http://www.baiduhome.net/lib/view/home/1340337150862

</span></span></span></span>

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!