AMI AWS 设备上没有剩余空间

AMI AWS 设备上没有剩余空间

我在 AWS 上有一个小型 AMI 实例。文档说我应该有 160G。我无法将任何内容下载到服务器,因为我收到以下错误:

write error: No space left on deviceMiB | 276 KiB/s 

$df-h

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            8.0G  8.0G     0 100% /
tmpfs                 830M     0  830M   0% /dev/shm

我的160G在哪?

答案1

简短的回答是,临时存储在启动时与实例没有关联。

按照文档,为 m1.small 实例提供 150GB 的临时存储。然而,在许多情况下(尤其是那些具有 EBS 根卷的实例),您会发现默认情况下不会附加此额外存储。

典型设置可能包含一个根卷、一个交换分区和临时存储。请记住,Amazon 提到的 150GB 存储是临时的 - 也就是说,如果机器停止、终止或崩溃,它将不会保留。

临时磁盘标记为 ephemeral[0-3](取决于实例大小)。一旦启动实例,您就无法将其附加到实例。(另一方面,您可以在实例运行时向其添加 EBS 卷)。必须在启动时添加临时卷 - 作为注册 AMI 的一部分或作为启动命令的一部分。临时磁盘是作为块设备映射的一部分指定的。因此,本质上,您可以:

  1. 启动实例时明确指定临时磁盘映射或

    ec2-运行实例 ami-1a2b3c4d -b /dev/xvdb=ephemeral0
  2. 注册新的 AMI,明确指定临时磁盘映射

    ec2-register -n 映像名称 -d 映像描述 --root 设备名称 /dev/xvda1 -b /dev/xvda1=snap-1a2b3c4d -b /dev/xvdb=ephemeral0

(在上面的第二个例子中,我使用快照作为根卷的基础映像,以便它成为 EBS 支持的实例)

请注意,在这两种情况下,块设备都不会自动挂载(除非您修改fstab),尽管它们会立即显示在/proc/partitions(或使用fdisk -l)中。

相关内容