1. 程式人生 > >Ceph v12.1.0 Luminous RC released

Ceph v12.1.0 Luminous RC released

ceph L 版本終於出了一個候選release版本。來看看都有哪些新功能吧。

本文摘自個人部落格,更多幹貨,也詳見該部落格:夏天的風

v12.1.0 Luminous RC released

這是Luminous的第一個候選版本,下一個長期的穩定release。

Ceph Luminous將是下一個長期的穩定release系列的基礎。 自Kraken(v11.2.z)和jewel(v10.2.z)以來,發生了重大的變化。

Major Changes from Kraken

General

Ceph目前擁有一個簡單的、內建的基於Web的儀表板,用於監控群集狀態。

RADOS

BlueStore
- ceph-osd的新後端儲存BlueStore已經穩定,並且是新建OSD的預設設定。 BlueStore通過直接管理物理磁碟(HDD或SSD)而不使用XFS之類的中間檔案系統來管理儲存在每個OSD上的資料,這提供了更好的效能和特性。
- BlueStore對於通過ceph儲存的資料支援完整資料和元資料校驗。
- BlueStore支援zlib、snappy或LZ4的線上壓縮。(Ceph還支援zstd進行RGW壓縮,但由於效能原因,不推薦BlueStore使用zstd)。
EC pools現在完全支援覆蓋寫,允許它們與RBD和CephFS一起使用。

Read more about EC overwrites**

ceph-mgr

  • ceph-mgr是一個新的程序,它是任何Ceph部署所必須的一部分。雖然當ceph-mgr停止時,可以繼續下發IO,但是度量不會重新整理,並且某些與度量相關的請求(如:ceph df)可能會阻塞。為了可靠性,我們建議部署ceph-mgr的多個例項。檢視這裡的註釋Upgrading_
  • ceph-mgr程序包括一個基於REST的管理API。 API仍然處於實驗階段,並有一定的限制,但未來將成為Ceph基於API管理的基礎。

叢集的總體可擴充套件性有所提高。我們已經成功測試了多達10,000個OSD節點的叢集。

  • 目前,每個OSD都具有與其相關聯的裝置類(例如,hdd或ssd),允許CRUSH規則將資料簡單地對映到系統中的裝置的子集。通常不需要手動編寫CRUSH規則或手動編輯CRUSH。
  • 現在可以優化CRUSH權重,以保持OSD之間資料的近乎完美的分佈。
  • 還有一個新的upmap異常處理機制,允許單個PG移動以實現完美的分佈(這需要luminous的客戶端)。
  • 目前每個OSD可以根據後端裝置是HDD還是SSD來調整其預設配置。一般不需要手動調整。
  • mclock QoS排隊演算法原型現在是可用的;
  • 現在有一種 backoff 機制,可以防止OSD出現對當前不能處理IO的物件或PG的請求出現過載。
  • 簡化了OSD更換過程,並且更加魯棒。
  • 您可以使用 ceph features 來查詢所有連線的守護程序和客戶端的支援特性和版本。
  • 您可以配置你想要最舊的Ceph客戶端版本,並通過 ceph osd set-require-min-compat-client 命令連線到叢集,Ceph將阻止您啟用會破壞與這些客戶端相容性的特性。
  • 一些 sleep 的設定,包括 osd_recovery_sleeposd_snap_trim_sleeposd_scrub_sleep 已經被重新實現,並且可以有效地工作。(這些在某些情況下用於解決問題,限制後臺工作。)

RGW:

  • ElasticSearch支援的RGW元資料搜尋現在通過RGW本身支援終端使用者請求服務,並且還支援自定義元資料欄位。查詢語言是一組RESTful API,使用者可以通過其元資料來搜尋物件。還添加了允許自定義元資料欄位控制的新API。
  • RGW支援動態儲存桶索引分片(bucket index sharding)。隨著桶中的物件數量的增加,RGW將自動重新構建桶索引。不需要使用者干預或桶大小容量規劃。
  • RGW引入了上傳物件的伺服器端加密,用於管理加密金鑰的三個選項有:自動加密(僅推薦用於測試設定),客戶提供的類似於Amazon SSE-C規範的金鑰,以及通過使用外部金鑰管理服務 (OpenstackBarbician)類似於Amazon SSE-KMS規範。
  • RGW具有初步的類似AWS的儲存桶策略API支援。現在,策略是一種表達一系列新授權概念的方式。未來,這將成為附加身份驗證功能的基礎,例如STS和組策略等。
  • RGW通過使用rados名稱空間合併了幾個元資料索引池。

