2011-01-30 201 views
0

我有脚本可以创建我的EBS支持的Windows实例的许多快照。你可以稍微考虑一下,我正在构建一个图像树,在那里我分支出来并在不同的时间创建快照。举例:从EC2删除快照/卷

> Source Windows AMI -> Snapshot 1 
>        -> Snapshot 1.1 
>           -> Snapshot 1.1.1 
>        -> Snapshot 1.2 
>     -> Snapshot 2 
>        -> Snapshot 2.1 
>        -> Snapshot 2.2 
>        .... 

我现在想清理我的工作区。我的理解是快照是有差别的。因此,在上面的例子中,项目“快照1”将是一个完整的图像,而“快照1.1”将是仅包含二进制差异小得多的文件。我的理解是正确的吗?如果是这样,那么什么,当我删除“快照1.1”发生---它亚马逊禁止我这样做是因为“快照1.1.1”是一个依赖,或者是否允许进行这种东西根本在将来打破?

+0

初级 - 这感觉就像它可能是[ServerFault]一个更好的问题(http://serverfault.com/questions) – jmort253 2011-01-30 22:16:08

回答

0

'Snapshot 1.1'将是一个小得多的文件,只包含二进制差异。我的理解是正确的吗?

快照1.1“如果是这样,那么什么,当我删除发生'---它亚马逊禁止我这样做是因为‘快照1.1.1’是一个依赖,或它是否允许这样做,事情在未来就会破裂?

好问题,但你需要给亚马逊多一点的信贷:) 如果删除快照1.1,那么只有那些没有任何其他快照引用的块将被删除,这意味着快照1.1.1将工作得很好。

一个很好的解释(与纯图一并)这可以发现here

1

快照是不是真的存储为一个树状分层结构,按你的描述。相反,只有一大堆“块”,并且快照标识符是一个指针,指向哪些块需要从基础映像重建图像。获取更多快照,并且您将只生成更多'diff'块和指向这些块的新快照标识符。

我可能会被误用了这一说法,但如果你从你的EC2的个人资料删除中间快照(即2.0版在你的例子),你将不会保存任何磁盘空间(+钱)。这是因为V2.0块仍需要建立V2.1,V2.2 ......所以,如果你想删除快照省钱,那么你真的需要删除那些那些存在作为概念的叶子快照树。

BTW,快照的树的确切表示它们是如何在这个EC2管理工具表示:http://LabSlice.com。如果您正在构建用于实验室类型目的的快照,可能值得一看。 (免责声明:我在那里工作)。