从EC2中删除快照/卷

时间:2011-01-30 21:49:15

标签: amazon-s3 amazon-ec2 amazon-web-services

我有脚本可以为我的EBS支持的Windows实例创建许多快照。您可以在某种程度上考虑我正在构建一个图像树,在那里我分支并在不同时间创建快照。一个例子:

> 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”将是仅包含二进制差异的小得多的文件。我对此的理解是否正确?如果是这样,那么当我删除'Snapshot 1.1'时会发生什么 - 亚马逊是否禁止这样做,因为'Snapshot 1.1.1'是一个依赖项,或者它是否允许这样做,事情将来会破坏?

2 个答案:

答案 0 :(得分:1)

根据您的描述,快照并未真正存储为树层次结构。相反,只有一桶“块”,快照标识符是指向从基本图像重建图像所需的块的指针。拍摄更多快照,您将生成更多“差异”块和指向这些块的新快照标识符。

我可能会误解这个断言,但是如果从EC2配置文件中删除中间快照(例如,示例中的v2.0),则不会保存任何磁盘空间(+钱)。这是因为仍然需要v2.0块来构建v2.1,v2.2 ......所以如果你想删除快照以节省资金,那么你真的需要删除那些作为你概念的叶子存在的那些快照树。

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

答案 1 :(得分:0)

  

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

  

'如果是这样,那么当我删除'Snapshot 1.1'时会发生什么 - 亚马逊是否禁止这样做,因为'Snapshot 1.1.1'是一个依赖项,或者它是否允许这样做而且事情只是在未来?

很好的问题,但你需要给亚马逊一点点信用:) 如果删除快照1.1,则只删除未被任何其他快照引用的块,这意味着Snapshot 1.1.1将正常工作。

可以找到一个很好的解释(连同简洁的图表)here