三分鐘帶你入門瞭解openstack的swift項目

前言

一:swift項目

1.1:什麼是swift?有什麼作用?

  • Swift是openstack默認的存儲服務,但是在生產環境中不使用它,因爲swift的機制決定了它會佔用很大的CPU資源
  • Swift是一個高可用分佈式的對象存儲服務,爲Nova子項目提供虛擬機鏡像存儲服務

1.2:Swift架構是怎樣的?

  • Swift 採用完全對稱、面向資源的分佈式系統架構設計,所有組件都可擴展,避免因單點失效而擴散並影響整個系統運轉;通信方式採用非阻塞式 I/O 模式,提高了系統吞吐和響應能力。
  • mark

1.3:Swift有哪些重要組件?

  • 代理服務(Proxy Server)

    對外提供對象服務 API,會根據環的信息來查找服務地址並轉發用戶請求至相應的賬戶、容器或者對象服務;由於採用無狀態的 REST 請求協議,可以進行橫向擴展來均衡負載

  • 認證服務(Authentication Server)

    驗證訪問用戶的身份信息,並獲得一個對象訪問令牌(Token),在一定的時間內會一直有效;驗證訪問令牌的有效性並緩存下來直至過期時間

  • 緩存服務(Cache Server)

    緩存的內容包括對象服務令牌,賬戶和容器的存在信息,但不會緩存對象本身的數據;緩存服務可採用 Memcached 集羣,Swift 會使用一致性散列算法來分配緩存地址

  • 賬戶服務(Account Server)

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

  • 容器服務(Container Server)

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

  • 對象服務(Object Server)

    提供對象元數據和內容服務,每個對象的內容會以文件的形式存儲在文件系統中,元數據會作爲文件屬性來存儲,建議採用支持擴展屬性的 XFS 文件系統

  • 複製服務(Replicator)

會檢測本地分區副本和遠程副本是否一致,具體是通過對比散列文件和高級水印來完成,發現不一致時會採用推式(Push)更新遠程副本,例如對象複製服務會使用遠程文件拷貝工具 rsync 來同步;另外一個任務是確保被標記刪除的對象從文件系統中移除

  • 更新服務(Updater)

當對象由於高負載的原因而無法立即更新時,任務將會被序列化到在本地文件系統中進行排隊,以便服務恢復後進行異步更新;例如成功創建對象後容器服務器沒有及時更新對象列表,這個時候容器的更新操作就會進入排隊中,更新服務會在系統恢復正常後掃描隊列並進行相應的更新處理。

  • 審計服務(Auditor)

    檢查對象,容器和賬戶的完整性,如果發現比特級的錯誤,文件將被隔離,並複製其他的副本以覆蓋本地損壞的副本;其他類型的錯誤會被記錄到日誌中。

  • 賬戶清理服務(Account Reaper)

    移除被標記爲刪除的賬戶,刪除其所包含的所有容器和對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章