CERN評估使用Rook部署Ceph
- 2019 年 12 月 5 日
- 筆記
CERN評估使用Rook部署Ceph
作者:Rubab Syed (@RubabSyed21)
今年夏天,我很幸運地被歐洲核子研究中心(CERN)錄取為實習生。作為CERN openlab的暑期學生,我在IT存儲組工作了9周,我的暑期項目是「評估使用Rook部署Ceph」。我之前在Ceph實習的時候有過一段很棒的經歷,所以這次我也非常興奮。
歐洲核子研究中心從2013年開始使用Ceph。除了運營其中最大的Ceph集群之外,它還是Ceph社區的積極貢獻者。歐洲核子研究中心從Ceph中受益的方式有很多,包括:
- OpenStack鏡像與卷(RBD)
- HPC劃痕空間(CephFS)
- 類似nfs的私有文件共享(CephFS)
- 與Amazon S3兼容的對象存儲(RGW)
CERN必須處理pb級的數據,所以它總在尋找簡化基於雲的部署的方法。它一直在積極評估建立在Kubernetes基礎設施上的基於容器的方法。最近引起關注的一項技術是Rook;用於雲原生環境的存儲協調器。雖然Ceph多年來一直在滿足它的存儲用例,但如果它的操作複雜性能夠以某種方式降低,那麼它將變得跟好。CERN目前使用kickstart和puppet的組合來配置和管理Ceph部署,這帶來了一些時間限制。由於最近的Rook Ceph集成處於Beta階段,因此有必要對其進行評估,以確定是否可以使用該工具部署未來的Ceph集群。確切地說,希望利用Rook改進以下領域:
- 減少新集群的部署時間
- 簡化升級
- 更靈活的橫向擴展
- 更好的容錯
- 減少對專業Ceph操作員的依賴
我的工作是在虛擬和物理環境中使用Rook部署Ceph,看看是否實現了上述改進。當Rook的最新版本0.8部署時,安裝過程非常直接;只要設置一個Kubernetes環境,就可以使用兩個命令輕鬆部署它。評估的一個重要方面是能夠使用ceph-mgr的新編排CLI模塊在運行的集群中快速添加/刪除OSDs、RGWs和MDSs。由於Rook的v0.8所使用的docker映像在我的項目時還沒有推出最新的Ceph master,所以我不得不構建一個定製的docker映像。
CERN的雲基礎設施是由OpenStack驅動的,所以虛擬環境由OpenStack的虛擬機組成,而物理環境由OpenStack Ironic管理的裸金屬服務器組成,每個服務器有48個磁盤,每個磁盤容量為5.5 TB。我的測試平台包括部署S3工作負載來收集評估指標,比如部署整個Ceph集群的時間、在集群中添加新服務(RGW、OSD、MDS)的時間、Ceph升級的自動化以及整個集群的可靠性。

Rook在這些評估指標上沒有讓我失望。新部署的Ceph集群可以在幾分鐘內使用。在運行的集群中添加新的OSD不到2分鐘。添加RGW和MDS等服務也是如此。Rook建立在Kubernetes之上,因此節點可靠性和改進的故障容忍度成為一等特性。帶有Rook後端的編排器CLI可以輕鬆操作部署的集群,特別是對於那些已經熟悉Ceph CLI的人來說。然而,Ceph的升級還沒有自動化,Rook和Ceph版本之間存在耦合,這使得整體部署的靈活性降低。這些特性計劃在即將發佈的Rook v0.9提供。
由於歐洲核子研究中心龐大的基礎設施,積極探索技術使操作更快更容易是有意義的。在我看來,Rook看起來是一個很有前途的開源項目,目標是讓存儲更適合雲環境。如果能夠實現自動升級和對解耦版本的支持等功能,那麼在未來的Ceph集群使用Rook和Kubernetes來部署將是一個好主意。這個項目的結果將幫助歐洲核子研究中心的人們決定他們是否應該在未來的Ceph部署中使用Rook和Kubernetes。
這文章是由Rubab Syed提供。