Ceph 从 PoC 到生产环境

shan

通过这篇文章,我很高兴地介绍 Ceph 博客上一个新的类别,名为用户故事。 这个类别的目的是向集中式用户提供一般反馈。 文章的结构如下

  1. 介绍:我是谁以及我在做什么
  2. 公司介绍和业务(非必需)
  3. Ceph 用例:你用 Ceph 做什么?
  4. Ceph 实际应用!:Ceph 在你的基础设施中的表现如何,你的硬件设置,技术建议,以及分享你的技巧和窍门!
  5. 结论,对 Ceph 的总体想法,优缺点

既然你已经了解了文章的要点,那么让我们开始吧!

对于那些不阅读 我的博客 的人来说,我已经写博客快两年了,但自从 2012 年 3 月以来,我一直非常活跃和专注。 这个日期并非巧合;这是我开始实习的那时候。 我目前感兴趣的方向是 OpenStack、Ceph 和 Pacemaker。

公司:Stone-IT

Stone-IT 是一家可靠的服务提供商,为运行 Linux 和开源软件的企业提供服务。 他们为网站和应用程序设计和构建高可用性的 Linux 平台,并管理大型 Linux 基础设施。 2012 年对 Stone-IT 来说是关键的一年。 一家名为 Smile 的新公司最近收购了他们。 合并,正如我们可以想象的那样,并不总是容易的事情,特别是对于相关组织的内部管理和机构间沟通而言。 此外,当前的 Linux-Cloud 在可用资源方面(如计算机和空间)已经达到了极限。 感谢 Smile,他们还获得了新客户,这大大增加了 Cloud 上的负载。 我于 2012 年 2 月被招募,因此较早意识到了这些问题。 因此,我很快开始研究一些解决方案。 基本上,他们需要为他们的云平台找到一个新的核心引擎;这将导致 Linux-Cloud 2.0。

最终,我于 2012 年 4 月开始实习;我一直在多个主题上进行大量的研究和开发

  • 开源云管理平台
  • 开源存储解决方案

任务定义明确;我必须调查这两个主题,选择一项技术,设计一个可行的概念,然后基于这项研究在生产环境中构建下一个平台。

我们如何使用 Ceph?

由于我们的大部分业务是基于托管和维护网站,我们需要一个分布式文件系统来为具有一致数据的 Web 服务器提供服务。 我们的概念是开发人员拥有管理虚拟机,他们可以在其中放置新代码并在预生产环境中进行测试。 测试完成后,他们可以将更新交付到 NFS 共享,这使得新文件在每个 Web 虚拟机上“立即”可用。 这就是 Stone-IT 的管理方式。 我想这是一种与许多 Web 服务器合作时相当标准的方法。 正如我之前提到的,我必须调查 CMP 和存储解决方案。 理想情况下,两者在功能和集成方面都应该兼容,并且一个应该能够利用另一个的优势。 NFS 是一个可行的解决方案,因为它的历史悠久,最初的计划并不是放弃 NFS,但作为一家创新公司,我们希望开放我们的业务并尝试一些新的东西。 因此,我开始评估大量的分布式文件系统,我不会向你介绍深入的技术细节,但主要的软件是

  • Ceph
  • GlusterFS
  • MooseFS

对于 CMP 部分,很明显我们将使用 OpenStack。 为了使事情更加理想,我查看了 (旧) nova-volume 中可用的驱动程序。 这就是我遇到 Ceph 驱动程序的地方。 然后我开始评估 Ceph,最终导致我写了 将 Ceph 引入 OpenStack 这篇文章,我收到了很多不错的评论和反馈。 最初的想法是使用 CephFS 来摆脱 NFS,我尝试了它,正如文章所证明的那样,我做了一些不错的尝试,例如 KVM 实时迁移。 但是,即使事情进展顺利,我也不能冒着将某些东西投入生产环境的风险,而核心开发人员尚未推荐它。 我的想法并没有真正改变,我最终做了一个小型的临时解决方法,以便继续使用 Ceph。 基本上,我们拥有 Ceph 后端,并且在它的前面有两个服务器。 在这两个服务器上,我们映射 RBD 设备;这些设备由 NFS 重新导出,然后每个 Web 虚拟机挂载共享。 这可能听起来有些过头且棘手(好吧,它很棘手),但它非常稳定,性能也不错。 这个结果或多或少是我在文章 NFS over RBD 中描述的。

