停止ebs支持的实例时,交换消失。

时间:2012-02-15 20:52:51

标签: amazon-ec2 amazon-web-services amazon-ebs ubuntu-11.10

当我启动实例时,我的实例交换文件正在消失。

我有一个Ubuntu ec2实例,我按照https://help.ubuntu.com/community/SwapFaq的“四步处理添加交换文件”说明进行操作:

sudo dd if=/dev/zero of=/mnt/512MiB.swap bs=1024 count=524288
sudo chmod 600 /mnt/512MiB.swap
sudo mkswap /mnt/512MiB.swap
sudo swapon /mnt/512MiB.swap

然后我将/ etc / fstab更改为包括:

/mnt/512MiB.swap  none  swap  sw  0 0

由于我使用的是更大的交换,这个过程需要一些时间,而且我不希望每次开始都这样做。我宁愿为存储付钱。但是,当我启动我的实例时,交换已经消失。如果我输入'top',则实例没有正在使用的交换文件。

我该怎么办?

1 个答案:

答案 0 :(得分:6)

虽然您使用的Amazon EC2实例已EBS支持Root Device Storage,但所有EC2 instance types仍然拥有EC2 instance storage(也称为短暂的商店)也可以使用,较小的实例类型(例如m1.small和c1.medium)默认情况下附加并安装在/mnt(即较大的那些!)。< / p>

要了解此存储类型的最重要特征是,实例存储卷上的数据仅在关联的Amazon EC2实例的生命周期内持续存在

这句话现在有点误导,因为它也适用于停止EBS支持的实例(尽管不重启),即当你停止该实例时,/mnt处安装的临时卷被分离,删除并存储在那里的所有数据都会丢失,当然包括你的交换文件;再次启动实例后,将附加一个新的临时卷并安装在/mnt

解决方案

如果你确切知道自己在做什么,你仍然可以使用EC2实例存储(丰富而且免费)(参见下面的背景部分),例如:它是严格临时数据的完美选择,或者可以根据需要轻松重新创建的任何内容,例如缓存。

交换文件当然也符合这些要求,因此您只需要使用问题中列出的命令创建脚本,并在实例启动时执行它以重新创建交换文件。你应该设置一个防护装置,因为实例存储器可以重新启动,即你不需要也不应该在重新启动时重新创建交换文件,只需要实际的停止/启动周期。


背景

实例存储曾经是Amazon EC2首次推出时唯一的存储选项,但幸运的是,由于您正在使用Amazon Elastic Block Store (EBS),因此日常使用的严重限制也得到了补救。 Eric Hammond最近为You Should Use EBS Boot Instances on Amazon EC2提供了一个很好的总结,解决了这个话题:

  

如果您刚开始使用Amazon EC2,请使用EBS启动   实例并停止阅读本文。忘掉你曾经听过的   关于实例存储并接受我刚才提到的道歉。   一旦您完全熟悉使用EBS启动实例   EC2,您可能(或可能不想)回到这里并阅读您制作的原因   一个好的决定。