通用功能:算法
目前,Ceph擁有一個操做簡單,基於Web的內置儀表板,用於監控羣集狀態。後端
(Ceph Dashboard具體能夠參閱Ceph官網中文文檔:Ceph luminous 新功能以內置dashboard)服務器
RADOS:
BlueStore:app
- ceph-osd的新後端存儲BlueStore已經穩定,是新建立的OSD的默認設置。 BlueStore經過直接管理物理HDD或SSD而不使用諸如XFS的中間文件系統,來管理每一個OSD存儲的數據,這提供了更大的性能和功能。
- BlueStore支持Ceph存儲的全部的完整的數據和元數據校驗。
- BlueStore內嵌支持使用zlib,snappy或LZ4進行壓縮。(Ceph還支持zstd進行RGW壓縮,但因爲性能緣由,不爲BlueStore推薦使用zstd)。
- 擦除編碼池如今徹底支持覆蓋,容許它們與RBD和CephFS一塊兒使用。
ceph-mgr:負載均衡
- ceph-mgr是一個新的後臺進程,這是任何Ceph部署的必須部分。雖然當ceph-mgr中止時,IO能夠繼續,可是度量不會刷新,而且某些與度量相關的請求(例如,ceph df)可能會被阻止。咱們建議您多部署ceph-mgr的幾個實例來實現可靠性。
- ceph-mgr後臺進程包括一個基於REST的管理API。 API仍然處於實驗階段,有必定的限制,但將來將成爲Ceph基於API管理的基礎。
- 集羣的整體可擴展性有所提升。咱們已經成功測試了多達10,000個OSD的集羣。
- 目前,每一個OSD都具備與其相關聯的設備類(例如,hdd或ssd),容許CRUSH規則將數據簡單地映射到系統中的設備的子集。一般不須要手動編寫CRUSH規則或手動編輯CRUSH。
- 能夠優化CRUSH權重,以保持OSD之間數據的近乎完美的分佈。
- 還有一個新的upmap異常處理機制,容許單個PG移動以實現完美的分發(這須要客戶端)。
- 每一個OSD目前能夠根據後端設備是HDD仍是SSD來調整其默認配置。通常不須要手動調整。
- 原型mclock QoS排隊算法如今是可用的;
- 如今有一種退出機制,能夠防止OSD出現對當前不能處理IO對象或PG的請求過載狀況。
- OSD更換過程簡化,變得更增強大了。
- 您可使用ceph功能來查詢全部鏈接的後臺程序和客戶端的支持功能和版本。
- 經過ceph osdset-require-min-compat-client鏈接到集羣,您能夠配置最舊的Ceph客戶端版本,但 Ceph將阻止您啓用會破壞與這些客戶端的兼容性的功能。
- 包括osd_recovery_sleep,osd_snap_trim_sleep和osd_scrub_sleep的幾個睡眠設置,已經被從新實現,而且能夠有效地工做。(這些在某些狀況下用於解決問題,限制後臺工做。)
RGW:
- 目前,RGW支持最終用戶請求服務,經過ElasticSearch進行RGW元數據搜索,而且還支持自定義元數據字段。查詢語言是一組RESTful API,用戶能夠經過其元數據來搜索對象。還添加了容許自定義元數據字段控制的新API。
- RGW支持動態存儲桶索引分片。隨着桶中的對象數量的增長,RGW將自動從新構建桶索引。不須要用戶干預或桶大小容量規劃。
- RGW引入了上傳對象的服務器端加密,用於管理加密密鑰的三個選項有:自動加密(僅推薦用於測試設置),客戶提供的相似於Amazon SSE-C規範的密鑰,以及經過使用外部密鑰管理服務 OpenstackBarbician)相似於Amazon SSE-KMS規範。
- RGW具備初步的相似AWS的存儲桶策略API支持。如今,策略是一種表達一系列新受權概念的方式。將來,這將成爲附加身份驗證功能的基礎,例如STS和組策略等。
- RGW經過使用rados命名空間合併了幾個元數據索引池。
RBD:
- RBD目前經過新的–data-pool選項來建立rbd,對擦除編碼池具備完整的,穩定的支持。
- RBD鏡像的rbd-mirror後臺進程是可用的。咱們建議您多部署幾個rbd鏡像來實現可靠性。
- 在建立集羣期間,再也不自動建立默認的「rbd」池。另外,當沒有指定池時,rbd CLI使用的默認池的名稱能夠經過新的rbd default pool = <pool name>配置選項來覆蓋。
- 經過新的rbd trash CLI命令初始支持延遲映像刪除。鏡像,即便是由克隆主動使用的鏡像,也能夠移動到垃圾桶,並在之後刪除。
- 新的管理池級別的rbd mirror poolpromote和rbd mirror pool demote命令能夠批量提高/降級池內全部的鏡像文件。
- 鏡像如今能夠經過rbd mirroringreplay delay = <seconds>配置選項支持可配置的複製延遲。
- 當對象映射功能啓用時,可改進丟棄處理功能。
- rbd CLI導入和複製命令如今能夠檢測稀疏並保留稀疏區域。
- 快照能夠包含建立時間戳。
CephFS:
- 如今,多個活動的MDS後臺程序是穩定的。活動的MDS服務器的數量能夠基於活動的CephFS文件系統進行上下調整。
- CephFS目錄分片如今是穩定的,默認狀況下在新的文件系統上啓用。要使其在現有的文件系統上啓動,要使用「ceph fs set<fs_name> allow_dirfrags」。大型或很是繁忙的目錄被分割並(可能)自動分佈在多個MDS後臺駐留程序中。
- 在不須要自動負載均衡的狀況下,目錄子樹能夠明確固定到特定的MDS後臺程序。
Miscellaneous:
- Debian Stretch如今正在構建版本包。咱們如今構建的發行版包括:
- CentOS 7 (x86_64and aarch64)
- Debian 8 Jessie(x86_64)
- Debian 9 Stretch(x86_64)
- Ubuntu 16.04 Xenial(x86_64 and aarch64)
- Ubuntu 14.04Trusty (x86_64)
- 注意 QA 僅限於 CentOS 和 Ubuntu (xenialand trusty).
CLI 變動:
- ceph -s 或者 ceph status 命令面目一新。
- ceph {osd,mds,mon}版本總結了運行後臺進程的版本。
- ceph {osd,mds,mon} count-metadata <property>相似地列出經過ceph {osd,mds,mon}元數據命令可見的任何其餘守護進程元數據。
- ceph功能總結了鏈接的客戶端和後臺程序的功能和版本。
- ceph osd require-osd-release <release>替換舊的require_RELEASE_osds標識。
- ceph osd pg-upmap,ceph osdrm-pg-upmap,ceph osd pg-upmap-items,ceph osdrm-pg-upmap-items能夠明確地管理upmap項目。
- ceph osdgetcrushmap在stderr上返回一個crush map版本號,若是版本匹配,ceph osdsetcrushmap [version]將只會注入更新的crush map。這容許crush map進行離線更新,而後從新注入到羣集中,而不用擔憂變化(例如,經過新添加的osds或其餘管理員的更改)。
- ceph osd的建立已被ceph osd替換爲新的。大多數用戶應該使用像ceph-disk這樣面向用戶的工具來隱藏這個。
- ceph osd destroy將標記一個已毀壞的OSD,並刪除其cephx和lockbox祕鑰。可是,OSD ID和CRUSH映射條目將保持原樣,容許使用最少數據從新平衡的替換設備從新使用該ID。
- ceph osd清除將從集羣中刪除OSD的全部痕跡,包括其cephx加密密鑰,dm-crypt lockbox祕鑰,OSD ID和crush map條目。
- ceph osd ls-tree<name>將在給定的CRUSH名稱(如主機或機架名稱)下輸出OSD id列表。這對於爲整個子樹應用更改信息很是有用。例如,ceph osd down`cephosd ls-tree rack1`。
- ceph osd {add,rm} – {noout,noin,nodown,noup}容許noout,nodown,noin和noup標識應用於特定的OSD。
- ceph log last [n]將輸出集羣日誌的最後n行。
- ceph mgr dump將轉儲MgrMap,包括當前活動的ceph-mgr後臺程序和任何備用程序。
- ceph osd crushswap-bucket <src> <dest>將交換層次結構中兩個CRUSH桶的內容,同時保留存儲桶的id。這容許替換整個設備子樹(例如,用新成像的BlueStore OSD替換整個主機的FileStore OSD),而不會中斷跨越相鄰設備的數據分佈。
- ceph osdset-require-min-compat-client <release>能夠配置支持羣集的最舊的客戶端版本。其餘更改,如CRUSH可調參數,若是違反此設置,將會失敗並顯示錯誤。若是當前鏈接到集羣的客戶端版本比指定版本還老舊,則更改此設置也將失敗。
- ceph config-keydump轉儲配置密鑰條目及其內容。(已有的ceph config-keyls僅轉儲密鑰名稱,而不是值。)
- ceph osd set-{full,nearfull,backfillfull}-ratio將集羣範圍的比例設置爲各類全閾值(例如:當集羣拒絕IO時,當集羣警告接近滿時,當OSD延遲PG從新平衡到自己時)。
- ceph osdreweightn將在單個命令中指定多個OSD的reweight值。這至關於一系列ceph osd rewight命令。
- ceph crush class {create,rm,ls}管理新的CRUSH設備類功能。 ceph crushset-device-class <osd> <class>將爲特定設備設置clas。
- ceph mon featurels將列出MonMap中記錄的監視功能。ceph monfeature set將設置一個可選功能(這些功能還沒有存在)。