一.弹性可持续存储(EBS)概述

<本文属原创,如需转载请与本人联系>

1. 什么是EBS Elastic Block Store)?

Amazon EBSAmazon的一个新性能,提供对Amazon EC2应用持续存储,也可以通过卷(Volumes)对块存储随机访问。EBS可以以Volumes1GB-1TB)的形式附着在运行的EC2 instance(同一有效的Zone内)上,从而提供高性能、高可靠性的持续块存储。每个EBSVolume都可以格式化后作为一个文件系统被载入。同时,你也可以直接、随机访问每个数据存储块。

与只提供持续“文件”存储的S3不同,EBS提供持续的“块”存储。现在通过EBS你可以随机访问一个Volume文件系统中的所有内容。

运行(run-time)或引导(boot-time)时可以将EBSvolumes加载到Instances上。在特定的时间点给VolumeEBS快照(Snapshots),然后可以通过这个Snapshot生成多个Volumes并可以将其设置在不同的Zones中。

InstanceVolume间的关系类似于电脑和外部存储器。如果不恰当的移除外部存储器或者关掉电脑,可以导致数据损坏或不连续。一旦volume被删除,数据就会永久擦除,所以你必须记得要频繁地做Snapshots

Ø         EBSVolumes存在内部冗余

Ø         用户自定义EBS Volume的大小:1GB-1TB

Ø         任何时候每个Volume只能被加载到一个Instance

Ø         Instances只能加载同一个有效Zone中的EBS Volumes

Ø         多个EBS Volumes可以被加载到同一个Instance上。

Ø         在任何时间点都可以对EBS VolumeEBS Snapshot

Ø         EBS Snapshots以累加的方式存储在S3上。但会在S3bucketfile列表中会被隐藏掉;

Ø         通过同一个EBS Snapshot可以在任何Zone中创建多个EBS Volumes

2. 持久性数据

       VolumesInstance本质上是不同的部件。如果一个Instance(加载过Volume)被正确的关闭(Shutdown)并将相应的Volume正确的卸载,这个Volume可以继续被用于它的有效Zone中,并且可以被加载到所在Zone的其他的Instance上。如果需要的话以后可以通过一个VolumeSnapshot在任何Zone中创建Volume

3. Snapshot

       一个EBSSnapshot代表了某一特殊时刻的一个Volume。你可以创建一个Snapshot而不用管这个Volume是否已被加载到了一个Instance上。一档一个Snapshot被存储到S3上后,它就可以获得一个时间戳(Timestamp)和一个唯一的AWS ID (例如:snap-9cea0df5)。Snapshots包含了累计存储到S3的一系列数据块。从任何一个Snapshot都可以克隆创建多个Volumes。不可以将同一个Volume加载到多个Instances 然而,你必须先给一个Volume创建一个Snapshot,然后通过Snapshot在可用的Zone内克隆这个Volume

4. 快速备份(Backups

       通过EBSBackupsSnapshots)不再由Instance来执行。由于与本地的CPU不在相关,执行备份对应用程序的性能不会产生太大影响。封存一个Volume并做一个Snapshot所花费的时间要比创建一个巨大的.rar文件要少得多。

       Snapshot是个短小的断点,不受某个或者某些Volumes大小的影响。Snapshot将会在系统恢复后的较长一段时间里完成,对正在运行的VolumeVolumes影响不大。

5. 高效的数据存储

       由于Snapshots的数据块可以累计存储到S3上,Snapshot可以提供更高效的数据存储和备份。Volume的第一个Snapshot包含了所有的数据块,接下来的每个Snapshot只存储针对前一个版本变化的数据。针对每个Snapshot都会生成一个内容表指明每个数据块的最新版本。


6. EBS的优点

       要更好的了解大背景,可以阅读下列Blog

         ·  Amazon's Elastic Block Store explained

·  Why Amazon's Elastic Block Store Matters

7. EBS工作原理

       下边的图表显示了一个典型的Volume/Snapshot的生命周期


8. 一个Instance可以加载多少个Volumes

每个账号只能用20EBS Volumes。如果需要20个以上的EBS Volumes,你可以通过Amazon EBS的申请表来申请。每个Volume的大小为1GB1TB,你最多可以为每个Instance加载20Volumes,然而我们推荐每个Instance不要加载超过10Volumes。有了EBS,即使是超过160GB的应用只要有一个小的Instance就够了,而没有必要去申请一个大的(Large)或者超大(X-large)的 instance

       当讲一个Volumes加载到Instance上时,请选择一个预设好的设备(device)名字

  • /dev/sdj

  • /dev/sdk

  • /dev/sdl

  • /dev/sdm

注意 每个加载到Instance上的Volume都必须具有唯一的设备(Device)名。


9. EBS费用

EBS的费用与存储在S3上的数据收费标准相似。 EBS相关的费用有三类。

Storage Cost + Transaction Cost + S3 Snapshot Cost = Total Cost of EBS

总的EBS费用 = 存储费用 + 交易(事务处理)费用 + S3Snapshot费用

注意:当前的价格信息请参考:Amazon EC2 Pricing

Ø         Storage Costs:你需要为你预定的硬盘空间而不是你实际使用的空间付费。也就是说如果你预定了1TBVolume而禁用了1GB,你还是要付1TB的钱。

Ø         Transaction Costs:除了EBS Volumes的存储费用外,还需要为事物I/O处理付费。每个事务处理等同于一次读或者写。由于所有的Linux系统都使用了Catche,这个数目可能要比你的应用程序实际处理的事物要少些。

Ø         S3 Snapshot CostsSnapshot花费是紧缩的,只针对前一个Snapshot备份的变化块收费。例如, 删除一个有变化块的文件将增加Snapshot的费用。切记,Snapshot是以数据库为基础的。

注意:当你删除Volume的那一刻就停止收费了。如果你删除一个Volume,并且在很长一段时间里显示“Deleting”状态,你不需要为完成“删除”所花的时间付费。

10. EBS Lineage

通过一个特定的VolumeLineageSnapshots标签可以跟踪该Volume的历史记录。EBS中的每个Object都会记住他的父类。然而,一旦Volumes 或者Snapshots被删除了,EBS将不会再有任何记录。


你可能感兴趣的:(EBS,&,EC2)