在 Amazon EBS 设备之间同步

Posted

技术标签:

【中文标题】在 Amazon EBS 设备之间同步【英文标题】:Syncing between Amazon EBS Devices 【发布时间】:2011-05-08 11:42:24 【问题描述】:

我有 2 个 EC2 实例,每个实例都附加了自己的 EBS。位于 EC2 前面的是负载均衡器。

这些实例运行 CMS 驱动的站点,用户可以在其中上传文件。

对于将文件上传到一个 EBS 并且负载均衡器将访问者发送到其 EBS 没有该文件的 EC2 实例的问题,最好的解决方案是什么?某种运行 rsync 的 cron?

欢迎提出建议!

谢谢

S

【问题讨论】:

【参考方案1】:

我相信最好的解决方案是使用像Amazon S3 这样的单一共享存储。最好为您的 CMS 使用一些插件将用户的文件存储在 S3 上。但如果没有这样的插件,您可以使用Fuse s3fs 适配器在两个实例上挂载文件系统,并配置您的 CMS 以将这些文件存储在指定的目录中。

【讨论】:

【参考方案2】:

我认为这个问题有几种解决方案

nfs/samba 实例间共享目录 svn 部署 集群文件系统 - OCFS/GFS 云管理,例如 capistrano 和在需要时触发部署 当然还有 cron 作业,您可以执行 ftp、scp、rsync、s3sync/copy 等操作

【讨论】:

【参考方案3】:

或者可能,创建一个 EC2 实例作为 NFS 并与您的其他实例共享它的目录。

【讨论】:

【参考方案4】:

有多种解决方案可以在使用或不使用 EBS 卷的情况下保持 EC2 中的数据同步。

    可以使用 AWS EFS 服务而不是使用 EBS 卷。 EFS 卷可以在 VPC 内的 EC2 实例之间共享,并且两个实例将在 EFS 安装在实例上的安装路径上同步数据。 另一个解决方案是使用 Gluster 文件存储。这也可以在不同 AWS 区域的 EBS 卷之间工作。参考这个链接:http://sanketdangi.com/post/5601762671/gluster-config-aws-multi-az 可以使用 S3 Fuse 在您的 EC2 实例上挂载 S3 存储桶。参考这个链接:https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon 也许您也可以在两个 ebs 卷上使用“s3 sync”。这样,两个 eb 将通过 S3 同步。参考这个链接:https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

【讨论】:

以上是关于在 Amazon EBS 设备之间同步的主要内容,如果未能解决你的问题,请参考以下文章

Amazon EC2 - 使用实例存储根设备转换 EBS 根设备

使用“实例存储”停止 Amazon EC2 实例

Linux 系统中指定的 EBS 卷名和实际设备名之间的链接

Amazon Elastic Block Storage (EBS) 和 Microsoft Azure Drives 之间的差异

Ceph介绍

Amazon EBS 性能提示