您能将AmazonEBS附加到多个实例吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我们目前使用多个访问一台mysql服务器和文件服务器的网络服务器。看着转移到云端,我可以使用相同的设置并将EBS附加到多个机器实例或另一种解决方案吗?

提问于
用户回答回答于

不,这就像在两台电脑中使用硬盘。

如果你想共享数据,你可以设置一个你的所有实例都可以访问的服务器。如果你想为所有实例设置一个简单的存储区域,则可以使用Amazon的S3存储服务来存储分布式和可扩展的数据。

移到云端,你可以拥有完全相同的设置,但你可以使用S3替换文件服务器,或者将所有实例连接到文件服务器。

你有很多选择,但在实例之间共享硬盘可能不是最佳选择。

用户回答回答于

即使能够将EBS卷连接到多个实例,它也会是_REALLY_BAD_IDEA_。这就像是一次在两台电脑上使用硬盘驱动器

为什么这是一个坏主意? ......不能将卷附加到多个实例的原因是EBS提供了一个“块存储”抽象,用户在其上运行ext2 / ext3 / etc等文件系统。大多数这些文件系统(例如,ext2 / 3,FAT,NTFS等)是假定它们具有对块设备的独占访问权限而编写的。访问相同文件系统的两个实例几乎肯定会以流泪和数据损坏而告终。

换句话说,如果你正在运行一个旨在在多台机器之间共享一个块设备的群集文件系统,则双重安装EBS卷才会有效。而且,即使这样也是不够的。EBS将需要针对此场景进行测试,并确保它提供与其他共享块设备解决方案相同的一致性保证......即,块不会缓存在中间非共享级别,如Dom0内核,Xen层,和DomU内核。然后在多个客户端之间同步块的性能考虑因素 - 大多数集群文件系统都设计用于高速专用SAN,而不是尽力而为的商品以太网。这听起来很简单,但你要求的是一件非常平凡的事情。

或者,查看您的数据共享方案是否可以是NFS,SMB / CIFS,SimpleDB或S3。这些解决方案都使用旨在共享文件而无共享块设备子系统的更高层协议。很多时候,这样的解决方案实际上更高效。

在你的情况下,你仍然可以拥有一个单独的MySql实例/文件服务器,它可以被多个Web前端访问。该文件服务器可以将其数据存储在EBS卷上,以便您可以进行夜间快照备份。如果运行文件服务器的实例丢失,您可以分离EBS卷并将其重新附加到新的文件服务器实例,并在几分钟内备份并运行。

“有没有像S3那样的文件系统?” - 是和不是。是的,有像s3fs这样的第三方解决方案可以“正常”工作,但仍然需要为每次读/写都花费相对昂贵的Web服务。对于共享工具目录,效果很好。对于您在HPC世界看到的那种FS集群使用情况,这不是一个机会。为了做得更好,你需要一个提供二进制连接导向协议的新服务,比如NFS。提供这样一个具有合理性能和行为的多装载文件系统将成为EC2的一大特色附加组件。我一直以来都是亚马逊的倡导者,希望能够建立类似的东西。

扫码关注云+社区