Rocky版新功能集錦之二:Cinder

摘要:8月31日,備受業界關注的OpenStack第18個版本Rocky正式發佈。在人工智能,機器學習,NFV和邊緣計算等用戶的驅動下,Rocky版本的OpenStack變得比以往更強大,它帶來了數十種增強功能,並支持各種硬件架構,包括裸機管理服務等,這些更新和升級能夠很好的滿足基礎設施的新需求。OpenStack正力爭爲業界提供一個開放,完善,穩定,功能齊全的最優解決方案。今天將圍繞Rocky版本的Cinder項目,對項目的新特性進行展示,業界需要掌握的關鍵點都在這裏。

Rocky版新功能集錦之二:Cinder

Cinder簡介

Cinder即塊存儲服務,爲實例提供了塊存儲設備。塊存儲服務提供了管理卷的基礎架構以及通過與計算服務nova的合作,能夠將卷掛載到實例上。塊存儲服務同時能管理卷的快照、卷的備份以及卷的類型。

Cinder架構及流程圖

Rocky版新功能集錦之二:Cinder

Cinder組件解讀

cinder-api:接收API請求,同時將請求送到cinder-volume中來執行操作。

cinder-volume:與底層存儲、cinder-scheduler以及消息隊列等諸多進行直接交互。運行cinder-volume的節點被稱作爲存儲節點。現在有很多的底層driver來適配不同的存儲後端,例如rbd(ceph集羣),lvm,nfs等。

cinder-scheduler:調度器用來選擇合適的cinder-volume節點來進行volume的最終創建。其功能類似於計算服務中的nova-scheduler。

cinder-backup:備份服務提供了將任何類型的volume備份至存儲後端。和cinder-volume類似,擁有driver的設計架構,適配了很多的存儲後端,例如ceph,swift等。

Cinder Rocky新特性

scheduler插件能獲知operation類型

現在對於scheduler插件來說,operation的類型是可知的,例如操作到底是create_volume還是migrate_volume是可以從RequestSpec中獲取。這樣帶來的好處就是,廠商各自寫的scheduler就可以針對某些特定的操作進行過濾,而不必所有的操作。現在支持的operation值有如下:

  • create_volume
  • extend_volume
  • create_snapshot
  • retype_volume
  • migrate_volume
  • manage_existing
  • manage_existing_snapshot
  • create_group

Code Reivew鏈接:點擊這裏

隨容量變化的QoS規格

R版本之前,已經支持設置固定QoS的功能。現在能依據比例決定性能,設置per_gb容量的QoS規格即容量的大小決定了性能的高低。一個卷類型可以綁定多個QoS規格,最後傳給消費者生效。支持的QoS規格有如下:

  • read_iops_sec_per_gb // 每秒每GiB的讀IOPs
  • write_iops_sec_per_gb // 每秒每GiB的寫IOPs
  • total_iops_sec_per_gb // 每秒每GiB的總IOPs
  • read_bytes_sec_per_gb // 每秒每GiB的讀吞吐量(字節)
  • write_bytes_sec_per_gb // 每秒每GiB的寫吞吐量(字節)
  • total_bytes_sec_per_gb // 每秒每GiB的總吞吐量(字節)

例如:設置total_iops_sec_per_gb爲30,total_bytes_sec_per_gb爲1048576(1MiB),然後根據這個QoS創建100GiB的volume,則最後volume的限制爲3000總IOPs和100MiB/s吞吐量。

Code Review鏈接:點擊這裏

隨容量變化的最小值QoS規格

由於過小的volume而導致分配到計算結果非常小的IOPs或者吞吐量。由此,可以設置per_gb的最小值來保證可以分配到比較客觀的QoS。支持的QoS規格有如下:

  • read_iops_sec_per_gb_min // 每秒每GiB的最小讀IOPs
  • write_iops_sec_per_gb_min // 每秒每GiB的最小寫IOPs
  • total_iops_sec_per_gb_min // 每秒每GiB的最小總IOPs
  • read_bytes_sec_per_gb_min // 每秒每GiB的最小讀吞吐量(字節)
  • write_bytes_sec_per_gb_min // 每秒每GiB的最小寫吞吐量(字節)
  • total_bytes_sec_per_gb_min // 每秒每GiB的最小總吞吐量(字節)

