OpenStack - cinder 組件

簡介

cinder 在虛擬機與具體存儲設備之間引入了一層 “邏輯存儲卷” 的抽象,爲虛擬機提供持久化的塊存儲能力,實現虛擬機存儲卷的創建、掛載、卸載、快照等生命週期管理。

cinder 本身並不是一種存儲技術。它只是提供了一箇中間抽象層,爲後端不同的存儲技術提供了統一的接口。不同的塊設備服務廠商在 cinder 中以 driver 的形式實現這些接口來與 OpenStack 進行整合。

cinder 默認使用 LVM 作爲後端存儲。

結構

cinder 主要由 cinder-api、cinder-scheduler、cinder-volume 以及 cinder-backup 組成,它們之間通過 AMQP 消息隊列進行通信。

  • cinder-api :cinder 的 HTTP 接口。
  • cinder-volume :運行在存儲節點上,管理具體存儲設備的存儲空間。
  • cinder-scheduler :根據預定的策略選擇合適的 cinder-volume 節點來處理用戶請求。如果用戶明確指定了具體的存儲節點,則該節點上的 cinder-volume 會進行處理,而無需 cinder-scheduler 的參與。
  • cinder-backup :提供存儲卷的備份功能,將存儲卷備份到存儲後端,如 swfit 。

在這裏插入圖片描述

調度

FilterScheduler 首先使用指定的 Filters 過濾得到符合條件的 cinder-volume 節點;然後對得到的主機列表計算權重並排序,選擇最佳的一個。
在這裏插入圖片描述


管理卷

cinder-volume 用於管理存儲卷的生命週期。

創建好的 volume 一般通過 iSCSI Target 的方式展現給 nova,這樣 nova 就可以通過 iSCSI 協議將其連接到計算節點上供虛擬機使用。

  • iSCSI 屬於傳輸層協議,規定了 iSCSI Target 和 iSCSI Initiator 間的通信機制。
  • iSCSI Target 通常指存儲設備,iSCSI Initiator 則是指通過 iSCSI 協議訪問 iSCSI Target 的客戶端軟件。
    在這裏插入圖片描述

備份

cinder-backup 用於將 volume 備份到其他存儲系統上去,默認使用 swift 作爲備份後端。

不同的備份存儲系統以 driver 的形式得以支持。

  • 創建備份:cinder-backup 通過 RPC 請求 cinder-volume 服務提供需要備份的卷。

    如果該卷處於可用狀態,則直接將其返回給 cinder-backup。

    如果該卷正在被使用,則創建該卷的一份快照或克隆,然後返回快照或克隆給 cinder-backup。

    cinder-backup 收到備份卷後,把該卷掛載到本機,將數據備份到後端備份存儲。

  • 恢復備份:cinder-backup 將需要進行數據還原的卷掛載到本機,然後將數據從備份存儲讀出,恢復到捲上。

發佈了118 篇原創文章 · 獲贊 18 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章