讀古今文學網 > OpenStack系統架構設計實戰 > 第3章 存儲管理(Cinder) >

第3章 存儲管理(Cinder)

3.1 Cinder的架構

OpenStack早期版本是使用nova-volume為雲平台提供持久性塊存儲服務器的。從Folsom版本後,就把作為Nova組成部分的nova-volume分離了出來,形成了獨立的Cinder組件。

Cinder本身並不直接提供塊存儲設備實際的管理和服務,而是在虛擬機和具體的存儲設備之間引入一個抽像的「邏輯存儲卷」。Cinder通過添加了不同廠家的DRIVE來整合多種廠家的後端存儲設備,並通過提供統一的API接口的方式為雲平台提供持久性的塊設備存儲服務,類似於Amazon的EBS(Elastic Block Storage)。

Cinder的架構如圖3-1所示。

圖3-1 Cinder架構

從架構圖可以看出,Cinder主要由4部分服務組成。

1)API服務器:cinder-api是主要的服務接口,負責接受和處理外界的API請求,並將請求放入RabbitMQ隊列,交由後端執行。

2)調度器服務:處理任務隊列的任務,並根據預定策略選擇合適的卷服務節點來執行任務。目前版本的Cinder僅僅提供了一個簡單的調度器,該調度器選擇卷數量最少的一個活躍節點來創建卷。

3)卷服務:該服務運行在存儲節點上,管理存儲空間,處理Cinder數據庫的維護狀態的讀寫請求,通過消息隊列和直接在塊存儲設備或軟件上與其他進程交互。每個存儲節點都有一個卷服務,若干個這樣的存儲節點聯合起來可以構成一個存儲資源池。

4)備份服務:提供把Cinder卷備份到備份存儲設備上去的服務,如Swift和Ceph的對象。