s3fs在linux中将Amazon S3 bucket装载为本地目录的 solidity 如何?对于高需求的生产环境,它是否推荐/稳定?

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

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

推荐答案

There's a good article on s3fs here,读完后我求助于EBS分享.

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

  • 任何文件都不能超过5GB
  • 不能部分更新文件,因此更改单个字节将重新上载整个文件.
  • 对许多小文件的操作非常高效(毕竟每个文件都是一个单独的S3对象),但对大文件的操作效率非常低
  • 虽然S3支持部分/分块下载,但s3fs没有利用这一点,因此如果您只想读取1GB文件的一个字节,就必须下载整个GB.

因此,s3fs是否可行取决于您存储的内容.如果你存储的是照片,你想写一个完整的文件,或者读一个完整的文件,而不是增量地改变一个文件,那么这很好,尽管有人可能会问,如果你这样做,为什么不直接使用S3的API呢?

如果你说的是应用程序数据(比如数据库文件、日志(log)文件),你想做一些小的增量更改,那么肯定不行——S3不能以这种方式工作——你不能增量更改文件.

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

  • 由于写入延迟,数据损坏的风险很高
  • 块大小过小(例如,4K默认值)会增加显著的错误
  • 块大小过大会增加大量数据传输和存储
  • 内存使用可能会被禁止:默认情况下,它会缓存1000个块

我求助于一个EC2实例中安装的EBS驱动共享.但是你应该知道,虽然这是最有效的 Select ,但它有一个大问题

这是我能够承受的风险,也是我最终 Select 的 Select .我希望这有帮助.

Linux相关问答推荐

无法在Raspberry PI 3 Model B上分配256TB的虚拟内存

在linux中,我想将昨天的文件与今天的文件进行比较,仅将今天的更改作为输出,忽略一些字段

Docker 不保留 chown 用户设置

运行系统命令失败,但相同的命令可以直接在 bash 中执行

如何在Linux下使用正则表达式更改文件名

输出特定字符的所有列号

使用 awk 将索引列添加到 csv

如何使用 __attribute__((visibility("default")))?

适用于 Linux 和 Mac 的 HTTP 调试代理

Bash 命令 :(){ :|:& };: 将产生进程导致内核死亡.你能解释一下语法吗?

将以前忽略的目录添加到 Git 存储库

SVN 错误:无法将字符串从本机编码转换为UTF-8

在亚马逊 ec2 linux 微型实例上的 virtualenv 中安装 scipy 时遇到问题

为什么可执行文件操作系统依赖于?

何时使用管道与何时使用共享内存

如果关键字触发然后执行命令,Shell 脚本来监视日志(log)文件?

Monit 守护程序 - 连接到 monit 守护程序时出错

如何在 Linux 上传递带感叹号的参数?

判断环境变量是否已经设置

未找到版本CXXABI_1.3.8(...要求)