Ceph開發者月報2018年9月版

Ceph開發者月報2018年9月版

來自專欄 Ceph開發者月報2 人贊了文章

本篇為 2018 年度《Ceph 開發者月報》專欄的第九篇,在《Ceph 開發者月報》中,我們 UMCloud 存儲團隊將以月度為單位,為大家分享當月 Ceph 社區的有趣的提交和重要的變更,方便大家即刻掌握一手 Ceph 社區開發資料。每篇將以對象存儲、塊存儲、統一存儲層、集群管理、基礎庫等模塊組織,為大家一一介紹。

本期看點

配置Ceph時如何設置合理的 PG 個數一直是個麻煩的事情,更麻煩的是每次擴容增大 PG 個數之後。如果集群縮容,想將 PG 個數調小之前是不支持的

這個版本支持減少 PG 個數的功能,讓 Ceph 不光能 scale up 還能 scale down。這一點是通過 pg merge 這個特性來實現的。聊點場外,pg merge 早在8年前就有需求了

對象存儲

rgw 支持 user policy 功能

rgw: User Policy ( github.com/ceph/ceph/pu )

在上面的提交中,社區為 RGW 實現了類比 AWS S3 的 User Policy 功能,以從用戶維度對系統中的數據的訪問許可權進行控制管理。

塊存儲

krbd 支持使用存儲池命名空間級別的 image 鏡像

krbd: support for images within namespaces (github.com/ceph/ceph/pu)

在上面的提交中,社區對 krbd 的相關介面進行了完善,使其可以支持使用存儲池命名空間級別的 image 鏡像。

rbd 一致性組支持快照回滾功能

rbd: add group snap rollback method (github.com/ceph/ceph/pu)

在上面的提交中,社區為 RBD 的一致性組新增了 snap rollback 方法,支持將一致性組回滾到指定快照所對應的狀態。

librbd 支持跨存儲池命名空間的 clone 操作

librbd: support v2 cloning across namespaces (github.com/ceph/ceph/pu)

在上面的提交中,社區為 librbd V2 版本的 clone 操作新增了對存儲池命名空間級別的處理的支持。即支持對一個存儲池命名空間下的 Image 鏡像

的 snapshot 快照進行 clone 操作,所得到的新的 Image 鏡像可以位於其他命名空間中。

librbd 支持存儲池和 image 鏡像級別的配置屬性信息的相關操作

librbd: pool and image level config overrides (github.com/ceph/ceph/pu)

在上面的提交中,社區為 librbd 實現了對存儲池或是指定 image 鏡像的相關屬性配置信息進行操作的支持。

主要新增了如下 CLI 命令:

– config image getGet an image-level configuration override.– config image list (config image ls)List image-level configuration overrides.– config image remove (config image rm)Remove an image-level configuration override.– config image setSet an image-level configuration override. – config pool getGet a pool-level configuration override.– config pool list (config pool ls)List pool-level configuration overrides.– config pool remove (config pool rm)Remove a pool-level configuration override.– config pool setSet a pool-level configuration override.

統一存儲層

針對磁碟靜默錯誤完善 deep-scrub 操作處理

os/bluestore: fix deep-scrub operation againest disk silent errors (github.com/ceph/ceph/pu)

在上面的提交中,社區對 deep-scrub 操作進行了完善以保證能夠及時發現並處理磁碟靜默錯誤。

支持 pg merging

osd,mon: implement PG merging (github.com/ceph/ceph/pu)

之前,Ceph 只支持對 PG 進行 split 操作,來增加存儲池的 PG 數,即這一更改操作是單向的,只能單向地增大 PG 數。

在上面的提交中,社區重點實現了 PG Merging 功能,即在後面的版本中,Ceph 也支持對 PG 進行合併操作來縮小存儲

池的 PG 數。至此,Ceph 實現了對 PG 的雙向操作管理,適用的場景將更加全面豐富。

通過將 pgp_num 設置為小於當前 pg_num 來觸發 PG Merging 處理。

ceph status 命令支持返回服務到目前為止處於 active 狀態的時長

mon: include ages in 『ceph status』 (github.com/ceph/ceph/pu)

集群管理

mgr devicehealth 模塊支持周期性定時自啟用

mgr/devicehealth: scrape metrics automatically (github.com/ceph/ceph/pu)

mgr 新增 insights 插件

mgr/insights: insights reporting module (github.com/ceph/ceph/pu)

在上面的提交中,社區為 mgr 實現了 insights 插件,來實現與紅帽 Insights Core 數據分析框架的整合。

insights 插件會對 Ceph 系統信息進行收集,並暴露到 Insights Core 框架中,以對相關係統信息數據進行分析。

當前主要支持對如下兩類系統信息進行收集分析:

  • health: 對過去 24 小時系統的健康信息進行收集、匯總、分析;
  • crash: 對過去 24 小時系統中所有服務的 crash 信息進行收集、匯總、分析;

可以通過如下命令來啟用 insights 插件:

$ ceph mgr module enable insights

mgr 新增 diskprediction 插件

mgr/diskprediction: merge initial version of disk failure prediction (github.com/ceph/ceph/pu)

在上面的提交中,社區在 mgr 中實現了 diskprediction 插件,用來對磁碟的指標數據進行分析,並對潛在的磁碟錯誤進行預言。

該插件主要支持兩種模式,即 雲端模式 和 本地模式。

  • 雲端模式: 當處於雲端模式時,磁碟和 Ceph 系統狀態信息將會被收集並發送到運行於雲端的 DiskPrediction 服務,DiskPrediction 服務

    會對接收到的數據進行分析,並給出磁碟健康狀態信息的分析和預言結果。

  • 本地模式: 當處於本地模式時,將會使用一個內部的分析預言處理模塊來對磁碟和 Ceph 系統狀態信息進行分析,並返回磁碟健康狀態信息的分析和預言結果

    到 Ceph 系統中。

默認情況下,該插件處于禁用模式。可以通過如下命令來進行啟用:

$ ceph mgr module enable diskprediction

通過如下命令來設置處理模式:

$ ceph device set-prediction-mode <local/cloud>

本月提交情況


推薦閱讀:

搬運工:Install Ceph Server on Proxmox VE
大數據與對象存儲的柳暗花明
統一存儲新邊界-UMStor的創新

TAG:Ceph | 雲存儲 | 數據存儲技術 |