2013-09-16 31 views
0

我在一個小的AWS Linux實例上運行Mongo。今天早上我的系統因數據庫鎖定日誌中的大量錯誤而關閉,因爲磁盤已滿而導致數據庫鎖定失敗。Mongo報告AWS上的空間不足

我怎樣才能找出爲什麼/什麼是滿的?我認爲小AWS實例應該有160G可用?當我使用mongo/data目錄時,它顯示了5.5G。

我知道Mongo可能是磁盤飢渴的。我的數據(原始)大約是150-200MB的JSON。

回答

0

您的磁盤可能已滿。

160 GB編號是指僅在您明確啓用它時啓用的實例存儲。其默認情況下未啓用的原因是它不是持久的。由於此存儲連接到主機,因此如果您停止實例或因任何原因導致主機出現故障,您將丟失其中包含的任何內容。

您使用的存儲是EBS卷。 AWS相當於SAN卷。默認情況下,大多數AMI都會在8-10 GB左右創建此卷。您可以將它的大小增加到每卷1TB。

要糾正目前的情況,您需要一些停機時間。您可以執行導入到配置了更多空間的新實例。否則,您可以對當前音量進行快照,並使用該快照創建新的較大音量。您需要調整分區大小以利用所有空間。

0

正如你所提到的,小實例在本地有短暫的磁盤,但它被掛載到/ media/ephemeral0之類的地方,而不是根/。默認情況下,EBS根卷掛載在/上,MongoDB的默認數據目錄爲/ data。這意味着MongoDB放置在EBS根卷中,而不是臨時磁盤。

此外,當實例終止時,臨時存儲會丟失,因此一般不建議使用臨時存儲,除非您對數據丟失的影響感到滿意。

參見:
MongoDB Document about EC2
AWS Document