OpenStack的架構詳解 10

2021-06-07 21:56:24 字數 2159 閱讀 8734

5.2 object storage如何工作

a) ring

ring 代表磁碟上儲存的實體的名稱和它們的物理位置的對映。accounts, containers, and objects都有單獨的ring。其他元件要在這三者之一進行任何操作,他們都需要合相應的ring進行互動以確定它在集群中的位置。

ring用zones,devices,partitions,和replicas來維護對映,在ring中的每個分割槽都會在集群中預設有三個副本。分割槽的位置儲存在ring維護的對映中。ring也負責確定失敗場景中接替的裝置。(這點類似hdfs副本的複製)。分割槽的副本要保證儲存在不同的zone。ring的分割槽分布在openstack object storage installation所有裝置中。分割槽需要移動的時候,ring確保一次移動最少的分割槽,一次僅有乙個分割槽的副本被移動。

權重能用來平衡分割槽在磁碟驅動上的分布。ring在**伺服器和一些背景程序中使用。

b) proxy server

**伺服器負責將openstack object storage架構中其他部分結合在一起。對於每次請求,它都查詢在ring中查詢account, container, or object的位置,並以此**請求。公有apis也是通過**伺服器來暴露的。

大量的失敗也是由**伺服器來進行處理。比如乙個伺服器不可用,它就會要求ring來為它找下乙個接替的伺服器,並把請求**到那裡。

當物件流進或流出object server時,它們都通過**伺服器來流給使用者,或者通過它從使用者獲取。**伺服器不會緩衝它們。

proxy伺服器的功能可以總結為:查詢位置,處理失敗,中轉物件。

c) object server

object server,是非常簡單的blob儲存伺服器,能儲存、檢索和刪除本地磁碟上的物件,它以二進位制檔案形式存放在檔案系統中,元資料以檔案的擴充套件屬性存放。

物件以源於物件名的hash和操作的時間戳的路徑來存放。上一次寫總會成功,確保最新的版本將被使用。刪除也視作檔案的乙個版本:這確保刪除的檔案也被正確複製,更舊的把本不會因為失敗情形離奇消失。

d) container server

其主要工作是處理物件列表,它不知道物件在**,只是知道哪些物件在乙個特定的container。列表被儲存為sqlite 資料庫檔案,類似物件的方式在集群中複製。也進行了跟蹤統計,包括物件的總數,以及container中使用的總儲存量。

e) account server

它是類似於container server,除了它是負責containers的列表而非物件。

f) replication

設計副本的目的是,在面臨網路中斷或驅動失敗等臨時錯誤條件時,保持系統在一致的狀態。

副本程序會比較本地的資料和每個遠處的副本,以確保他們所有都包含最新的版本。物件副本用乙個hash列表來快速比較每個分割槽的片段,而containe和 account replication 用的是hash和共享的高水印結合的方法。

副本的更新,是基於推送的。對於物件副本,更新是遠端同步檔案到peer。account和container replication通過http or rsync把整個資料庫檔案推送遺失的記錄。

副本也通過tombstone設定最新版本的方式,確保資料從系統中清除。

g) 更新器(updaters)

有時,container 或 account資料不能被立即更新,這通常是發生在失敗的情形或高負載時期。如果乙個更新失敗,該更新會在檔案系統上本地排隊,更新器將處理這些失敗的更新。事件一致性視窗(eventual consistency window)最可能來起作用。比如,假設乙個container伺服器正處於載入之中,乙個新物件正被放進系統,**伺服器一響應客戶端成功,該物件就立即可讀了。然而,container伺服器沒有更新object列表,所以更新就進入佇列,以等待稍後的更新。container列表,因此可能還不會立即包含這個物件。

實際上,一致性視窗只是與updater執行的頻率一樣大,當**伺服器將**清單請求到響應的第乙個container伺服器中,也許甚至還不會被注意。在載入之下的伺服器可能還不是服務後續清單請求的那個。另外兩個副本中的乙個可能處理這個清單。

h) auditors

auditors會檢查objects, containers, 和 accounts的完整性。如果發先損壞的檔案,它將被隔離,好的副本將會取代這個壞的檔案。如果發現其他的錯誤,它們會記入到日誌中。

OpenStack的架構詳解 1

openstack既是乙個社群,也是乙個專案和乙個開源軟體,它提供了乙個部署雲的操作平台或工具集。其宗旨在於,幫助組織執行為虛擬計算或儲存服務的雲,為公有雲 私有雲,也為大雲 小雲提供可擴充套件的 靈活的雲計算。1.openstack是什麼 openstack既是乙個社群,也是乙個專案和乙個開源軟體...

OpenStack架構詳解

目錄 一.openstack架構圖簡析 二.openstack四大節點 控制節點架構 計算節點架構 網路節點架構 儲存節點架構 三.openstack各大元件詳解 元件關係 nova keystone glance cidenr neutron swift horizon 注 具體服務名稱 mysq...

Openstack 架構簡述

概述 本文章相關的靈感 說明 來自於 首先放幾張圖,詳細的解釋了openstack的架構以及網路拓撲結構.架構 拓撲openstack架構詳解 整個openstack由控制節點,計算節點,網路節點,儲存節點四大部分組成 以下架構僅為本人理解,不盡完全,如有錯誤歡迎指出 控制節點架構 控制節點包括以下...