【问题标题】:Stream dd stdout from ec2 to s3将 dd stdout 从 ec2 流式传输到 s3
【发布时间】:2018-01-20 05:00:50
【问题描述】:

试图在 EBS 快照上节省资金,因此想法是手动复制文件系统(使用 dd)并在 S3 中手动存储到 IA 和 Glacier 的生命周期。

以下内容适用于较小的文件(使用 1GB 进行测试),但在较大的文件(~800GB)上,大约 40GB 后,一切都会慢下来,永远不会完成

sudo dd if=/dev/sdb bs=64M status=progress | aws s3 cp - s3://my-bucket/sdb_backup.img --sse AES256 --storage-class STANDARD_IA

从 m4.4xlarge 实例(16 vcpu,64GB RAM)运行它

不确定为什么它会停止爬行,或者这是否是解决此问题的最佳方法(手动将文件系统存储在 s3 Infrequent Access 存储类上)

有什么想法吗?

谢谢!!

【问题讨论】:

  • 您是否确认它没有在某处创建大的临时文件? aws 进程的 CPU 使用率如何?根据我的经验,aws-cli 不能很好地处理大型上传。几年前,我编写了自己的实用程序来执行此操作,尽管我不再进行流式上传,因为 sc1 EBS 卷和临时磁盘为暂存大型上传提供了具有成本效益的临时空间。
  • 您是否查看过您的 AWS 账单、快照存储费用...并将他们向您收取的费用与您所有快照的总大小进行比较?您可能正在追逐想象中的储蓄。在一个地区,我拥有近 92,000 GB 的快照 (92 TB),但 EBS 只向我收取 10,300 GB (10.3 TB) 的费用。 EBS shapshots 提供的重复数据删除和压缩意味着我实际支付的费用为 0.0056 美元/GB……仅超过标价的 1/10。在另一个地区,该比率没有那么高,因此约为 0.0126 美元/GB。除非您自己也进行重复数据删除和压缩,否则您的情况不会更好。
  • 将仔细检查此@Michael-sqlbot。谢谢!

标签: linux amazon-web-services amazon-s3 amazon-ec2 dd


【解决方案1】:

这不是一个好主意,因为快照是增量的,所以从接下来的几张手工快照开始,你会花更多的钱。

如果您仍然想要这种方式,请考虑分段上传(最多 5GB 的块)。

【讨论】:

    【解决方案2】:

    您可以使用 goofys 之类的东西将输出重定向到 S3。我亲自测试了最大 1TB 的文件。

    【讨论】:

      【解决方案3】:

      首先考虑大尺寸的分段上传。

      第二次使用压缩版,

      dd if=/dev/sdX | gzip -c | aws s3 cp - s3://bucket-name/desired_image_name.img
      

      【讨论】:

        【解决方案4】:

        如果您希望将文件复制到 Amazon S3,最简单的方法是使用AWS Command-Line Interface (CLI)

        aws s3 sync dir s3://my-bucket/dir
        

        作为标准-不频繁访问的替代方法,您可以在 S3 存储桶上创建生命周期策略,以将文件移动到 Glacier。 (这对于长期存储是值得的,但由于请求费用较高,因此不适合短期存储。)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-01
          • 1970-01-01
          • 2011-11-10
          • 1970-01-01
          • 2018-12-07
          • 1970-01-01
          • 2015-10-15
          相关资源
          最近更新 更多