MySQL は、一貫性のないディスク状態からの回復が不十分であるという評判があり、XFS は基本的に、スナップショットが行われている間、ファイル システムへの IO を一時停止します。通常、データベースは完全なトランザクション ログ エントリが作成されると、flush() を実行します。これは、基本的にファイル システムへのチェックポイントを示します。ジャーナリング ファイル システムの場合、これは重要です。ほとんどの場合、ファイル システムはマウントされた最後の有効なジャーナル エントリに回復します。これは 100% ではありませんが、何もないよりはましです。ほとんどのデータベース システムは、データベース ファイルがトランザクション ログの背後にある場合、復旧時にトランザクション ログ ファイルを使用して「ロールフォワード」し、データベース エンジンは、トランザクション ログの内容が与えられた場合に限りロールフォワードします。部分的に書き込まれたトランザクションをロールフォワードしようとはしません。ここでの問題は、MySQL がそれを達成するのに最適ではないということです。したがって、それは絶対に問題になる可能性があります。これに対する確実な解決策は見つかりませんでした。ミラーを実行し、MySQL を一時停止してスナップショットを作成し、同期を再開することを想像できますが、MySQL ミラーが部分的に使用できないミラーに対応できるかどうかはわかりません。しばらくすると、完全な再ミラーリングなしで追いつくことができます。その場合、完全なミラーリングを実行するのとほぼ同じ効果がデータベースに及ぶため、すべてのデータベースの mysqldump を実行することもできます。これは、私が考えることができる実行中の他のオプションです。すべてのデータベースの mysqldump を実行して、バックアップ パーティションとスナップショットを作成します。実行中のバックアップが提供されないため、頻繁に実行することはできません。
他のデータベース エンジンは、この点ではるかに優れています。PostgreSQL は、一貫性のないディスク状態から、ジャーナリングされたファイルシステムでの実行をまったく推奨しないところまで回復するのに非常に優れています。また、トランザクション ログをアーカイブするオプションもあるため、最後の正常な完全バックアップから、アーカイブ ログが存在する任意の時点までロール フォワードできます。これにより、一貫したバックアップを作成するのがはるかに簡単になります。Oracle では、物理ディスク/EBS パーティション間で切り替えるトランザクション ログの複数のセットを使用できるため、一貫性のあるスナップショットを作成するためのウィンドウが頻繁に作成され、スナップショットを実行する必要があることをデータベース エンジンに示すことができますが、反転することはできません。あなたがそう言うまで戻ってください。
ジャーナリングの考え方に沿って、LVM には通常 1 秒未満でファイル システム全体のスナップショットを作成する機能があります。EBS スナップショット機能がこれを利用するかどうかはわかりませんが、手動で行うこともできます。LVM は XFS よりも少し手間がかかりますが、ext3 では問題がなかった単一のディレクトリ内の多数のファイルが大量に発生する問題が過去に XFS で発生しました。LVM には他にも多くの利点があり、いずれにしても検討する価値があります。