一尘不染

s3fs将Amazon S3存储桶作为本地目录装载的稳定性如何

linux

s3fs在Linux中将Amazon S3存储桶挂载为本地目录的稳定性如何?在高需求的生产环境中是否推荐/稳定?

有更好的/类似的解决方案吗?

更新: 使用EBS并通过NFS将其安装到所有其他AMI会更好吗?


阅读 626

收藏
2020-06-03

共1个答案

一尘不染

在s3fs上有一篇不错的文章,阅读后我求助于EBS Share。

它强调了使用s3fs时应注意的一些重要注意事项,即与S3的固有局限性有关:

  • 没有文件可以超过5GB
  • 您无法部分更新文件,因此更改单个字节将重新上传整个文件。
  • 对许多小文件的操作非常有效(毕竟每个文件都是一个单独的S3对象),但是大文件的效率很低
  • 尽管S3支持部分/批量下载,但s3fs并未利用此功能,因此,如果您只想读取1GB文件的一个字节,则必须下载整个GB。

因此,这取决于您存储的内容s3fs是否可行。如果您要存储照片,例如要在其中写入整个文件或读取整个文件的位置,而从不增量更改文件,那么它就可以了,尽管有人会问,如果要这样做,那么为什么不只使用S3直接使用API​​?

如果您要在应用数据上(例如数据库文件,日志文件)进行小的增量更改,那么它绝对不是-S3 Just不能那样工作,您无法增量更改文件。

上面提到的文章确实讨论了类似的应用程序s3backer,它通过在S3上实现虚拟文件系统来解决性能问题。这可以解决性能问题,但它本身也有一些问题:

  • 由于写入延迟而造成数据损坏的高风险
  • 太小的块大小(例如,默认为4K)会增加大量额外成本(例如,具有4K块存储容量的50GB,130美元)
  • 太大的块大小会增加大量的数据传输和存储费用。
  • 内存使用可能会令人望而却步:默认情况下,它会缓存1000个块。
    使用默认的4K块大小不是问题,但是大多数用户
    可能会希望增加块大小。

我求助于EC2实例共享的EBS安装驱动器。但是您应该知道,尽管性能最高的选项有一个大问题,但EBS挂载NFS共享有其自身的问题-
单点故障;如果共享EBS卷的计算机出现故障,则您将失去所有访问共享的计算机的访问权限。

这是我能够忍受的风险,也是我最终选择的选项。我希望这有帮助。

2020-06-03