您好,登錄后才能下訂單哦!
openstack中存儲可以分為兩類,如下圖所示:
目前openstack支持三種類型的持久存儲:塊存儲、對象存儲和文件系統存儲
因為目前Manila使用較少,重點為CInder和Swift
Cinder在OpenStack中的位置和作用
Cinder的核心功能是對卷的管理,允許對卷、卷的類型、卷的快照、卷備份進行處理。它為后端不同的存儲設備提供給了統一的接口,不同的塊設備服務廠商在Cinder中實現其驅動,可以被Openstack整合管理
Cinder API對外提供REST API,對操作需求進行解析,并調用處理方法:
Cinder scheduler負責收集后端上報的容量,能力信息,根據設定的算法完成卷到指定cinder-volume的調度,它通過過濾和稱權,篩選出合適的后端:
根據后端的能力進行篩選
Cinder volume多節點部署,使用不同的配置文件、接入不同的后端設備,由各存儲廠商插入Driver代碼與設備交互,完成設備容量和能力信息收集,卷操作等。
Cinder默認的后端驅動是LVM
Cinder-volume會定期收集底層后端的容量信息,并通知Scheduler更新內存中的Backend信息
創建卷類型的目的是為了篩選不同的后端存儲,例如SSD,STAT,高性能,低性能,通過創建不同的自定義卷類型,創建卷時自動給篩選出合適的后端存儲
提取收到的請求參數
通過配置的filter和輸入參數后端進行過濾
Weigher計算后端進行權重
選取最優的Backend并通過消息列隊將請求發送到指定的后端
和Nova Scheduler類似,Cinder Scheduler也是經過Filter刪選合適條件的后端,然后使用Weigher計算后端進行權重排序,最終選擇出最合適的后端存儲
提供接收到的請求參數
調用對應的Driver在后端創建世紀的卷
使用Driver返回的模型更新數據庫中的記錄
掛卷流程:掛卷時通過Nova和Cinder的配合最終將遠端的卷連接到虛擬機所在的Host節點上,并最終通過虛擬機管理程序映射到內部的虛擬機中
Swift提供高度可用、分布式、最終一致的對象存儲服務
Swift并不是文件系統或者試試的數據存儲系統,它稱為對象存儲,用于永久類型的靜態數據的長期存儲,這些存儲可以檢索,調整,必要時進行更新
最蛇和存儲的數據類型的例子是虛擬機鏡像,圖片存儲,郵件存儲和存檔備份
因為沒有中心的單元或主控節點,Swift提供了更強的擴展性,冗余和持久性
Swift經常用于存儲鏡像或者用于存儲虛擬機實例卷的備份副本
Swift應用
鏡像存儲后端:在Openstack中與鏡像服務Glance結合,為其存儲鏡像文件
靜態數據存儲:由于swift的擴展能力,適合存儲日志文件和數據備份倉庫
Swift中對象存儲URL如下所示:
https://swift.example.com/va/account/container/object
URL有兩個部分:集權位置和存儲位置
集群位置:swift.example.com/v1/
存儲位置(對象):/account/containr/oject
存儲位置有如下三種:
/account
賬戶存儲位置是唯一命名的存儲區域,其中包含賬戶本身的元數據(描述性信息)以及賬戶中的容器列表
/account/container
容器存儲位置是賬號內的用戶定義的存儲區域,其中包含容器本身和容器中的對象列表的元數據
/account/container/object
對象存儲位置存儲了數據對象及元數據的位置。
Proxy Server:對外提供對象服務API,由于采用無狀態的REST請求協議,可以進行橫向擴展來負載均衡
Account Server:提供賬戶元數據和統計信息,并維護所含容器列表的服務,每個賬號的信息被存儲在一個SQLite數據庫中
Container Server:提供容器元數據和統計信息,并維護所含對象列表的服務,每個容器的信息也存儲在一個SQLite數據庫中
Object Server:提供對象元數據和內容服務,每個對象的內容會以文件的形式存儲在文件系統中,元數據會作為文件屬性來存儲
Replicator:檢測本地分區副本和遠程副本是否一致,發現不一致時會采用推式(Push)更新遠程副本,并且確保被標記刪除的對象從該文件系統中移除
Updater:當對象由于高負載的原因而無法立即更新時,任務將會被序列化在本地文件系統中進行排隊,以便服務恢復后進行異步更新
Auditor:檢查對象,容器和賬戶的完整性,如果發現比特級錯誤,文件將被隔離,并復制其他的副本以覆蓋本地損壞的副本;其他類型錯誤會被記錄到日志中
Account Reaper:移除標記為刪除的賬戶,刪除其所包含的所有容器和對象
Swift通過Proxy server向外提供基于HTTP的REST服務接口,對賬戶、容器和對象進行CRUD等操作
三層邏輯結構:Accout/Contianer/Object
每層節點數沒有限制,可以任意擴展
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。