技术干货体验 OpenStack Queens 的全新功能 — 卷多重挂载
Posted 浪潮云产品
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术干货体验 OpenStack Queens 的全新功能 — 卷多重挂载相关的知识,希望对你有一定的参考价值。
经过多年协作开发,Ildiko Vancsa 在 Queens 版本中提供了这一期待许久的功能的雏形。
——Ildiko Vancsa
卷多重挂载功能支持用户将单个块存储卷挂载至多个云主机,并可从多个云主机访问单个块存储卷。
这一功能的使用场景包括双主主及双机热备,即卷中的数据能够被多个云主机访问以实现在发生故障时快速恢复,或可处理系统中更多的负载。卷多重挂载要求两个 OpenStack 项目提供支持,即 Cinder(块存储)和 Nova(计算)。
我们经常会发出疑问:是否应该向云平台添加我们认为不适合的新功能?这一疑问因为之前架构决策使得添加起来更具挑战性更为普遍。多重挂载也不例外。
虽然在行业内普遍渴望出现云原生应用程序,但重新编写每个程序来适应云原生则是一种相当奢侈的行为。为支持这一过渡期,我们需要为尚未完全适应的工作负载打造适用的平台。
在过去的几个发行周期中,我们在努力克服无法在 Cinder 和 Nova 中实施卷多重挂载功能这一挑战的同时,在每周召开的例会中决定为平台设计全新的 API 和后续改进。
一开始,我们为 Cinder 添加了新的挂载/卸载 API,使得流程更为灵活。新的 API 推出了“attachment(挂载)”的理念,您可创建、更新、完成或删除它以挂载或卸载卷。
如果您选择的 Cinder 后端报告需要为该功能提供支持,则您可使用新的挂载/卸载 API 多次挂载卷。在 Queens 版本中,三个驱动程序支持多重挂载:LVM、NetApp/SolidFire 和 Oracle ZFSSA。当其他驱动程序添加支持时,您可查看“驱动程序支持表”获取更新。
您需要创建一个多重挂载卷类型,以创建一个可使用该功能、支持多重挂载的卷。您还可将一个卷重新设置为不支持多重挂载的卷,反之亦然(仅当该卷为“可用”状态时)。从 Queens 版本开始,在卷创建操作过程中将弃用“multiattach”标记。
在计算端,为将单个卷挂载至多个虚拟机实例,您需要运行 Nova 微版本 2.60 或更高版本。与之类似,在 Cinder 的后端,您也会发现与 Nova 中管理程序有关的限制。在 Queens 版本中,只有 Libvirt 支持卷多重挂载,您需要 Libvirt >= 3.10 或 QEMU < 2.10。要获取进一步信息,请参考“功能支持表”。
当前,所有后续卷挂载将以读写 (RW) 模式挂载,包括从卷启动情形。您可通过两种 Cinder 策略开启或关闭该功能。
volume:multiattach
volume:multiattach_bootable_volume
您可在 Cinder 和 Nova 的管理指导章节中了解该功能及其限制的更多内容。
除了新的 API 和功能,我们还在测试方面覆盖了涉及的这些项目以及 Tempest。我们添加了测试用例,如基本功能、通过多重挂载卷启动云主机,或调整挂载多重卷的云主机规格大小。
目前讨论的改进设想包括提供支持,以为辅助挂载确定挂载模式。要获取最新信息,请查看 Cinder 规范列表获取最新版本。
为就测试范围获取进一步改进,正在考虑添加更强大的集成测试,如在两个虚拟机之间,对共享卷数据进行写入/读取共享卷。
以上是关于技术干货体验 OpenStack Queens 的全新功能 — 卷多重挂载的主要内容,如果未能解决你的问题,请参考以下文章