硬件抽象对于大量文件来说是否足够?

硬件抽象对于大量文件来说是否足够?

我正在开发的 Web 应用程序将用于上传/下载大量较小文件 - 我正在查看接近 1B 的文件,总大小超过 10Pb。我目前正在努力确定支持如此大容量的可扩展架构。我的问题是 - 有没有办法构建某种存储,让 Windows 服务器将其视为一个巨大的(10Pb 及以上)网络存储驱动器,这样我就可以将所有文件写入该虚拟驱动器的子文件夹?它的性能如何?

现在我试图了解这是否可能,或者我是否必须实现软件级分片 - 根据某些密钥将文件写入不同的驱动器。

我是一名开发人员,而不是系统管理员,所以如果这是一个幼稚的问题,我深表歉意,并提前感谢您耐心地向我解释可能微不足道的事情。

安德烈

答案1

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

使用类似文件的应用程序级库:

通用键值:

答案2

查看 Backblaze 如何存储其数据。非常好读,他们有一个关于新 3TB 硬盘的博客。这可能不会回答有关文件系统的问题。我不确定 Backblaze 如何处理文件结构。但无论如何都是很好的信息。

答案3

在继续查看之前,您需要更准确地确定您需要哪种语义。例如,您说它们是文件 - 您是否需要在存储上使用 POSIX 文件语义(主要关注一致性和锁定)?或者各种分布式数据存储的“最终一致性”是否足够?您的 I/O 要求是什么:有多少并发访问?您的冗余要求是什么?还有:您要使用哪种硬件?10Pb 阵列不是树上长出来的,管理它们就是一份全职工作 - 那么多硬件意味着故障是正常事件,因此需要不断维修和更换。

从你所说的“网络应用程序...存储文件...”我认为OpenStack或者S3这类解决方案应该对你有用。由于你主要是一名开发人员,我建议你可能想实际使用亚马逊或Rackspace或者任何人作为您的提供商,除非您确实想进入硬件管理行业。

答案4

现在您可能会考虑 HDFS 和通用的 Hadoop 生态系统。

相关内容