我一直在玩亚马逊的网络服务超过一年,但我不太了解它是如何运作的。例如,当我从EC2控制台中选择我选择的AMI并继续完成向导时,我会到达"存储配置选项卡"。这里有几种选择。
有根卷选项卡,然后是EBS卷选项卡。这两者有何不同?我可以为每个分配的最大大小是多少?如何配置EBS卷以使用我的实例?比方说,我决定创建8个EBS卷,每个卷具有25 GB的存储空间....现在用于类似Postgresql数据库的东西,它自然地存在于根设备上,我如何配置它以便数据库存储在所有8个EBS卷中?从某种意义上说,8个EBS卷成为一个200 GB的驱动器,而postgres数据库数据存储在整个驱动器中。
任何形式的澄清将不胜感激。
答案 0 :(得分:10)
您应该阅读benefits of EBS vs instance store。我还写了一些关于这个on my work blog recently的PostgreSQL角度。另请参阅what root device to use for a new EC2 instance以及相关侧栏中列出的其他问题。
除非您仔细设置复制和定期备份,否则实例存储最终会占用您的数据。如果实例失败或终止,则无法将数据恢复到实例存储中。无论如何,您需要良好的备份,这对于实例存储更为重要,您需要更加谨慎地设置近实时复制。
另一方面,EBS更有可能受到暂停和故障影响,使其暂时无法使用;您的数据可能仍然存在,但如果您在几个小时内无法访问它,则在修复故障之前无法进行故障转移。所以你真的需要良好的备份和复制。
快速回答,我会在帖子中留下详细解释:
根卷是EBS或实例存储,具体取决于AMI类型。
在卷标签中,您可以添加其他卷。无论AMI类型如何,您都可以在创建卷时选择这些是EBS还是实例存储卷。不同的实例大小对实例存储卷的数量和大小有不同的限制,但都对EBS卷具有相同的限制。
实例存储卷的最大大小由实例类型定义。请参阅实例的文档。 EBS卷的最大大小位于the EBS documentation的第一段:
Amazon EBS卷在特定的可用区中创建,大小可以从1 GB到1 TB。
PostgreSQL数据库并非“自然地存在于根卷上”。它住在你放的地方。如果您使用的是软件包管理器安装版本,它通常会放在/var/lib/pgsql
或/var/lib/postgres
中,但您可以更改启动脚本选项以将其移至其他位置,将其替换为符号链接所需位置,或在该点安装新卷。关于如何在Stack Overflow,dba.stackexchange.com和serverfault上移动PostgreSQL有很多讨论,所以我不会在这里重复所有这些。
要合并多个EBS卷,请使用Linux的软件RAID(md)。就Linux而言,EBS就像任何其他磁盘一样,所以请参阅设置Linux软件RAID的常用文档。
就我个人而言,我对EC2的表现一直不感兴趣,至少对于PostgreSQL。你可以运行一个非常快速的数据库,但只能以非常低的价格运行。如果你想为一个短期工作启动一些大型数据库,这是非常方便的,但它不是经济的长期托管选项,你最好看看提供更好的I / O性能的VPS提供商。搜索ServerFault,dba.stackexchange.com等
最后,提醒一下:高I / O实例上的实例存储似乎比其他选项更快......但如果您必须关闭或重新启动实例或实例失败,您将丢失实例上的所有数据存储卷,因此如果您要使用实例存储,必须具有良好的备份和实时复制。
答案 1 :(得分:-1)
答案较短的答案是:
对于快速和脏,您可以在所有EC2实例上存储实例,并对S3执行备份。 EBS优于实例存储的优势在于,当您终止该服务器时,EBS将保留并可以重用,而实例存储则不会。
200Gb是一个小空间,你可以为它获得一个存储设备(实例存储),然后备份到S3或复制整个200Gb的东西。有可能,您将不会使用RAID或haddrive复制来提高数据库的可靠性/可用性。
TL;博士
使用实例存储,除非您需要在服务器之间传输卷。