Code Review鏈接:點擊這裏

備份支持設置可用域AZ

從微版本3.51及以上開始,cinder backup的創建支持接收可用域AZ即指定備份存放的AZ。可以通過CLI來創建指定AZ,如下命令:

cinder --os-volume-api-version 3.51 backup-create <volume> --availability-zone AVAILABILITY_ZONE ……

Code Review鏈接:點擊這裏

卷類型支持設置可用域AZ

對於卷類型,AZ已經被支持了,如下:

  • availability_zones現在已經是AZ volume type的一個預留值。管理員可以通過爲volume type設置key/value例如availability_zones: az1,az2來做AZ的限制。
  • availability_zones只能在creating或者retyping卷的時候用來過濾backends。
  • 從微版本3.52及以上開始,卷類型能通過extra spec進行過濾查詢。

Code Review鏈接:點擊這裏

備份服務支持多線程

Cinder backup服務現在支持運行多進程來儘可能的利用多核的優勢。在通過併發執行多個壓縮備份或者恢復的時候,性能方面有顯著的提升。進程數量可以通過backup_worker進行配置。

Code Review鏈接:點擊這裏

從image創建volume時添加image簽名認證

在glance創建image時,如果extra_properties中存在CERT_UUID、HASH_METHOD、SIGNATURE以及KEY_TYPE時,會生成image的簽名。此時,如果從image創建volume,則會對image進行簽名認證,如果簽名認證失敗,則不會創建相應的volume,狀態置爲error。

默認現在爲開啓簽名認證,當然管理員也可以通過更新verify_glance_signatures來更改行爲。

同時,會往cinder庫中的volume_glance_metadata表中添加一個附加的image元數據signature_verified來標識在創建的過程中籤名認證是否被執行了。

Code Review鏈接:點擊這裏

cinder-manage命令新增reset_active_backend

場景爲,A爲主節點,B爲從節點,當A掛掉後,故障轉移從A到B後,需要一個機制能夠將B提升爲master backend,這樣B能夠複製到重新準備的C後端。

因此,命令reset_active_backend能夠直接重置backend而不需要手動的修改數據庫。

usage: cinder-manage db reset_active_backend [-h] [--enable-replication]
[--active-backend-id ACTIVE_BACKEND_ID]
--backend-host BACKEND_HOST
optional arguments:
-h, --help show this help message and exit
--enable-replication Set replication status to enabled (default: False).
--active-backend-id ACTIVE_BACKEND_ID
Change the active backend ID (default: None).
--backend-host BACKEND_HOST
The backend host name.

Code Review鏈接:點擊這裏

RBD驅動支持Active-Active的複製

RBD驅動添加支持Active-Active的複製。允許用戶配置multiple volume backends,它們參與複製且均來自於同一集羣的成員。

Code Review鏈接:點擊這裏

針對RBD驅動的rbd_exclusive_cinder_pool參數設置

如果查詢每一個image(rbd)的預分配的大小,消耗大量的時間去採集provisioned_capacity_gb,而此時所使用的pool只供給cinder服務使用,那麼爲了提高reporting的速度以及取消大小的採集,我們可以設置rbd_exclusive_cinder_pool此參數。

Code Review鏈接:點擊這裏

RBD驅動list_manageable_snapshots

通過RBD驅動獲取rbd backend中可管理的snapshots。

Code Review鏈接:點擊這裏

RBD驅動報告backend狀態

在獲取volume service狀態時,返回backend_state字段用於標識backend狀態。
Code Review鏈接:點擊這裏

以上是對Cinder Rocky的新特性進行簡單概述,欲瞭解其他第三方驅動更新及其他特性,可以參考“鏈接”,掌握詳細信息。

搞個大事件

Rocky版新功能集錦之二:Cinder

值此Rocky版本發佈之際,九州雲將於10月10日上午10:00,正式線上同步發佈全球首款基於 Rocky版本第七代全新開源雲管理平臺 ——Animbus® 7.0系列產品。

10月10日10點,誠邀業界同仁一同品鑑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章