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提供。