概述
第一個 Ceph 版本是 0.1 ,要回溯到 2008 年 1 月。多年來,版本號方案一直沒變,直到 2015 年 4 月 0.94.1 ( Hammer 的第一個修正版)發布后,為了避免 0.99 (以及 0.100 或 1.00 ?),我們制定了新策略。
-
x.0.z - 開發版(給早期測試者和勇士們)
-
x.1.z - 候選版(用於測試集群、高手們)
-
x.2.z - 穩定、修正版(給用戶們)
x 將從 9 算起,它代表 Infernalis ( I 是第九個字母),這樣我們第九個發布周期的第一個開發版就是 9.0.0 ;后續的開發版依次是 9.0.1 、 9.0.2 等等。
之前的版本號分別為:
Argonaut 0.48版本(LTS) 2012年6月3日
Bobtail 0.56版本(LTS) 2013年1月1日
Cuttlefish 0.61版本 2013年5月7日
Dumpling 0.67版本(LTS) 2013年8月14日
Emperor 0.72版本 2013年11月9日
Firefly 0.80版本(LTS) 2014年5月
Giant Stable October 2014 - April 2015
Hammer LTS April 2015 - November 2016
Infernalis Stable November 2015 - June 2016
Jewel 2016年4月
Kraken 2017年10月
Luminous 2017年10月
mimic 2018年5月
Ceph v12.2 Luminous正式版本是Luminous v12.2.x長期穩定版本的第一個版本。在Kraken(v11.2.z)和Jewel(v10.2.z)后我們做了很多重大修改
在Kraken版本上進行的重要修改
-
通用
Ceph現在有一個內置的簡易DarshBoard,用於監控集群狀態。
-
RADOS
- Bluestore
- ceph-osd的新后端存儲BlueStore已經穩定,是新創建的OSD的默認設置。
BlueStore通過直接管理物理HDD或SSD而不使用諸如XFS的中間文件系統,來管理每個OSD存儲的數據,這提供了更大的性能和功能。 - BlueStore支持Ceph存儲的所有的完整的數據和元數據校驗。
- BlueStore內嵌支持使用zlib,snappy或LZ4進行壓縮。(Ceph還支持zstd進行RGW壓縮,但由於性能原因,不為BlueStore推薦使用zstd)。
- ceph-osd的新后端存儲BlueStore已經穩定,是新創建的OSD的默認設置。
- EC池現在完全支持覆蓋,允許它們與RBD和CephFS一起使用。
- ceph-mgr:
- ceph-mgr是一個新的后台進程,這是任何Ceph部署的必須部分。雖然當ceph-mgr停止時,IO可以繼續,
但是度量不會刷新,並且某些與度量相關的請求(例如,ceph df)可能會被阻止。我們建議您多部署ceph-mgr的幾個實例來實現可靠性。 - ceph-mgr守護進程daemon包括基於REST的API管理。注:API仍然是實驗性質的,目前有一些限制,但未來會成為API管理的基礎。
- ceph-mgr還包括一個Prometheus插件。
- ceph-mgr現在有一個Zabbix插件。使用zabbix_sender,它可以將集群故障事件發送到Zabbix Server主機。
這樣可以方便地監視Ceph群集的狀態,並在發生故障時發送通知。
- ceph-mgr是一個新的后台進程,這是任何Ceph部署的必須部分。雖然當ceph-mgr停止時,IO可以繼續,
- 集群的總體可擴展性有所提高。我們已經成功測試了多達10,000個OSD的集群。
- 目前,每個OSD都具有與其相關聯的設備類(例如,hdd或ssd),允許CRUSH規則將數據簡單地映射到系統中的設備的子集。
通常不需要手動編寫CRUSH規則或手動編輯CRUSH。可以優化CRUSH權重,以保持OSD之間數據的近乎完美的分布。 - 還有一個新的upmap異常處理機制,允許單個PG移動以實現完美的分發(這需要客戶端)。
- 每個OSD目前可以根據后端設備是HDD還是SSD來調整其默認配置。一般不需要手動調整。
- 原型mclock QoS排隊算法已經可用。
- 新增一種退出機制,可以防止OSD出現對當前不能處理IO對象或PG的請求過載情況。
- OSD更換過程簡化,變得更加強大了。
- 您可以使用ceph功能來查詢所有連接的后台程序和客戶端的支持功能和版本。
- 通過ceph osd set-require-min-compat-client連接到集群,您可以配置最舊的Ceph客戶端版本,但 Ceph將阻止您啟用會破壞與這些客戶端的兼容性的功能。
- 包括osd_recovery_sleep,osd_snap_trim_sleep和osd_scrub_sleep的幾個睡眠設置,已經被重新實現,並且可以有效地工作。(這些在某些情況下用於解決問題,限制后台工作。)
- 完成對Luminous的升級后,集群將嘗試將現有池與已知應用(即CephFS,RBD和RGW)相關聯。未與應用程序關聯的使用池將生成健康警告,可以使用新命令手動關聯任何未關聯的池。ceph osd pool application enable
- Bluestore
-
RGW
- RGW支持最終用戶請求服務,通過ElasticSearch進行RGW元數據搜索,並且還支持自定義元數據字段。
查詢語言是一組RESTful API,用戶可以通過其元數據來搜索對象。還添加了允許自定義元數據字段控制的新API。 - RGW支持動態存儲桶索引分片。隨着桶中的對象數量的增加,RGW將自動重新構建桶索引。不需要用戶干預或桶大小容量規划。
- RGW引入了上傳對象的服務器端加密,用於管理加密密鑰的三個選項有:自動加密(僅推薦用於測試設置),客戶提供的類似於Amazon SSE-C規范的密鑰,以及通過使用外部密鑰管理服務 OpenstackBarbician)類似於Amazon SSE-KMS規范。
- RGW具有初步的類似AWS的存儲桶策略API支持。現在,策略是一種表達一系列新授權概念的方式。未來,這將成為附加身份驗證功能的基礎,例如STS和組策略等。
- RGW通過使用rados命名空間合並了幾個元數據索引池。
- 新增S3對象標記API; 只支持GET / PUT / DELETE和PUT。
- RGW多站點支持在桶級啟用或禁用同步。
- RGW支持最終用戶請求服務,通過ElasticSearch進行RGW元數據搜索,並且還支持自定義元數據字段。
-
RBD
- RBD目前通過新的–data-pool選項來創建rbd,對EC池具有完整穩定的支持。
- RBD鏡像的rbd-mirror后台進程是可用的。我們建議您多部署幾個rbd鏡像來實現可靠性。
- RBD鏡像的rbd-mirror守護進程使用每個實例的唯一Ceph用戶ID來支持新的Dashboard。
- 在創建集群期間,不再自動創建默認的’rbd’池。另外,當沒有指定池時,rbd CLI使用的默認池的名稱可以通過新的rbd default pool = <pool name>配置選項來覆蓋。
- 通過新的rbd trash命令初始支持延遲映像刪除。鏡像,即使是由克隆主動使用的鏡像,也可以移動到垃圾桶,並在以后刪除。
- 新的管理池級別的rbd mirror poolpromote和rbd mirror pool demote命令可以批量提升/降級池內所有的鏡像文件。
- 鏡像現在可以通過rbd mirroringreplay delay = <seconds>配置選項支持可配置的復制延遲。
- 當對象映射功能啟用時,可改進丟棄處理功能。
- RBD import 和 copy命令現在可以檢測稀疏並保留稀疏區域。
- 快照可以包含創建時間戳。
- 為RBD客戶端指定了用戶授權功能簡化。 使用RBD功能配置文件的一般語法是“mon’profile rbd’osd’profile rbd [-read-only] [pool = {pool-name} [,…]]’”。
-
CephFS
- 多MDS已經穩定,主MDS數量可以根據需求進行調整。
- CephFS目錄分片已經穩定的,默認情況下在新的文件系統上啟用。
要使其在現有的文件系統上啟動,要使用“ceph fs set<fs_name> allow_dirfrags”。大型或非常繁忙的目錄被分割並(可能)自動分布在多個MDS后台駐留程序中。 - 在不需要自動負載均衡的情況下,目錄子樹可以明確固定到特定的MDS后台程序。
- 客戶端密鑰現在可以使用新的ceph fs authorize命令創建。
- 當在具有CephFS的Pool上運行’df’命令時,結果顯示的內容是使用和可用的文件存儲空間數據池(僅限fuse客戶端)。
-
Miscellaneous
- Debian Stretch現在正在構建版本包。QA僅限於CentOS和Ubuntu(xenial and trusty),我們現在構建的發行版包括:
- CentOS 7 (x86_64 and aarch64)
- Debian 8 Jessie (x86_64)
- Debian 9 Stretch (x86_64)
- Ubuntu 16.04 Xenial (x86_64 and aarch64)
- Ubuntu 14.04 Trusty (x86_64)
- FreeBSD的Ceph的第一個版本可用。通過常規FreeBSD端口和軟件包發布系統,最新可用版本:net/ceph-devel。
- Debian Stretch現在正在構建版本包。QA僅限於CentOS和Ubuntu(xenial and trusty),我們現在構建的發行版包括:
在Jewel版本上進行的重要修改
-
RADOS
- 現在默認為AsyncMessenger (ms type = async)的傳統SimpleMessenger。最明顯的區別是
我們現在使用固定大小的線程池進行網絡連接(而不是使用SimpleMessenger,一個socket兩個線程)。 - 優化OSD故障檢測時間,而以前的心跳超時(默認為20秒)。
- 優化OSDMaps的代碼量。
- 集群在進行重平衡/數據恢復時,OSD會停止Scrub。
- 現在默認為AsyncMessenger (ms type = async)的傳統SimpleMessenger。最明顯的區別是
-
RGW
- RGW現在支持S3多對象復制API。
- 現在可以離線重塑現有的分支。離線目前,桶重塑要求所有IO(特別是寫入)到特定的桶是靜止的。(用於自動在線重塑Luminous的新功能。)
- RGW現在支持對象的數據壓縮。
- Civetweb版本已升級到1.8。
- 現在支持Swift靜態網站API(前提支持S3)。
- 添加了S3 bucket生命周期API。注意目前只支持對象到期。
- 支持自定義搜索過濾器已添加到LDAP認證中實現。
- 對NFS版本3的支持已添加到RGW NFS網關。
-
RBD
- image快照的數量可配置最大值。
- rbd Python API現在支持異步IO操作。