我正在构建一个具有不同存储大小的分布式存储系统。例如,我的存储设备在一个系统中的大小为50 in、70 in、150 in、250 in、1000 in、5个存储系统。我的应用程序会将任何文件存储到存储系统中。
问题:我如何建立一个分布式存储的想法,数据冗余和故障转移,以存储文件,视频,任何类型的文件,同时确保如果任何一个存储设备故障,这些文件的另一个副本在另一个存储设备。然而,值得关注的是,50 in的存储只能存储这个最大数量的文件,而不是70 in、150 in等。考虑到一个存储,就像云存储这样的5个存储系统,有什么逻辑方法可以通过我的应用程序分发或存储这些文件呢?
如何通过不同的存储大小来确保数据冗余?是否有将多个blob文件整理成单个文件存档的算法?对于一个具有多个不同存储大小的云存储,最佳解决方案是什么?
在开始讨论这个主题时,我的目标是讨论实现这一想法的最佳方法,假设简单,这种实现的问题是什么,性能度量和对限制的讨论。
发布于 2013-06-29 12:39:00
有两个经典的NP难题与你的问题有关。
因为它们都是NP难的,所以真的没有一个“完美”的先验算法来解决这个问题。这就回答了你的第三个问题--没有一个“最好的系统”来解决这个问题。另一方面,这些文章提供了相当多的近似,您可以使用它来“欺骗”问题并提出一个合理的解决方案。
从更高的角度来看,考虑拥有某种元数据存储层(也称为数据库),以便跟踪备份系统中的文件以及主副本和备份副本所在的位置。这对你的第一个问题有帮助。拥有冗余副本只是业务逻辑的一部分,您可以编写规则来验证逻辑是否满足,或者通过复制来采取纠正措施。
对于第二个问题,背包问题直接适用--一个文件中的多个blobs是经典问题的一个非常简单的重复。
https://softwareengineering.stackexchange.com/questions/203135
复制相似问题