Openstack私有云簡介之Swift模塊

一、概述

  • Swift 不是文件系統或者實時的數據存儲系統,而是對象存儲,用於長期存儲永久類型的靜態數據。這些數據可以檢索、調整和必要時進行更新。Swift最適合虛擬機鏡像、圖片、郵件和存檔備份這類數據的存儲。
  • Swift沒有采用RAID,也沒有中心單元和主控點,而是通過在軟件層面採用一致性HASH和數據冗餘性,犧牲一定程度的數據一致性達到高可用性和可收縮性。支持多用戶模式、容器、和對象存儲。最佳應用場景爲非結構化數據存儲問題

二、Swift作用

1、極高的數據持久性

2、完全的對稱系統架構:對稱意味着Swift中的各節點可以完全對等,能極大的降低成本

3、無限的可擴展性:一方面是數據可以無限的擴,另一方面Swift的性能可以線性提升(暫時沒有體會到,可以再後續的閱讀了解中體會,主要看它的架構設計)

4、無單點故障:Swift的元數據存儲時完全均勻隨機分佈的,並且與對象文件存儲一樣,元數據也會存儲多份。

swift與HDFS的技術差異

5、在Swift中,元數據呈分佈式,跨集羣複製,而在HDFS中,採用中央系統(Namenode)來維護元數據,這對於HDFS來說,無疑使單點故障點,因而擴展到規模非常大的環境很困難

6、Swift設計時考慮到多租戶架構,而HDFS沒有考慮這個概念(下午學習什麼是多租戶架構)

7、在Swift中,文件可以寫入多次,在併發場景下,以最近一次的的操作爲標準。而在HDFS中,文件寫入一次,而且每次只能有一個文件寫入

8、Swift能夠可靠地存儲數量非常多的大小不一的文件,而HDFS用於存儲數量中等的大文件,來支持數據處理。

三、Swift架構

在這裏插入圖片描述

四、Swift的主要組件

Proxy Server

  • Proxy Server是提供swift api的服務器進程,swift通過Proxy Server
    向外提供基於HTTP和RESET的服務接口,負責swift其餘組件的相互通信。
  • 對於每個客戶端的請求,它將在環中查詢Account、Container或者Object的位置,並相應的轉發請求。由於採用無狀態的REST請求協議,可以進行橫向擴展來均衡負載。
  • 在訪問swift之前,要先通過認證服務獲取訪問令牌,然後在發送的請求中加入頭部信息 X-Auth-Token。

Object Server

  • 對象服務器提供元數據和內容服務,用於存儲、檢索和刪除本地設備上的對象。在文件系統中,對象以二進制的文件的形式存儲,它的元數據存儲在文件系統的擴展屬性中,建議採用默認支持擴展屬性餓XFS文件系統。

  • 每個對象使用對象名稱的哈希值和操作的時間戳組成的路勁來存儲。最後一次的寫操作總可以成功,並確保最新一次的對象版本將會被處理。

Account Server

  • 賬戶服務提供賬戶元數據和統計信息,並維護所含容器列表的服務,每個賬戶的信息被存儲在一個SQLite數據庫中

Container Server

  • 容器服務器提供容器元數據和統計信息,並維護所包含對象列表的服務。容器並不知道對象存在位置,只知道容器裏存的那些對象。這些對象信息以SQLLite數據庫文件的形式存儲,和對象一樣在集羣上做類似的備份。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章