本期看點:
1. librbd: 實現了在 ceph-immutable-object-cache 裏緩存 parent image librbd: shared read-only cache hook #27285
https://github.com/ceph/ceph/pull/27285 2. 支持為存儲桶添加標籤,幫助用戶整理和分類存儲桶資源
rgw: bucket tagging #27993 https://github.com/ceph/ceph/pull/27993
本篇為 2019 年度《Ceph 開發者月報》專欄的第六篇,在《Ceph 開發者月報》中,我們 UMCloud 存儲團隊將以月度為單位,為大家分享當月 Ceph 社區的有趣的提交和重要的變更,方便大家即刻掌握一手 Ceph 社區開發資料。
每篇將以對象存儲、塊存儲、文件存儲、統一存儲層、集羣管理、基礎庫等模塊組織,為大家一一介紹。 對象存儲
1. 支持為存儲桶添加標籤,幫助用戶整理和分類存儲桶資源 rgw: bucket tagging #27993
https://github.com/ceph/ceph/pull/27993 2. 支持 S3 對象鎖定。可以用 write-once-read-many (WORM) 的模式存儲對象,並通過鎖定對象防止對象在一段時間內不被刪除或者修改 rgw: add S3 object lock feature to support object worm #26538
https://github.com/ceph/ceph/pull/26538
object lock提供了以下兩種方式來管理對象保留:retention periods 和 legal hold
- retention period: 指定對象可以保持鎖定狀態的固定時間段。在該時間段內,對象將受 WORM 保護,不能被覆蓋或刪除。
- legal hold: 提供的保護與保留週期相同,但沒有到期日期。legal hold 將一直有效,直至用戶明確將其刪除。
legal hold 與 retention period 無關,對象可以同時使用 legal hold 與 retention period。
上面的 PR 實現了 6 個 API:
- PUT/GET bucket object lock
- PUT/GET object retention
- PUT/GET object legal hold
3. 新增獲取所有 realms 的 Restful API rgw: add 『GET /admin/realm?list』 api to list realms #28156
https://github.com/ceph/ceph/pull/28156
塊存儲
1. librbd: 實現了在 ceph-immutable-object-cache 裏緩存 parent image librbd: shared read-only cache hook #27285
https://github.com/ceph/ceph/pull/27285 在 2019/03 月的 Ceph 開發者月報 裏提到過,Ceph 裏實現了一個可以為 RBD 和 RGW 提供一個共享的只讀的 cache daemon: ceph-immutable-object-cache,可以用於緩存集羣的對象。 上面的 PR 實現了在 ceph-immutable-object-cache 為 librbd 緩存 parent image。 眾所周知,塊存儲常用於虛擬桌面託管,在 VDI (虛擬桌面基礎架構) 解決方案裏,虛擬機從同一鏡像裏克隆出來,所有這些虛機區分只有主機名和 IP,從集羣裏重新讀取的 parent image 其實很大部分是重合的。如果本地有 parent image 的緩存,不僅可以加快讀取速度降低等待事件,還能減少主機到集羣的網路流量。