2012年5月17日 星期四

OpenStack Swift 雲端存儲架構說明(一)

Swift 為類似 Amazon S3 的雲端存儲,有別與以往傳統儲存空間,它擁有"低成本"、"極高擴展性"等特性。OpenStack 為 Open Source 軟體,目標是在一般硬體上實作雲端,因此人人都可以自行建立雲端環境。希望藉由這篇文章,讓對雲端存儲或 Swift 不熟悉的讀者更瞭解它的優勢架構。

Swift 簡介

swift 是一個多租戶技術(multi-tenant)、擴展性高、耐久的物件儲存系統。 他的高度擴展性可以從數個節點擴展到數千個機器。水平擴展的特性預防單點故障的情況發生。swift 已被全球 Fortune 500企業、網路公司及服務提供者應用。swift 一般用於存放非結構性資料,如文件、網路內容、備份、影像和 VM 快照。swift 並非傳統 file system或 raw block 裝置。反之,它透過 REST API 操作(儲存、刪除、取得) 物件(object) 。

程式開發者可以使用 swift API 或是使用現有程式語言如 Java、 Python、Ruby、C# 所提供的library。

Swift 特色

 

Swift 可擴展性高

為了同時支援千萬個用戶,儲存系統必須可隨著應用程式的需求擴展。可用空間並不是唯一的考量,主要的關鍵在於儲存系統的並行能力,其是否能夠在資料中心內處理龐大的連線數目,以滿足應用程式的需求。Swift 可線性擴展,當系統的使用量和連線需求數目成長時,效能仍能夠維持一定的水準。需要擴展時,只需要新增儲存點(storage node) 因應儲存空間的需求; 新增伺服系點(proxy node) 因應連線需求的增加。


Swift 非常耐久

Amazon S3 號稱他們的雲端中心的耐久度為 99.999999999%。欲達到此程度的耐久度,所有儲存在Swift的物件(Object) 都以一式三份的複製,分散於叢集(cluster)中。所以每一次的資料寫入,都會確認是否也同時寫入其他兩個位置才會視為成功。

另一個特性是能夠定義"容錯區域"(failure zone)。容錯區域能讓一個叢集建立在多個實體界線上,而每個實體界線都能夠容許有個別出錯的可能。例如:一個雲端叢集建立在多個鄰近的資料中心上,如此一來可以容許一個或多可資料中心停擺/錯誤。

 Swift 為開放原始碼軟體

與其他自由軟體不同的是,早在第一次公開發佈前,Swift 早已在 Rackspace 受過大規模的嚴謹測試。身為開放原始碼軟體,Swift有幾項好處:沒有廠商壟斷問題、社群支援以及大量開發快速的 swift  工具和服務。

 

Swift 類似於 AWS S3

存取 Swift 存儲完全需要透過 REST API。他與 Amazon S3 API 和 Rackspace Cloud Files API 相類似。這代表目前使用 S3 的應用程式,也可以使用 Swift 且程式碼不需作大幅更改。

Swift 建立在業界標準的元件上

 Swift 使用成熟、標準的元件像是rsync、MD5、xfs 和 python。Swift執行在現有的 Linux 版本上,與其他使用專利、高客制化的儲存系統不同。從硬體的角度來說,由於Swift 被設計成能夠容許錯誤的特性,對於硬體的要求相較來說沒這麼高。因此,一般電腦的硬碟可使用在Swift 叢集中,而不是高價位的“企業級”硬碟。更因為可以使用一般的硬體,不會發生只能向某個存儲廠商購買硬體的情形。

 

Swift 可以部署在組織內部或是一項服務

對於某些不放心將資料除存在公有雲的公司,在內部部署 swift 可以達到降低成本、相似效能並可以完全掌控網路存取和安全性。Swift 也可以以公有存儲的形式部署為一項服務。對於想要提供類似 S3 的服務提供者可以考慮使用 swift。

 

Swift 廣受支援

swift 受到廣大的社群,包括100+個公司和1000+ 位開發者支援。




沒有留言:

張貼留言