2011-11-25 71 views
1

我目前正在使用Mongo作爲其數據存儲的系統的開發階段。數據庫服務器將運行在EC2實例上,實際的數據庫位於單獨的EBS捲上。什麼是最安全的方式來終止與附加的EBS卷和MongoDB服務器的EC2實例

我的問題是這樣的 - 假設數據庫已啓動並正在運行,但沒有數據正在寫入或讀取,那麼從AWS控制檯終止EC2實例對於DB數據完整性有多危險?正如我所說的,我並不擔心任何部分寫入的數據或類似的東西,我真正指的是數據庫中已有的數據。

此外,有人可以解釋快照EBS卷對快照中數據完整性的影響嗎?在本地開發服務器上,我始終停止Mongo,然後將rsync備份到本地存儲,因此我不清楚在數據庫運行時獲取EBS卷的S3快照的含義。

謝謝!

回答

2

從AWS控制檯終止EC2實例與從VM內部選擇操作系統關閉功能相同,因此,如果Mongo遵守標準關閉協議並優雅地停頓任何開放的數據庫通道,一切都會很好,並且不會有任何問題EBS捲上的完整性問題。

快照EBS存儲不是原子時間點過程 - 根據EBS卷的大小和自上次快照以來的更改量,需要一定的時間來創建新快照。因此,如果數據完整性受到關注,則在捕捉EBS數據存儲之前應始終停止數據庫服務。同樣,如果您捕捉VM根EBS卷,則應該先停止VM。

+0

非常有幫助,謝謝。 – Edwardr

0

此外,請注意,快照EBS卷可能會影響該EBS卷的性能。

當我們快照我們的EBS卷時,我們看到增加的延遲。

+0

不知道爲什麼會出現這種情況 - 快照過程不會更改EBS卷,並且快照數據實際上是在S3中儲存的,而不是EBS存儲中的。如果您的意思是在快照過程中EBS性能受到影響*,這是有道理的 - EBS系統正在執行EBS卷的完整讀取。但是,正如我在回答中所提到的那樣,攫取一個活躍的EBS量是一個潛在的危險操作。另外:你的回答將更適合作爲評論,因爲它實際上並沒有回答這個問題。 –

0

從我的經驗來看,這不是實際發生的事情。 對於Linux EC2實例,終止實例會模擬電源故障而不是正常關機。 /etc/rc.d關閉腳本不運行。

相關問題