ownCloud 架构的优势之一是它可以从小规模安装(例如适用于 1-10 个用户的 Raspberry Pi)扩展到多达 500,000 个用户和一个拍字节的存储空间,并在强大的集群设置中运行。我们与研究机构 CERN 和 AARnet 合作,将此提升到一个新的水平——共同突破拍字节壁垒。
与 CERN 合作开发 9.0 版本
为了使 ownCloud 为下一个里程碑和多拍字节规模做好准备,我们与世界上最大的粒子物理实验室欧洲研究组织 CERN 以及澳大利亚的研究机构全国性网络提供商 AARNET(澳大利亚学术和研究网络)的 IT 团队进行了合作。CERN 拥有一个 极其强大的基础设施,用于收集和分发每天产生约一个拍字节的数据,供全球 8,000 多名科学家和科研组织进行分析。文件存储系统名为 EOS,在 1,000 个节点上的 35,000 个硬盘上拥有 140 拍字节的存储空间,分布在两个站点,能够提供 2x100Gb/s 的速度。在 EOS 的基础上,ownCloud 为共享和协作提供了一个用户界面。
节点分布在两个站点,能够提供 2x100Gb/s 的速度。在 EOS 的基础上,ownCloud 为共享和协作提供了一个用户界面。
我们之前曾与 CERN 合作过 当我们采用他们为 ownCloud 同步过程开发的测试框架时。这一次,我们将目光投向了我们的数据存储基础设施。
扩展到新的水平
ownCloud 始终支持本地文件系统和 NFS 存储。在 IBM Spectrum Scale 或富士通和其他公司的存储产品之上运行,使 ownCloud 用户能够扩展到 10 万用户。一年前,我们增加了对 S3 和 Swift 兼容对象存储的支持,以支持更多的存储后端。但我们希望进一步突破界限。在 ownCloud 9.0 中,我们的目标是使存储后端能够深度集成到其底层存储中,例如使用其现有的元数据功能。这意味着我们将不再需要在 ownCloud 数据库中存储和管理这些元数据,从而消除潜在的瓶颈,并允许 CERN 的 EOS 等创新技术与 ownCloud 深度集成。此功能是根据 CERN(以及 AARNet 和其他大学及研究机构)在去年 ownCloud 贡献者大会上提供的反馈开发的。这些组织希望通过 ownCloud 透明地为科学家提供对其大量拍字节数据的访问和共享能力。
结果
因此,对于 ownCloud 9.0,我们开发了新的存储和共享 API,这使得编写存储连接器成为可能,这些连接器可以直接从存储访问和使用高级功能和元数据。一个例子是 EOS 文件系统,它由 CERN 开发和使用,用于存储和管理其大量的科学数据。该文件系统可以提供元数据,例如 ETag、FileID 等,ownCloud 9.0 可以直接使用这些元数据,从而避免了将其存储在 ownCloud 数据库中,并实现了所需的开销减少。还可以选择利用存储层的现有共享功能(如果可用),这消除了将共享信息存储在中央数据库中的需要。
在 github 上有一个 示例实现 和 开发者文档,展示了如何编写这种深度集成的存储连接器。
在开发过程中,我们定期收到 CERN 团队成员在 GitHub 上对设计、架构和 API 的反馈。此外,CERN 已承诺对新的 API 进行广泛的测试。目前,该团队正在更新到 ownCloud 8.2,一旦完成,他们将开始使用新的 API 进行测试。计划进行进一步的更改,我们将继续从他们在该领域的投入和经验中获益。由于与 CERN 团队的对话,我们可能会看到进一步的可扩展性改进,他们指出了当前方法中的一些瓶颈。
开放协作
CERN、AARNet、ownCloud 和其他机构之间的这种合作,充分展示了完全开放的开发过程和开源软件的优势。所有讨论、代码审查和测试都在 GitHub 上公开进行,表明开放透明的流程如何保证我们获得最佳结果。
像 ownCloud 这样自然成长的项目,经常会达到这样的节点:不断发展的需求需要对代码库进行大量的重新架构和调整,以适应新的现实。根据我们的经验,在经历这样的转型并在开放的环境中工作,并直接从最终用户那里获得反馈,是一个巨大的好处,对所有参与者来说都是双赢的,并加快了走向成熟的步伐。
1 条评论