天天看點

Cinder塊存儲服務

  1. 項目介紹​Cinder 是 OpenStack Block Storage 的項目名稱;它為來賓虛拟機 (VM) 提供了持久塊存儲。Cinder塊存儲是虛拟基礎架構中必不可少的元件,是存儲虛拟機鏡像檔案及虛拟機使用的資料的基礎。VM鏡像是短暫的,它們的存儲隻維持在那台虛拟機的生命周期,Cinder提供對塊存儲的管理支援,通過使用iSCSI, 光纖通道或者NFS協定,以及若幹私有協定提供後端連接配接,展現給計算層Nova。​
  2. Cinder的元件​Cinder-api 負責接受和處理Rest請求,并将請求放入RabbitMQ隊列。​

    Cinder-scheduler 處理任務隊列的任務,并根據預定政策選擇合适的cinder-Volume節點來執行任務。​

    Cinder-Volume 該服務運作在存儲節點上,管理存儲空間。每個存儲節點都有一個Volume Service,若幹個這樣的存儲節點聯合起來可以構成一個存儲資源池。負責封裝driver,不同的driver負責控制不同的後端存儲。​

    Cinder-backup 提供cinder中的volume的備份管理功能。​

    Messaging queue 在塊存儲的元件之間傳遞消息​

    Database 儲存Volume相關的資訊​

  3. 塊存儲服務的原理

與其他 OpenStack 項目類似,Cinder 的功能通過 API 暴露給儀表闆和指令行。它能夠通過具有具象狀态傳輸 (Representational State Transfer, REST) 的 HTTP API 來通路對象存儲,并使用一個名為 Auth Manager 的 Python 類将身份驗證納入 OpenStack Keystone。​

API 解析所有傳入的請求,先驗證請求的合法性,并将合法的請求轉發給消息隊列,排程程式和卷伺服器在該隊列中執行實際的工作。在建立新的卷時,排程程式将會決定哪台主機應對該卷負責。預設情況下,它會選擇擁有最多可用空間的節點。​

卷管理程式管理着可動态附加的塊儲存設備,這些裝置也被稱為卷。它們可用作虛拟執行個體的啟動裝置,或作為輔助存儲進行添加。Cinder 還為快照(卷的隻讀副本)提供了一種裝置。然後可以使用這些快照來建立新的卷,以供讀寫使用。​

卷通常通過 iSCSI 附加到計算節點。塊存儲也需要某種形式的後端存儲,在預設情況下,該後端存儲是本地卷組上的邏輯卷管理,但可以通過驅動程式将它擴充到外部存儲陣列或裝置。​

  1. 塊存儲服務的搭建以下所有的步驟将在控制節點(Controller Node)上面進行操作。
  1. 首先配置鏡像服務所需要的資料庫首先在資料庫中建立名為cinder的資料庫:

然後授權cinder使用者對cinder庫擁有完全權限:​

Cinder塊存儲服務
  1. 建立keystone認證加載admin的環境變量,source admin-openrc.sh

    建立keystone認證使用者cinder、cinder服務實體,endpoint

Cinder塊存儲服務
Cinder塊存儲服務
Cinder塊存儲服務
Cinder塊存儲服務
Cinder塊存儲服務
  1. 安裝塊存儲服務軟體包
  2. 拷貝配置檔案模版,然後修改配置檔案/etc/cinder/cinder.conf

a、首先連接配接資料庫:​

Cinder塊存儲服務

b、修改keystone認證:​

Cinder塊存儲服務
Cinder塊存儲服務
  1. 修改消息隊列​
Cinder塊存儲服務
Cinder塊存儲服務

d、指定本地的IP​

Cinder塊存儲服務

e、指定oslo并發鎖的目錄​

Cinder塊存儲服務
  1. 填充資料庫

啟動服務和開機自啟​

Cinder塊存儲服務

接下來配置存儲節點storage node,此處就在計算節點上配置。​

在配置前首先添加一塊硬碟/dev/sdb,并安裝必要的軟體包​

Cinder塊存儲服務
Cinder塊存儲服務

啟動lvm2-lvmetad​

Cinder塊存儲服務

1、建立一個卷組​

Cinder塊存儲服務

2、設定權限,修改/etc/lvm/lvm.conf​

Cinder塊存儲服務

3、安裝存儲節點的軟體包​

Cinder塊存儲服務

4、修改cinder配置檔案/etc/cinder/cinder.conf​

a、配置資料庫連接配接​

Cinder塊存儲服務

b、配置消息隊列​

Cinder塊存儲服務
Cinder塊存儲服務

c、配置keystone認證​

Cinder塊存儲服務
Cinder塊存儲服務

d、在預設域指定本機IP​

Cinder塊存儲服務

e、在[lvm]域中,指定LVM驅動及卷組名稱,iscsi協定(預設沒有這個域)​

Cinder塊存儲服務

f、在預設域中配置允許LVM back​

Cinder塊存儲服務

g、在[default],指定glance服務位址​

Cinder塊存儲服務

h、在[oslo_concurrency],指定oslo并發鎖定目錄​

Cinder塊存儲服務

啟動服務并開機自啟​

Cinder塊存儲服務
  1. 在每個環境腳本中配置鏡像服務用戶端使用版本2的API​
  1. 塊存儲服務的驗證​在controller節點執行以下操作:​
Cinder塊存儲服務

加載admin環境變量 source admin-openrc.sh​

檢視cinder的服務清單​

Cinder塊存儲服務

加載demo環境變量, source demo-openrc.sh​

建立一個1G的邏輯卷​

Cinder塊存儲服務

檢視已有的卷清單​

Cinder塊存儲服務