AWS EC2 インスタンスで Mongodb を実行しています。データ/ログ/ジャーナルは、xfs としてフォーマットされた別のボリュームに保存されます。現在、スナップショットを取得するために mongodb インスタンスを停止していますが、次のメッセージが表示されています。 https://docs.mongodb.com/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/ ジャーナルが有効になっているため、スナップショット中にサービスを停止する必要はないようです。正しいでしょうか? サービスが実行中でも一貫性のあるスナップショットを作成できますか?
答え1
一般的に、長期メディアからの復元の整合性を確認するまで、バックアップ手順を信頼しないでください。
ストレージ システム レイヤーのバックアップをオンラインで取得する機能は既にあります。この場合、EBS ボリュームまたは Linux LVM を使用します。問題は、データベースを一貫した状態にすることです。
オンライン バックアップは、ジャーナルの有無にかかわらず可能です。どちらの場合でも、mongo がデータベースへの書き込みを一時停止する方法は、チュートリアルで説明されているように、fsync とロックです。
ジャーナルがないと、どのデータがディスク上で永続的であり、どのデータがバッファリングされていてまだコミットされていないかを判断するのは困難です。fsync と lock は、ある時点を確立し、バックアップが完了するまで進行中の書き込みを停止します。
ロックは、複数のディスクでも必要です。この場合、(このストレージ システムでは) スナップショットは互いに一致しません。バックアップ中に書き込みを一時停止すると、ディスクは/dev/sdf
と比較してわずかに異なる時点になります/dev/sdg
。
モンゴ氏は、シングルディスク、および持っているジャーナルの場合、fsync やロックは必要ありません。おそらく、EBS スナップショットはクラッシュ整合性が十分に保たれた時点であり、ジャーナル フォワード リカバリによって不完全な書き込みを修正できます。