代码之家  ›  专栏  ›  技术社区  ›  Mark S. Rasmussen

分布式文件系统健全性检查[关闭]

  •  3
  • Mark S. Rasmussen  · 技术社区  · 17 年前

    我非常喜欢像GFS这样的系统,它具有内置的备份冗余,从统计上讲,这将使文件丢失成为过去。

    • 开源
    • 无SPOFs
    • 自动文件复制(即不需要RAID)
    • 托管客户端访问
    • 文件的平面名称空间-最好是
    • 内置版本控制/延迟删除
    • 经验证的部署

    基本上,我需要一个编程错误的保护,突然清除了很多它不应该有的文件。而MogileFS确实保护我不受磁盘&通过在X个设备上复制我的文件而导致的机器错误,如果我进行了不必要的删除,则不会保存我。

    我希望能够指定删除操作在Y天后才真正生效。删除在逻辑上已经发生,但我可以将文件状态恢复Y天,直到它实际被删除为止。此外,MogileFS无法在写入过程中检查磁盘损坏情况,不过也可以添加这一功能。

    由于我们是一家Microsoft商店(Windows、.NET、MSSQL),我最希望核心部件在Windows上运行,以便于维护,而存储节点由于许可而运行*nix(或组合)。

    在我考虑自己翻滚之前,你有什么建议让我看看吗?我还查看了HadoopFS、OpenAFS、Lustre&GFS-但两者似乎都不符合我的要求。

    3 回复  |  直到 17 年前
        1
  •  1
  •   itsadok    17 年前

    你真的需要在你自己的服务器上托管吗?您需要的大部分内容都可以由AmazonS3提供。延迟删除功能可以通过将删除记录到SimpleDB表并定期运行垃圾收集过程来实现,以便在必要时删除文件。

    如果您仅依赖一个internet连接,则仍然存在单点故障。当然,你可以认为亚马逊本身是一个失败点,但由于规模的原因,失败率总是要低得多。

    希望您能认识到其他好处,即扩展到任何容量的能力。IT人员无需更换出现故障的磁盘或系统。随着磁盘容量和带宽变得更便宜,使用成本将持续下降(而您购买的磁盘价值会下降)。

    还可以采用混合方法,将S3用作安全的后端归档,并在本地缓存“热”数据,并找到最适合您的使用模型的缓存策略。这可以大大减少带宽使用并改进I/O,特别是在数据很少更改的情况下。

    缺点:

    • 只能全部更换或更换 删除。这非常适合缓存, 当需要时,效率不是很高
    • 延迟和带宽是 您的网络连接。缓存可以 获得相同水平的性能。

        2
  •  0
  •   Brian C. Lane    17 年前

    您可以尝试在可靠的文件系统上运行源代码管理系统。然后问题就变成了如何在超时后删除旧的签入。您可以使用DAV_SVN设置Apache服务器,它将提交通过DAV接口所做的每个更改。我不确定它在您描述的大文件大小下的扩展程度。

        3
  •  0
  •   Mark S. Rasmussen    17 年前

    @拧
    我也广泛考虑了S3,但我认为从长远来看,它不会让我们满意。我们有很多文件必须安全存储——不是通过文件ACL,而是通过我们的应用层。虽然这也可以通过S3实现,但我们对文件存储的控制却少了一点。此外,当我们进行文件操作时,延迟的形式也会有一个主要的缺点——初始保存(虽然可以异步进行),但当我们以后读取文件并必须对其执行操作时也会出现这种情况。

    作为SPOF的问题,这不是真的。我们的数据中心确实有冗余连接,虽然我不希望出现任何SPOF,但S3的少量停机时间是可以接受的。

    无限的可扩展性和无需维护绝对是一个优势。

    关于混合方法。如果我们直接从S3托管—除非我们希望以任何方式在本地存储所有内容(并且只使用S3作为备份),那么当我们添加S3+CloudFront时,带宽价格就太高了(CloudFront是必要的,因为我们有来自四面八方的客户机)。目前,我们在欧洲的数据中心托管所有内容,我们在美国有自己的reverse squids设置,用于低预算CDN功能。

    虽然它非常依赖于域,但可扩展性对我们来说不是问题。我们可以替换文件(也就是说,键X获得新内容),但我们永远不会对文件进行微小的修改。我们所有的文件都是斑点。

    推荐文章