Manila/Program Application
官方标题
共享文件系统
使命宣言
共享文件系统程序的目标是在多租户云环境中提供一组用于管理共享文件系统的服务,类似于 OpenStack 通过块存储程序提供块存储管理的方式。
我们旨在提供一个供应商中立的管理接口,用于配置和挂载诸如 NFS、CIFS 等共享文件系统。在尽可能的情况下,我们旨在镜像块存储程序的架构,支持公共 REST API、多个后端以及执行资源分配决策的调度器。当无法避免差异时,我们计划设计与 OpenStack 模块化和可扩展性理念兼容的解决方案。
交付成果
- 一组服务(API 服务器、调度器和共享管理器),为多租户云中的自助配置和管理共享文件系统提供基础设施
- 一个基于 CLI 的客户端,供用户和管理员与 API 交互
- 一个 Horizon GUI 插件
- 一个“通用”纯软件驱动程序,可在任何硬件上运行,允许人们在没有专用设备的情况下使用该服务
- 一个示例镜像(基于 cirros),实现部分“通用”存储服务,并提供有关管理员如何创建自己的文档
- 一组用于商业 NAS 存储服务器的驱动程序
- API 文档、管理员文档和开发者文档
仓库
- 项目代码:https://github.com/stackforge/manila
- Python 客户端:https://github.com/stackforge/python-manilaclient
ATC 状态
该程序授予在过去两个发布周期内向任何程序仓库提交代码的任何人 Active Technical Contributor (ATC) 状态。核心项目团队成员可以授予重要的非代码贡献者 ATC 状态,持续两个周期。
开发团队
PTLː
- Ben Swartzlander
核心团队ː
- Yulia Portnova
- Valeriy Ponomaryov
- Xing Yang
重要贡献者ː
- Alex Meade
- Rushil Chugh
- Clinton Knight
- Vitaly Kostenko
- Andrei Ostapenko
- Aleksandr Chirko
- Csaba Henk
- Ramana Raja
- Christian Berendt
为什么需要一个新的程序?
我们启动一个新的程序主要有两个原因
- 最初,我们试图通过扩展块存储程序的范围来解决上述需求,但 Cinder 核心团队不希望承担额外的责任。这使我们别无选择,只能启动一个新的程序。
- 虽然块存储和共享文件系统之间存在一些重叠,但技术实现细节和用例足以需要一个专门的开发团队来解决与共享文件系统相关的独特问题。保持程序的独立性非常有益,因为它允许每个团队专注于不同的问题,并最终完成更多工作。
注意:Manila 最初是 Cinder 的一个分支,因为它提供了共享文件系统服务所依赖的许多概念,例如容量、目标(在 NAS 术语中为服务器)、发起者(同样,在引用共享文件系统时为客户端)。Cinder 的容量、目标、发起者等概念在概念上(如果并非完全在语义上)都是通用的,并且广泛适用于块和基于文件的存储。Cinder 的一些特定功能(例如过滤器调度器、类型概念和额外规范)同样适用于共享文件系统的配置。因此,Manila 基于 Cinder 的演进。然而,Manila 解决了 Cinder 操作中不相关的一系列其他问题(例如,配置到租户 SDN、映射到身份验证机构/用户命名空间等)。在 Cinder 社区内部进行了深入讨论,并咨询了技术委员会成员后,确定建立一个专门设计和开发以提供共享/分布式文件系统作为服务的独立项目是最可行的方案。 计划是将 Cinder 和文件共享服务之间剩余的通用性逐步迁移到 Oslo 中,在合理的情况下。