Ceph 从 PoC 到生产环境
通过这篇文章,我很高兴地介绍 Ceph 博客上一个新的类别,名为用户故事。 这个类别的目的是向集中式用户提供一般反馈。 文章的结构如下
- 介绍:我是谁以及我在做什么
- 公司介绍和业务(非必需)
- Ceph 用例:你用 Ceph 做什么?
- Ceph 实际应用!:Ceph 在你的基础设施中的表现如何,你的硬件设置,技术建议,以及分享你的技巧和窍门!
- 结论,对 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 的人们给我这个机会。 也要感谢社区。 我不是一个伟大的开发人员,所以我无法真正为代码做出贡献,但我一直在测试、报告、反馈和撰写有关该项目的博客方面非常活跃。

