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

本期看點: OSD 支持靈活的替換 WAL,DB 和 Block 分區。

WAL 和 DB 放在 SSD 上,Block 放在 HDD 上,同時多個 HDD 共用同一 SSD 是很多 Ceph 用戶的典型配置。

這個pr (github.com/ceph/ceph/pu) 支持了 Block, DB, WAL 這三個分區的各種合併,分離和遷移,這樣單個 OSD 的運維操作更加靈活了。

對象存儲

RGW 支持 STS 認證

rgw: Code for STS Authentication.

( github.com/ceph/ceph/pu )

在上面的提交中,社區為 RGW 實現了對 STS(Secure Token Service) 認證的支持。通過 STS,可以臨時為某些用戶頒發自定義時效和許可權的訪問憑證。

RGW STS 認證的相關介面與 Amazon STS 的 API 介面保持兼容,但當前僅支持部分介面。

當前 RGW STS 的實現機制是與已有的 Keystone 認證進行集成,通過 Keystone 服務來生成臨時訪問憑證,並對這些訪問憑證進行認證。

RGW 加密處理支持下沉到 Intel QAT 設備中

crypto: QAT based Encryption for RGW

( github.com/ceph/ceph/pu )

之前,在 github.com/ceph/ceph/pu 這一提交中,社區已經支持將壓縮處理下沉到Intel 的 QAT 設備中。在上面的提交中,社區又新增了將 RGW 的加密處理操作下沉到 QAT 設備中,以提升處理效率。

目前僅支持 AES_CBC_256 加密。

RGW 支持在前端 proxy 配置了終止 SSL 連接後仍能對 SSE 加密請求進行處理

rgw: support server-side encryption when SSL is terminated in a proxy

( github.com/ceph/ceph/pu )

正常情況下,若要使用 RGW 的 SSE 服務端加密功能,必須使用 HTTPS 來發送操作請求;若一個 SSE 數據加密請求不是以HTTPS 發送的話,則 RGW 服務端無法判斷接收到的密鑰和數據是否是正確安全的,所以會拒絕處理該請求。

但若是 RGW 前端添加了一層代理,且該代理配置了終止 SSL 連接,則 RGW 在接收到未以 HTTPS 發送來的 SSE 加密請求後,直接拒絕處理顯然是不合理的。

因此,在上面的提交中,社區為 RGW 新增了 rgw_trust_forwarded_https 配置項,來解決上述問題。當 RGW 前端對應有代理伺服器,且配置了終止 SSL 連接時,需要啟用該配置項,以信任來自前端代理的請求信息,使得在這種情況下,RGW 接收到的未以 HTTPS 發送的 SSE 加密請求也能夠被正確處理。

塊存儲

rbd-mirror 支持存儲池級別的配置粒度

rbd-mirror: use pool level config overrides

( github.com/ceph/ceph/pu )

之前,rbd-mirror 的相關配置都是全局範圍內的,即系統中的所有 rbd-mirror 都共享的相同的配置。

在上面的提交中,社區為 rbd-mirror 實現了存儲池級別的 configuration overrides 特性,即可以針對不同的存儲池,為多個 rbd-mirror daemon 指定不同的配置。

librbd 支持配置刪除 image 時自動將其移至 trash 中

librbd: add new configuration option to always move deleted items to the trash

( github.com/ceph/ceph/pu )

在上面的提交中,社區為 librbd 新增了

– rbd_move_to_trash_on_remove

– rbd_move_to_trash_on_remove_expire_seconds

兩個配置項。其中 rbd_move_to_trash_on_remove 配置項用於指定是否在刪除 image 時自動將該image 移到 trash 中。 rbd_move_to_trash_on_remove_expire_seconds 配置項則用於指定刪除時被自動移到 trash 中的 image 在 trash 中會被保存多久。

rbd 新增全局級別配置項操作命令

rbd: add 『config global』 command to get/store overrides in mon config db

( github.com/ceph/ceph/pu )

在上面的提交中,社區為 rbd 新增了 config global 相關的命令集,用於在全局範圍內對 rbd 相關的配置項進行操作。

新增的命令包括:

– config global get *config-entity* *key*

Get a global-level configuration override.

– config global list [–format plain | json | xml] [–pretty-format] *config-entity* List global-level configuration overrides.– config global set *config-entity* *key* *value* Set a global-level configuration override.– config global remove *config-entity* *key* Remove a global-level configuration override.

統一存儲層

osd 新增緩存相關處理命令

osd: add 『cache drop』 and 『cache status』 commands

( github.com/ceph/ceph/pu )

在上面的提交中,社區為 osd 新增了:

  • cache drop
  • cache status

兩個命令。其中, cache drop 命令用於手動對 osd 的緩存進行清理,可以通過執行

ceph tell osd.x cache drop

來對 osd.x 的緩存進行清理,而不需要像之前只能通過重啟 osd 來清理緩存。

cache status 命令用於手動獲取一個 osd 的緩存信息

ceph tell osd.x cache status

集羣管理

mgr 中的 Python 組件支持記錄日誌信息到集羣日誌中

mgr: Add ability to trigger a cluster/audit log message from Python

( github.com/ceph/ceph/pu )

mgr/devicehealth 組件支持對 mon 設備的健康狀態進行檢測和追蹤

mon,mgr: track mon devices like we do OSDS

( github.com/ceph/ceph/pu )

dashboard 支持展示當前所有已登錄的用戶

mgr/dashboard: Display logged in user

( github.com/ceph/ceph/pu )

dashboard 新增配置管理頁面

mgr/dashboard config options add

( github.com/ceph/ceph/pu )

dashboard 新增存儲池管理頁面

mgr/dashboard: Pool management

( github.com/ceph/ceph/pu )

本月提交情況

推薦閱讀:

相關文章