Ceph 来到 Synnefo 和 Ganeti
在最近一次的欧洲之旅中,我遇到了一些非常棒的人,并听到了很多关于 Ceph 的应用案例。其中一个特别有趣的案例是 Synnefo 的团队在 FOSDEM 上与我分享的他们使用 Ganeti 和 RADOS 的工作。他们很好地记录了细节并在他们的博客上,并允许我在此处重新发布。
如果您有任何关于 Ceph 的有趣应用,我们总是很乐意听取。请随时将链接发送到 @Ceph 或将其发送到我们的 社区 别名。现在,让我们进入正题!
Synnefo + RADOS = < 3 ¶
我们很高兴地宣布 Synnefo 现在支持使用 RADOS 在通用硬件上实现完全统一的存储(文件/镜像/虚拟机磁盘)。并且由于它已经通过了测试阶段,现在正进入我们的生产环境 (~okeanos)。而且它能扩展!
但是,“完全统一的存储”意味着什么,为什么选择 RADOS?
让我们从头开始。
问题 #1 ¶
尝试在通用硬件上扩展公共云服务并非易事。最初(2011年中),我们的所有虚拟机都在 DRBD 上运行,使用 Ganeti,而我们的文件/对象存储服务 (Pithos) 依赖于一个大型 NAS。DRBD 是优秀的、高质量的软件,能够实现实时迁移而无需共享存储,并且聚合带宽随着计算节点的数量而扩展。我们希望保留所有这些。另一方面,我们知道如果希望存储服务扩展,最终必须摆脱 NAS。我们也渴望探索使用相同的后端存储来存储虚拟机磁盘和文件的途径。
一个显而易见的选择是使用在通用硬件上运行的分布式文件系统,例如 Lustre、GPFS 或 GlusterFS。Ganeti 已经支持在共享文件上运行虚拟机磁盘,因此唯一需要做的就是为我们的存储服务编写共享文件驱动程序,这很简单。但是,我们很快意识到,我们实际上不需要文件系统语义来存储虚拟机卷,并且肯定可以避免照顾分布式文件系统的负担。我们正在寻找对象/块语义。
因此,我们决定测试 RADOS,因为我们已经从 2010 年中开始关注 Ceph 的进展。对于虚拟机磁盘部分,我们在 Ganeti 内部实现了 RBD 支持并将其合并到官方上游。从版本 2.6 开始,Ganeti 支持开箱即用的 RADOS 上的实例磁盘。它使用 RBD 内核驱动程序和 RBD 工具来完成此操作。此外,我们为我们的存储服务实现了一个 RADOS 后端驱动程序。我们选择不使用 RadosGW,因为我们已经在生产中使用了一个实现了 OpenStack 对象存储 API 的存储前端,并且还允许进行更高级的功能,例如通过内容哈希进行重复数据删除、用户之间共享文件等。
到 2011 年底,我们已经完成了所有设置并进行了测试。架构如下
以上使两件事成为可能:a) 允许 Synnefo 最终用户选择 VM 的存储类型,无论是 RBD 还是 DRBD,b) 允许 Synnefo 管理员在 RADOS 集群或 NFS / NAS 之间选择存储服务的后端。通过这种方法,我们继续实现虚拟机的实时迁移,而无需物理共享存储,这次通过 RBD 到任何物理节点,而不仅仅是 DRBD 的辅助节点。并且我们尝试将基于 RBD 的虚拟机磁盘与文件放在同一个 RADOS 存储集群中。到目前为止,一切都很好。
问题 #2 ¶
这在当时看起来非常成功,但仍然无法让我们实现奇迹。而我们所说的奇迹是指我们设想的镜像处理方式。我们希望同时实现以下三件事
- 从存储服务的角度来看,镜像被视为普通文件,完全支持远程同步和用户之间共享。
- 从计算服务的角度来看,镜像被重复克隆和快照,服务之间无需复制数据。
- 最后,快照显示为新的镜像文件,同样无需数据移动。
那么,我们该怎么办?我们喜欢现有的架构,包括 Synnefo、Ganeti 和 RADOS。RADOS 似乎是整合虚拟机磁盘和文件存储在一个地方的好选择。我们决定设计和实现一个精简的、分布式的、完全独立的存储层,位于中间,可以完成这项工作。如果这可行,我们可以保留所有三个基本技术的优点,并使用它们之间定义明确的抽象。这就是我们所做的。
到 2012 年中,我们已经准备好了原型。我们将其命名为 Archipelago。然后,我们需要将其与其余的基础设施集成并开始进行压力测试。集成发生在两个方向:与 Ganeti 的集成,以及与 RADOS 的集成。
为了与 Ganeti 集成,我们停止使用 Ganeti 的原生 RBD 支持来与 RADOS 通信,因为我们现在有了 Archipelago 作为中间层。我们利用 Ganeti 的 ExtStorage 接口并编写了相应的 Archipelago 驱动程序(ExtStorage 提供程序)用于 Ganeti。
为了与 RADOS 集成,我们为 Archipelago 实现了一个 RADOS 驱动程序。最后,到 2012 年底,我们完成了代码并一直在进行测试。现在的架构如下
经过 3 个月的压力测试,我们现在正在将所有内容迁移到 ~okeanos 生产环境,该环境目前正在为超过 1900 名用户运行超过 2700 个活动虚拟机,截至本文撰写之时。
对于不耐烦的人来说,新功能已经在我们的免费试用演示基础设施上启动并运行:
因此,创建一个免费试用帐户,并在创建新的虚拟机时选择“Archipelago”磁盘选项。您会看到它在几秒钟内启动,并且精简!由 RADOS 支持 ![]()
尽情享受吧!
—————-
转载自: http://www.synnefo-software.blogspot.com/2013/02/we-are-happy-to-announce-that-synnefo_11.html



