- 項目介紹Cinder 是 OpenStack Block Storage 的項目名稱;它為來賓虛拟機 (VM) 提供了持久塊存儲。Cinder塊存儲是虛拟基礎架構中必不可少的元件,是存儲虛拟機鏡像檔案及虛拟機使用的資料的基礎。VM鏡像是短暫的,它們的存儲隻維持在那台虛拟機的生命周期,Cinder提供對塊存儲的管理支援,通過使用iSCSI, 光纖通道或者NFS協定,以及若幹私有協定提供後端連接配接,展現給計算層Nova。
-
Cinder的元件Cinder-api 負責接受和處理Rest請求,并将請求放入RabbitMQ隊列。
Cinder-scheduler 處理任務隊列的任務,并根據預定政策選擇合适的cinder-Volume節點來執行任務。
Cinder-Volume 該服務運作在存儲節點上,管理存儲空間。每個存儲節點都有一個Volume Service,若幹個這樣的存儲節點聯合起來可以構成一個存儲資源池。負責封裝driver,不同的driver負責控制不同的後端存儲。
Cinder-backup 提供cinder中的volume的備份管理功能。
Messaging queue 在塊存儲的元件之間傳遞消息
Database 儲存Volume相關的資訊
- 塊存儲服務的原理
與其他 OpenStack 項目類似,Cinder 的功能通過 API 暴露給儀表闆和指令行。它能夠通過具有具象狀态傳輸 (Representational State Transfer, REST) 的 HTTP API 來通路對象存儲,并使用一個名為 Auth Manager 的 Python 類将身份驗證納入 OpenStack Keystone。
API 解析所有傳入的請求,先驗證請求的合法性,并将合法的請求轉發給消息隊列,排程程式和卷伺服器在該隊列中執行實際的工作。在建立新的卷時,排程程式将會決定哪台主機應對該卷負責。預設情況下,它會選擇擁有最多可用空間的節點。
卷管理程式管理着可動态附加的塊儲存設備,這些裝置也被稱為卷。它們可用作虛拟執行個體的啟動裝置,或作為輔助存儲進行添加。Cinder 還為快照(卷的隻讀副本)提供了一種裝置。然後可以使用這些快照來建立新的卷,以供讀寫使用。
卷通常通過 iSCSI 附加到計算節點。塊存儲也需要某種形式的後端存儲,在預設情況下,該後端存儲是本地卷組上的邏輯卷管理,但可以通過驅動程式将它擴充到外部存儲陣列或裝置。
- 塊存儲服務的搭建以下所有的步驟将在控制節點(Controller Node)上面進行操作。
- 首先配置鏡像服務所需要的資料庫首先在資料庫中建立名為cinder的資料庫:
然後授權cinder使用者對cinder庫擁有完全權限:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SZ5QmMkhzM3QGMzQzLcFTMyIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
-
建立keystone認證加載admin的環境變量,source admin-openrc.sh
建立keystone認證使用者cinder、cinder服務實體,endpoint
- 安裝塊存儲服務軟體包
- 拷貝配置檔案模版,然後修改配置檔案/etc/cinder/cinder.conf
a、首先連接配接資料庫:
b、修改keystone認證:
- 修改消息隊列
d、指定本地的IP
e、指定oslo并發鎖的目錄
- 填充資料庫
啟動服務和開機自啟
接下來配置存儲節點storage node,此處就在計算節點上配置。
在配置前首先添加一塊硬碟/dev/sdb,并安裝必要的軟體包
啟動lvm2-lvmetad
1、建立一個卷組
2、設定權限,修改/etc/lvm/lvm.conf
3、安裝存儲節點的軟體包
4、修改cinder配置檔案/etc/cinder/cinder.conf
a、配置資料庫連接配接
b、配置消息隊列
c、配置keystone認證
d、在預設域指定本機IP
e、在[lvm]域中,指定LVM驅動及卷組名稱,iscsi協定(預設沒有這個域)
f、在預設域中配置允許LVM back
g、在[default],指定glance服務位址
h、在[oslo_concurrency],指定oslo并發鎖定目錄
啟動服務并開機自啟
- 在每個環境腳本中配置鏡像服務用戶端使用版本2的API
- 塊存儲服務的驗證在controller節點執行以下操作:
加載admin環境變量 source admin-openrc.sh
檢視cinder的服務清單
加載demo環境變量, source demo-openrc.sh
建立一個1G的邏輯卷
檢視已有的卷清單