硬件抽象是否足够大量的文件?

我正在使用的Web应用程序将用于上传/下载大量/较小尺寸的文件 – 我正在查看总大小> 10Pb的1B文件。 我目前正在努力决定可支持这种数额的可扩展架构。 这里是我的问题 – 有没有办法build立某种types的存储将被视窗服务器看作一个巨大的(10PB及以上)networking存储驱动器,所以我可以写所有的文件到该虚拟驱动器的子文件夹? 它将如何执行?

现在我试图了解是否有可能,或者如果我必须实现软件级分片 – 基于某个密钥将文件写入不同的驱动器。

我是一个开发人员,而不是系统pipe理员,所以我很抱歉,如果这是一个天真的问题,并提前感谢耐心解释我可能微不足道的事情。

安德烈

作为一个“正常但巨大”的文件服务器:

  • glusterfs
  • lustrefs

与一个类似文件的应用程序级库:

  • 亚马逊S3
  • rackspace cloudfiles
  • mogilefs

通用键值:

  • MongoDB的
  • BDB
  • 东京内阁
  • …很多人

看看Backblaze如何存储它的数据。 非常好的阅读,他们有一个关于新的3TB驱动器的博客。 这可能不会回答有关文件系统的问题。 我不知道Backblaze如何在那里build立文件结构。 但是,好消息。

在你继续寻找之前,你需要确定一下你需要什么types的语义。 例如,你说他们是文件 – 你需要POSIX文件语义(主要关心一致性和locking)在他们的存储? 或者是各种分布式数据存储的“最终一致性”足够了? 什么是你的I / O要求:多less并发访问? 你有什么冗余要求? 另外:你打算使用什么样的硬件? 10Pbarrays不会在树上长大,只是pipe理它们是一个全职工作 – 硬件意味着失败是一个正常的事情,所以需要不断的修复和更换。

从你所说的“networking应用程序…存储文件…”我认为OpenStack或S3types的解决scheme应该做你。 由于你大多是开发人员,所以我build议你可能想要使用amazon或Rackspace或者任何人作为你的提供者,除非你真的想进入硬件pipe理部门。

现在你可能会考虑HDFS和一般的Hadoop生态系统。