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

我有一个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

由于我正在使用更大的交换,因此此过程需要一些时间,而且每次开始时我都不想这样做。我宁愿支付存储费用。但是,当我启动实例时,互换消失了。如果我键入“顶部”,则该实例没有使用交换文件。

我应该怎么办?

有帮助吗?

解决方案

亚马逊EC2 实例您正在使用 EBS 支持 根设备存储, , 全部 EC2实例类型 仍然有 EC2实例存储 (也称为 短暂的商店)也可用于使用,以及较小的实例类型(例如m1.small和c1.medium),并将其附加并安装在 /mnt 默认情况下(甚至更大的人都没有!)。

该存储类型的最重要特征是, 实例存储量的数据仅在关联的Amazon EC2实例的生命中持续.

如今,此陈述是一种有点误导性的,鉴于它也适用于停止EBS备份的实例(虽然不是重新启动),即您停止该实例的那一刻,短暂的卷已安装在 /mnt 已分离和删除,并丢失了所有存储的数据,包括您的交换文件;再次启动实例后,将附加新的短暂卷并安装在 /mnt.

解决方案

如果您完全知道自己在做什么,您仍然可以使用EC2实例存储(丰富且免费)(请参阅部分 背景 下面),例如,它是一个完美的选择 严格的临时数据 或任何可以根据需要重新创建的东西,例如缓存。

当然,交换文件也与此要求匹配,因此您只需要创建一个脚本,其中包含问题中概述的命令,并以实例执行它开始重新创建交换文件。不过,您应该对此进行防护,因为实例存储在重新启动中幸存下来,即您既不需要也不应该在重新启动上重新创建交换文件,只是使用真实的停止/启动周期。


背景

实例存储曾经是首次引入Amazon EC2时唯一的存储选项,但是幸运的是,对日常使用的严重限制已通过使用 亚马逊弹性块商店(EBS) 您也正在使用。埃里克·哈蒙德(Eric Hammond)最近提供了一个很好的摘要 您应该在Amazon EC2上使用EBS引导实例, ,解决这个主题:

如果您刚刚开始使用Amazon EC2,请使用EBS引导实例并停止阅读本文。忘了您曾经听说过实例商店,并接受我刚才提到的道歉。一旦您完全喜欢在EC2上使用EBS启动实例,您可能(也可能不)想回到这里,阅读为什么做出一个很好的决定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top