![AMI AWS 设备上没有剩余空间](https://linux22.com/image/587034/AMI%20AWS%20%E8%AE%BE%E5%A4%87%E4%B8%8A%E6%B2%A1%E6%9C%89%E5%89%A9%E4%BD%99%E7%A9%BA%E9%97%B4.png)
我在 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 的一部分或作为启动命令的一部分。临时磁盘是作为块设备映射的一部分指定的。因此,本质上,您可以:
启动实例时明确指定临时磁盘映射或
ec2-运行实例 ami-1a2b3c4d -b /dev/xvdb=ephemeral0
注册新的 AMI,明确指定临时磁盘映射
ec2-register -n 映像名称 -d 映像描述 --root 设备名称 /dev/xvda1 -b /dev/xvda1=snap-1a2b3c4d -b /dev/xvdb=ephemeral0
(在上面的第二个例子中,我使用快照作为根卷的基础映像,以便它成为 EBS 支持的实例)
请注意,在这两种情况下,块设备都不会自动挂载(除非您修改fstab
),尽管它们会立即显示在/proc/partitions
(或使用fdisk -l
)中。