Ceph 实际应用!

我们的基础设施不是很大,因为我们不是一家大公司,而且我们的预算也不是一家大公司的预算!

性能方面,我做了很多基准测试。 真的,很多。 也许太多了,但经过所有这些测试,我对 Ceph 性能的唯一说法是,你不用担心它。 如果你了解设计,你不应该感到惊讶,因为它们就像预期的那样。 Ceph 不会成为瓶颈;它提供你的硬件和网络可以提供的最大性能。

现在让我们详细介绍我们使用的硬件

4 个存储节点

  • HP ProLiant DL360G7 1x E5606/ 2.13GHz 4C/ 4Gb/ P410i/ ZM/ 4 SFF/ 1x 460W PSU – 入门型号
  • HP PSU 460W-F/DL385 G5P
  • HP 72GB 15K SAS 2.5inch SFF 6G DP Enterprise HDD
  • HP 600GB x3 10K SAS 2.5inch SFF 6G DP Enterprise HDD
  • HP DL360G6 SFF HD BKPLN KIT。
  • HP 2GB x11 PC3-10600 Registered CAS 9 Dual Rank DRAM Memory Kit (22GB)
  • HP 256MB P-Series Cache Upgrade
  • 2 个 SSD Vertex 4 60GB RAID 1
  • Ubuntu 12.04
  • Ceph Argonaut 0.48.2
  • 11 个 OSD,可用 6703 GB

网络规格

  • HP Pro Curve Switch 2510G-48; 1G 网络

最终,在投入生产之前,你可能会喜欢这些小技巧/最佳实践

  • 使用 10G 的逻辑卷作为监视器目录(如 官方文档 中推荐,请参阅数据存储部分)
  • 增加 osdmax 值
  • 在你的 [osd] 部分设置“filestore flusher”选项为 false
  • 根据 Ceph 官方文档 中的计算设置每个池的 PG 数
  • 默认情况下,每个对象复制 2 次,你可能希望更改此行为为 3。 可以在创建池之后更改此值,但默认设置它非常方便。 在 ceph.conf 的 [mon] 部分中放置以下标志:“osd pool default size = 3”
  • 如果你的控制器有备用电池,请启用磁盘控制器的回写缓存模式
  • 使用 XFS 作为 OSD 文件系统,并使用以下推荐选项:noatime,nodiratime,logbsize=256k,logbufs=8,inode64

结论

自从我开始研究 Ceph 以来已经过去了 6 个月,我脑海中浮现的第一件事是:“这是一个该死的了不起的项目!” 而且我不需要受到 Ross :) 的威胁才说出这句话。

优点

  • RBD + Pacemaker = 太棒了
  • 维护:执行维护相对容易;我们已经在运行生产环境的情况下进行了 2 次维护试验(为了硬件升级而重启服务器)
  • Inktank 的人非常乐于助人
  • Ceph 社区活跃

缺点

  • 无法真正控制日志记录,目前没有办法指定日志的 facility 级别或 severity 级别。 有关更多信息,请查看我的文章 Ceph 和日志记录
  • 最近检测到 OSD 中的内存泄漏,目前仍在调查中。 请参阅 Ceph 邮件列表 上的当前讨论。

总而言之,作为第一个用户故事,我想感谢 Inktank 的人们给我这个机会。 也要感谢社区。 我不是一个伟大的开发人员,所以我无法真正为代码做出贡献,但我一直在测试、报告、反馈和撰写有关该项目的博客方面非常活跃。