没有可靠的存储,云端数据只是昙花一现。在 OpenStack 中,存储分为两种类型:对象存储,用于存储信息块;块存储,更类似于传统的磁盘驱动器镜像的概念。OpenStack 中的块存储由 Cinder 处理,Cinder 提供了管理卷以及与 OpenStack 中其他组件共享卷的基础架构。
认识一下 John Griffith。他目前担任 Cinder 项目的项目技术主管 (PTL)。John 是 SolidFire 的一名软件工程师,并且近十年来一直是开源软件的积极用户和贡献者。
我们与 John 进行了交谈,以更好地了解 Cinder 项目在 OpenStack 中如何运作、为什么它很重要,以及 Icehouse 版本的路线图是什么。
Cinder 为 OpenStack 做什么?
Cinder 为 OpenStack 中的其他项目提供块存储服务。更好的说法是,Cinder 提供了一个控制平面,将传统的块存储资源抽象成一个“虚拟”资源池。主要思想是提供一个 API,允许最终用户创建、访问和管理块存储资源,而无需向存储管理员或其他 IT 人员提交请求。然而,最重要的是,Cinder 接受多个同构的后端存储设备并隐藏所有独特的细节,为最终用户提供一个简单的 API,无论后端实际使用什么(或后端有多少设备),该 API 都能正常工作。它是弹性的,这意味着可以无缝地添加资源,而最终用户无需了解实际发生了什么。
为什么 Cinder 对 OpenStack 很重要?不同的组件如何与 Cinder 交互?
Cinder 很重要,因为它是持久性传统块存储(如磁盘)的唯一来源。事实上,虚拟化正是这样工作的:最终用户请求一个特定大小的卷,可能还带有某些特性,然后他们会得到一个被视为磁盘驱动器的对象。
诸如 Nova(计算)之类的服务利用 Cinder 来提供持久性存储;Nova 实例(类似于虚拟机)是临时的。用户可以创建一个 Cinder 卷并将其附加到他们的实例,它会像添加到系统中的磁盘一样显示出来。此外,Cinder 卷可以用于那些想要持久实例的用户,因此,如果不需要临时实例,他们可以进行设置,使他们的实例驻留在 Cinder 卷上,从而实现持久性。
Cinder 提供块存储资源,使用户能够运行数据库或任何其他需要传统类型磁盘空间的应用。
Cinder 团队正在为 Icehouse 版本开发哪些主要改进/功能?
Icehouse 版本在质量和兼容性方面进行了大力推进。此外,还有更具体的功能,如卷迁移以及将现有卷的类型更改为另一种类型的功能。Cinder 的备份服务也进行了大量的努力和改进。Cinder 提供了将您的块存储卷备份到对象存储的能力,因为毕竟,我们总是希望备份我们的重要数据。
对于有兴趣为 Cinder 做贡献的人来说,有哪些机会?
Cinder 为新手提供了重要的机会。每次发布,都会有比实际实现它们的时间多得多的想法。与一些团队相比,Cinder 仍然是一个相对较小的团队,因此,任何对块存储感兴趣的人,或者只是在寻找一个友好的地方开始为 OpenStack 做贡献的人——请加入我们在 Freenode 上的 IRC 频道 (#openstack-cinder)。我们总是很高兴结识新朋友,并在他们有兴趣的情况下帮助他们开始贡献。
在 Cinder 和 OpenStack 上工作,什么让您感到兴奋?
有很多让我感到兴奋并保持动力的东西。总的来说,OpenStack 和基础设施虚拟化/抽象的概念很有趣,因为它有可能改变数据中心的运营方式。此外,从我作为开发人员的个人经验来看,从过去不得不请求/购买服务器,在其上加载我的操作系统和工具,并请求升级、存储等等,并希望我能得到它们……OpenStack 是一个绝佳的环境。现在,我不再需要不断地尝试管理或请求资源,而是只需在我需要时部署我需要的资源,当我完成时,我只需删除它并将资源返回到池中。当然,我忽略了构建云所发生的管理等等,但重点是最终用户不再需要担心这些,他们现在可以自由地花费时间开发酷炫的软件。
Cinder 特别让我兴奋更多的是在哲学层面。多年来,我听过不同的人和公司谈论他们定义为“软件定义存储”的东西,当我深入挖掘时,他们似乎都与旧事物没有什么不同。另一方面,Cinder 与我个人一直认为的软件定义存储完全一致,即数据平面和控制平面的分离、资源的池化,以及最重要的是对其用法的抽象。
如果您可以命名 OpenStack 的下一个版本,您会称它为什么?
嗯,实际上我确实参加了投票;整个 OpenStack 社区都会投票。如果我不受字母顺序的限制,出于某种原因,我一直想将一个项目命名为“Bubba”。我不知道为什么,我只是一直想找到合适的项目来赋予这个名字。为了与字母顺序保持一致,我对即将发布的版本的投票是 Jolt;现在应该很明显,我非常不擅长起名字。
4 条评论