Rocky版新功能集錦之二:Cinder
摘要:8月31日,備受業界關注的OpenStack第18個版本Rocky正式釋出。在人工智慧,機器學習,NFV和邊緣計算等使用者的驅動下,Rocky版本的OpenStack變得比以往更強大,它帶來了數十種增強功能,並支援各種硬體架構,包括裸機管理服務等,這些更新和升級能夠很好的滿足基礎設施的新需求。OpenStack正力爭為業界提供一個開放,完善,穩定,功能齊全的最優解決方案。今天將圍繞Rocky版本的Cinder專案,對專案的新特性進行展示,業界需要掌握的關鍵點都在這裡。
Cinder簡介
Cinder即塊儲存服務,為例項提供了塊儲存裝置。塊儲存服務提供了管理卷的基礎架構以及通過與計算服務nova的合作,能夠將卷掛載到例項上。塊儲存服務同時能管理卷的快照、卷的備份以及卷的型別。
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版本釋出之際,九州雲將於10月10日上午10:00,正式線上同步釋出全球首款基於 Rocky版本第七代全新開源雲管理平臺 ——Animbus® 7.0系列產品。
10月10日10點,誠邀業界同仁一同品鑑。