AMI AWS 设备上没有剩余空间

wai*_*ani 3 hard-drive disk-space-utilization amazon-ami amazon-web-services

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

write error: No space left on deviceMiB | 276 KiB/s 
Run Code Online (Sandbox Code Playgroud)

$df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            8.0G  8.0G     0 100% /
tmpfs                 830M     0  830M   0% /dev/shm
Run Code Online (Sandbox Code Playgroud)

我的160G呢?

cyb*_*x86 5

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

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

典型的设置可能有一个根卷、一个交换分区和临时存储。请记住,Amazon 所指的 150GB 存储空间是短暂的——也就是说,如果机器停止、终止或崩溃,它不会持续存在。

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

  1. 启动显式指定临时磁盘映射的实例或

    ec2-run-instances ami-1a2b3c4d -b /dev/xvdb=ephemeral0
  2. 注册一个新的 AMI,明确指定临时磁盘映射

    ec2-register -n Image_Name -d Image_Description --root-device-name /dev/xvda1 -b /dev/xvda1=snap-1a2b3c4d -b /dev/xvdb=ephemeral0

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

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