RBD:

  • RBD目前通過rbd create新的--data-pool選項,對EC pools有全面穩定的支援。
  • RBD映象的rbd-mirror守護程序現在是高可用的。我們建議部署rbd-mirror的多個例項來實現可靠性。
  • 在建立叢集期間,不再自動建立預設的 rbd 儲存池。另外,當沒有指定池時,rbd CLI 使用的預設池的名稱可以通過新的 rbd default pool = <pool name> 配置選項來覆蓋。
  • 通過新的 rbd trash CLI命令初步支援延遲 image 刪除。images,即使是由克隆主動使用的映象,也可以移動到垃圾桶,並在以後刪除。
  • 新的管理池級別的命令 rbd mirror pool promoterbd mirror pool demote可以批量提升/降級一個pool內所有的mirrored images。
  • mirroring 現在可以通過 rbd mirroring replay delay = <seconds> 配置選項支援可選擇的配置複製延遲。
  • 當物件map 特性啟用時,可以提升丟棄處理功能。
  • rbd CLI importcopy 命令現在可以檢測稀疏並保留稀疏區域。
  • snapshots現在將包含建立時間戳。

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} versions 總結了執行中守護程序的版本。
  • ceph {osd,mds,mon} count-metadata <property> 類似地列出通過 ceph {osd,mds,mon} metadata 命令可見的任何其他守護程序元資料。
  • ceph features 總結了連線的客戶端和守護程序的特性和版本。
  • ceph osd require-osd-release <release> 替換舊的require_RELEASE_osds flags。
  • ceph osd pg-upmapceph osdrm-pg-upmapceph osd pg-upmap-itemsceph osdrm-pg-upmap-items可以明確地管理upmap專案。
  • ceph osd getcrushmap在stderr上返回一個crush map版本號,如果版本匹配,ceph osd setcrushmap [version] 將只會注入更新的crush map。這允許crush map進行離線更新,然後重新注入到群集中,而不用擔心顛覆性的變化(例如,通過其他管理員新新增和修改osds)。
  • ceph osd create 已被 ceph osd new 所替換。大多數使用者應該使用像 ceph-disk 這樣面向使用者的工具來隱藏這個。
  • ceph osd destroy 將標記一個OSD被損壞,並刪除其cephx和lockbox keys。但其OSD id和CRUS map entry 將保留不動,允許使用最少資料重新平衡的替換裝置重新使用該 ID。
  • ceph osd purge 將從叢集中刪除OSD的所有痕跡,包括其cephx加密金鑰,dm-crypt lockbox祕鑰,OSD ID和crush map entry。
  • ceph osd ls-tree <name> 將在給定的CRUSH名稱(如主機或機架名稱)下輸出OSD id列表。這對於為整個子樹應用更改資訊非常有用。例如,ceph osd downceph osd ls-tree rack1
  • ceph osd {add,rm} - {noout,noin,nodown,noup} 允許nooutnodownnoinnoup 標誌應用於指定的的OSD。
  • ceph log last [n] 將輸出叢集日誌的最後n行。
  • ceph mgr dump 將dump出MgrMap,包括當前活動的和任何 standbys 的 ceph-mgr守護程序。
  • ceph osd crush swap-bucket <src> <dest>將交換層次結構中兩個CRUSH buckets的內容,同時保留buckets的id。這允許替換整個裝置子樹(例如,用新imaged的BlueStore OSD替換整個主機的FileStore OSD),而不會中斷跨越相鄰裝置的資料分佈。
  • ceph osd set-require-min-compat-client <release> 可以配置支援群集的最舊的客戶端版本。其他更改,如CRUSH可調引數,如果違反此設定,將會失敗並顯示錯誤。如果當前連線到叢集的客戶端版本比指定版本還老舊,則更改此設定也將失敗。
  • ceph config-key dump dump出config-key entries及其內容。(已有的 ceph config-key ls 僅dump金鑰名稱,而不是值。)
  • ceph osd set-{full,nearfull,backfillfull}-ratio 將叢集範圍的比例設定為各種全閾值(例如:當叢集拒絕IO時,當叢集警告接近滿時,當OSD延遲PG重新平衡到本身時)。
  • ceph osd reweightn 將在單個命令中指定多個OSD的 reweight 值。這相當於一系列 ceph osd rewight 命令。
  • ceph crush class {create,rm,ls} 管理新的CRUSH裝置類功能。 ceph crush set-device-class <osd> <class> 將為特定裝置設定class。
  • ceph mon feature ls 將列出MonMap中記錄的monitor功能。ceph mon feature set 將設定一個可選功能(這些功能尚未存在)。

Major Changes from Jewel

RADOS

  • 我們現在預設使用AsyncMessenger(ms type = async),而不是傳統的SimpleMessenger。 最明顯的區別是,我們現在使用固定大小的執行緒池進行網路連線(而不是使用SimpleMessenger每個socket兩個執行緒)。
  • 現在幾乎可以馬上檢測到一些OSD故障,而之前的心跳超時(預設為20秒)必須過期。 當host保持up狀態,但ceph-osd程序不再執行的故障出現時,可以防止IO長時間阻塞。
  • 編碼OSDMaps的大小已經減少了。
  • 當recovery或rebalancing進行時,OSD現在會靜止scrubbing。

RGW

  • RGW現在支援 S3 多部分物件部分複製(multipart object copy-part)API。
  • 現在離線resharding一個現有的bucket是可能的。離線resharding bucket當前需要所有到這個指定bucket的IO(特別是writes)是靜止的。(為了自動線上resharding,看上面Luminous的新特性)
  • RGW現在支援對物件的資料壓縮。
  • Civetweb版本已經更新到1.8。
  • 支援Swift靜態網站API(之前的版本就已經支援S3)
  • S3 bucket生命週期 API 已新增。注意當前只支援物件到期。
  • 支援使用者自定義搜尋過濾器已新增到 LDAP 認證實現中。
  • 對NFS版本3的支援已新增到RGW NFS閘道器
  • 已經為librgw建立了一個Python繫結

RBD

  • rbd-mirror守護程序現在支援從主image到非主image複製動態image特徵更新和image元資料金鑰/值對。
  • Image快照的數量可以可選地限制在可配置的最大值。
  • rbd Python API現在支援非同步IO操作。

CephFS

  • libcephfs函式定義已更改,以啟用適當的uid / gid控制元件。library版本已經增加,以反映介面的變化。
  • standby replay MDS守護程式現在在執行刪除的工作負載上消耗更少的記憶體。
  • Scrub 現在修復回溯,通常使用 damage ls 發現錯誤。
  • pg_files 子命令cephfs-data-scan可以識別受損壞或丟失的RADOS PG影響的檔案。
  • 假陽性警告 failing to respond to cache pressure 已被修復。