【问题标题】:S3 buckets randomly unmount on EC2 instanceS3 存储桶在 EC2 实例上随机卸载
【发布时间】:2013-08-14 12:26:51
【问题描述】:

我的公司目前正在使用 AWS 的 S3fs 和 Ec2。我们已经在 Ec2 实例上安装了我们的 s3 存储桶,但一段时间后(例如一周),一些存储桶自行卸载,我们的服务器实例几乎变得无用。错误是“传输端点未连接”。

S3fs 版本:1.61 从源代码构建

FUSE 版本:2.84.1 从源代码构建

操作系统:Linux、Ubuntu 11.04

是否有某种安全机制可以防止(或至少检测)这些问题?

【问题讨论】:

  • 更多细节:操作系统版本? s3fs lib版本?挂载选项?使用 s3fs 代替 EBS 存储的理由?
  • 我们遇到了同样的问题。目前我们的理论是它与负载有关。我们正在测试 s3fs 作为应用服务器共享资产的共享文件系统,我们在负载测试期间注意到了这些错误。如果我发现更多信息,我会更新。
  • 运行 s3fs --version Amazon Simple Storage Service 文件系统 1.61 pkg-config --modversion fuse 2.8.6 我必须手动构建这两个版本。我今天能够来回传输数十个数千个文件。我让它在我们的测试服务器上运行,但这看起来不错,因为之前的版本会在 20 或 30 分钟的持续 io 后失败。

标签: amazon-ec2 amazon-web-services s3fs


【解决方案1】:

伟大的洞察力。没有想过这个。但我们可以采取以下 3 个预防措施:

1) 创建一个自动挂载,以便万一 EC2 关闭,一旦 EC2 通过 /etc/fstab

恢复,S3 就会重新挂载

2) 或者/如果您愿意,可以使用 cron 创建辅助自动挂载:

echo "/usr/bin/s3fs [s3 bucket name] [mountpoint path] -o allow_other" >> automount-s3
sudo mv automount-s3 /usr/sbin
sudo chown root:ubuntu /usr/sbin/automount-s3
sudo chmod +x /usr/sbin/automount-s3

crontab -e

添加这一行

@reboot /usr/sbin/automount-s3

3) 我还会创建另一个每小时 cron 来检查 S3 是否仍然挂载 - 这可以通过检查 EC2 路径中是否存在虚拟文件来完成。如果文件不存在,cron 将通过调用“/usr/bin/s3fs -o allow_other [s3 bucket name] [mountpoint path]”进行手动挂载。最好向管理员发送电子邮件并将其登录到系统中。

【讨论】:

    【解决方案2】:

    s3fs 是个好主意,但请记住,即使对 s3 的调用 可能 在某种程度上是内部的(或者我们说“在他们的网络上”),您仍然通过 HTTP 安装文件系统.从长远来看,这不会是稳定的。

    也许您可以重新表述您的问题以寻求替代方案,并通过使用任何类型的(我猜的)共享网络文件系统来分享您尝试完成的任务。我可以看到它的吸引力,但是对于 Amazon EC2,人们通常使用 shared nothing 方法,并且应该避免任何与网络相关的额外内容,以便能够更轻松地回收实例等。

    很高兴扩展我的回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      相关资源
      最近更新 更多