2018年的OpenStack存储更新

搜狐科技
OpenStack中国社区
自OpenStack第一次发布以来,已经差不多八年了。OpenStack已经向大家证明它有望在开源私有云上开启新时代。 我们见证了OpenStack的起起落落,现在它进入了一个更成熟的阶段。 三年前我们曾关注过存储组件,那...

自OpenStack第一次发布以来,已经差不多八年了。OpenStack已经向大家证明它有望在开源私有云上开启新时代。

我们见证了OpenStack的起起落落,现在它进入了一个更成熟的阶段。

三年前我们曾关注过存储组件,那么这三年来,OpenStack使用存储的方式有哪些变化和演变?而且伴随着OpenStack变得更加主流,它如何适应更广泛的存储生态系统?

OpenStack 101

最初的OpenStack平台源自Rackspace和NASA之间的合作,带来了一个私有云的开源生态系统。OpenStack是在Apache软件许可下开发和发行的,它允许免费发行,也允许厂商修改原始代码。

该平台由许多项目组成,每个项目都管理着私有云基础设施的一个典型部分。首先要开发的是虚拟实例、网络和对象存储。每个项目都分配了一个名称——Nova是虚拟机的编排引擎,而Neutron实现了网络。

三个主要的存储项目是:Cinder——块存储支持、Swift——对象存储支持、Manila——文件存储支持。

可以将这三个项目视为核心存储基础设施。还有其他一些项目以应用程序数据为重点,包括Trove(数据库即服务)和Sahara(大数据处理)。一些存储项目与其他OpenStack服务集成,例如实现身份管理的Keystone。

OpenStack差不多每六个月生成一个新版本,当前的第18版Rocky于2018年8月底发布。单个项目可能在新版本之间发布多个版本,例如Swift就是如此。

在讨论存储项目的一些更新时,我们将重点介绍一些更值得注意的更新和增强功能。由于更新的数量之多,本文并没有列出所有内容,建议你阅读每个版本的OpenStack发布时的在线发布说明。

块存储支持

Cinder项目为持久块存储提供支持,可以将其挂载到运行应用程序的虚拟实例(虚拟机)。这通过OpenStack服务器基础设施上的LVM(逻辑卷管理器)或插件分解为本地支持,以支持传统供应商的外部存储平台。

与所有OpenStack组件一样,存储的配置由API驱动,基于供应商的插件提供了一个转换层,可将Cinder卷映射到供应商平台上的存储卷。

Cinder最初被引入到Folsom版本(2012年9月)中,随着时间的推移,供应商不断增加驱动程序支持。

但是,支持程度差异很大。例如,许多供应商不支持将快照作为新虚拟机挂载的功能。

即使在同一家公司内,功能支持也不一致。例如,Dell EMC PowerMax支持的功能远远超过Dell EMC的PS系列。这可能反映了公司内各个开发人员组的优先级以及对特定存储平台的长期支持。当然,并非每个存储供应商都能够提供其产品中不存在的功能,例如,服务质量仅有一小部分存储供应商能实现。

可以说,在最近的OpenStack版本中,Cinder引入的功能更是渐进式的。许多功能缩小了通常在其他生态系统中可用的差距,或为新产品平台引入新的驱动程序。

对象存储支持

Swift提供对象支持。Swift是一种横向扩展对象存储平台,可为对象类型数据提供高耐用性和可用性。

与文件系统相比,对象存储通常提供更高的可伸缩性和分布式数据访问,同时牺牲了POSIX合规性的优势。对于大量通常为静态或只读的内容,对象存储可以是比横向扩展文件系统更具成本效益的解决方案。

Cinder主要用作存储供应商平台的接口,而Swift本身就是一个对象存储。像SwiftStack这样的公司建立在OpenStack Swift之上,以创建更成熟的解决方案。

但是,拥有提供本地支持的平台的存储供应商可以轻松代替本地Swift实现。这是因为对象存储平台本身由遵循Swift或S3标准的API驱动。

Swift比Cinder或Manila更新更为频繁,每次主要的OpenStack版本都会发布多次更新(通常每两个月一次)。最新的功能2.18在Rocky引入,包括容器分片(改进的元数据分发功能)和S3 API兼容性。还有内部优化来满足单个存储驱动器容量和服务器存储密度的增长。

文件存储支持

通过Manila项目提供对文件访问的支持。

最初,文件服务旨在作为Cinder的一部分提供,但在2013年,Manila被分割为一个单独的项目。与块支持相比,文件的用例很容易看到,存在于公有云以及VMware等其他平台中。通常,块设备在虚拟机或实例之间不可共享。文件服务提供该功能以及添加其他增强功能,如安全性和更好的可伸缩性。

Manila与Cinder的设计保持一致,因为供应商编写的插件可以提供配置自动化和将文件系统映射到虚拟实例。但是,尽管Cinder提供了每个驱动程序支持的功能矩阵,但Manila驱动程序更加定制化,并且支持每个文件系统供应商的特定选项。

最初,Manila支持标准文件系统,包括NFS和CIFS。随着时间的推移,扩展到更多专有解决方案,如Gluster、Ceph、Hadoop File System和MapR。

Ocata版本在快照功能上做了很多工作。包括使用可安装(临时)快照来恢复数据的功能、将文件共享还原为以前的快照,以及将快照从一个平台迁移到另一个平台的功能。迁移API已扩展为两阶段流程,可在迁移过程中访问数据。

挑战

由于OpenStack作为一组独立项目运行,因此功能实现并不总是一致的。正如我们所提到的,Cinder的驱动程序生态系统远远大于Manila的驱动程序生态系统,文档也更完善。

所有OpenStack存储项目的发展而突出的一个主要问题是需要升级软件以引入新的供应商驱动程序或驱动程序功能。这在维护对外部存储平台的支持的过程中引入了显著的开销。

在容器生态系统中采用的解决方案是开发容器存储接口(CSI),它从驱动程序本身抽象出驱动程序规范。然后可以安装、替换或升级单个供应商驱动程序,而无需更新核心容器软件。OpenStack存储项目非常需要这种设计。

结论

由于现在已完成整合存储的大部分主要工作,未来的开发是向添加功能和支持新平台的过渡。

这意味着OpenStack项目更侧重于运营数据服务而不是基础设施。像Freezer(备份和灾难恢复)这样的新项目将是未来发展的地方。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论