我有一个自定义的 AMI,当我从这个 AMI 启动实例时,如果我选择 m1.small,我将拥有 895MB 的交换空间;当我选择 m1.medium 时,我将拥有 0 交换空间,这是为什么呢?
如果我希望我的 m1.medium 也使用实例存储中的交换空间,我该怎么做?(无需终止我的实例)
(两者都是 ebs 根实例)
答案1
AWS 就是这么奇怪。虽然我并不完全熟悉 AMI,不知道它们如何与实例存储配合使用,但您可以像添加任何其他驱动器一样添加交换空间。完整说明可在此处找到:http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/
只需将其引用的路径替换为您的实例存储的路径(使用df -h
,它通常是更大的路径)。
答案2
c1.medium 和 m1.small 实例类型的内存非常有限,以至于亚马逊为它们提供了额外的实例存储用于交换。亚马逊 ami 会自动检测此块设备。如果您的 ami 基于其中之一,那么这可能是原因。
但是,由于您的实例使用 ebs 作为根卷,因此您可以将普通实例存储添加为辅助驱动器,但您需要将其映射更改为 /dev/sda* 以外的其他内容,因为这用于 ebs 卷。遗憾的是,此映射必须在创建 ami 或实例时定义。使用命令 lsblk,您可以列出可用的块设备并检查是否有可用于安装的辅助驱动器。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreSwapVolumes
答案3
作为文档说在启动 EBS 支持的 AMI 后,无法添加实例存储。可以添加 EBS 磁盘并将其用作交换设备,但我怀疑您是否会对其性能感到满意(如果您使用 Provisioned IOPS EBS 卷,则价格会更高)。在 EBS 支持的 AMI 上获取实例存储的唯一方法是
- 在创建 AMI 映像时映射它,或者
- 在创建实例时映射它。