0

我在一个小型 AWS Linux 实例上运行 Mongo。今天早上我的系统因磁盘已满而导致数据库锁定失败的日志中出现大量错误而关闭。

我怎样才能弄清楚为什么/什么是满的?我认为小型 AWS 实例应该有 160G 可用?当我查看 mongo /data 目录时,它显示已使用 5.5G。

我知道 Mongo 可能需要大量磁盘。我的数据(原始)约为 150-200MB 的 JSON。

4

2 回答 2

0

您的磁盘可能已满。

160 GB 数字指的是实例存储,只有在您明确启用它时才会启用。默认情况下不启用它的原因是它不持久。由于此存储连接到主机,如果您停止实例或主机因任何原因出现故障,您将丢失其中包含的任何内容。

您使用的存储是 EBS 卷。AWS 相当于一个 SAN 卷。默认情况下,大多数 AMI 以大约 8-10 GB 创建此卷。您可以将其大小增加到每个卷 1TB。

要纠正当前的情况,您将需要一些停机时间。您可以导入配置有更多空间的新实例。否则,您可以对当前卷进行快照并使用该快照创建新的更大卷。您将需要调整分区大小以利用所有空间。

于 2013-09-16T18:39:18.413 回答
0

正如您所提到的,小型实例在本地具有临时磁盘,但它安装到 /media/ephemeral0 之类的位置,而不是根 / 。默认情况下,EBS 根卷挂载到 /,MongoDB 的默认数据目录是 /data。这意味着 MongoDB 位于 EBS 根卷中,而不是临时磁盘。

此外,临时存储在实例终止时会丢失,因此通常不建议使用它,除非您对数据丢失的影响感到满意。

另请参阅:
关于 EC2
AWS 文档的 MongoDB 文档

于 2013-09-16T19:01:50.803 回答