【お題3~8~】LVMスナップショットを使った増分バックアップの続きのブレークダウン
MongoDBデータオンラインバックアップにLVMスナップショットボリュームとrsyncを使った増分バックアップの諸検証を行う
1.Linuxファイルシステムの静止点の復習
1-1.xfs_freezeコマンドの動作
→xfs_freezeコマンドはxfsファイルシステム自体への書き込みを禁止してしまう(readは可)
ので、書き込み中のwriteIOもブロックしてしまうし、バックアップユーザはソースデータに
関してはreadだけなのでrsync単体なら可能だが、xfs_freezeとLVMスナップショット取得
はLVMスナップショットが壊れてしまう(っぽい)のでxfs_freezeで書き込み静止点を作って
LVMスナップショット取る方法は不可っぽい。
2.MongoDBオンラインバックアップに関する考察
2-0.MongoDBのバックアップ方式
①Back Up with Atlas
※オンプレミスやプライベートクラウド上のMongoDBホストでは利用不可
②Back Up with MongoDB Cloud Manager
※MongoDBクラウド上にあるManagerを使ってバックアップをする
③Ops Manager
※有償版でのみ利用可能。Ops Managerを立てる。Ops ManagerとMongoDBとの間でデータ
送受信が発生する。
④MongoDBデータ(/var/lib/Mongoなど)を物理コピー
⑤mongodump
※大規模データベースでは非推奨
2-1.collectionファイル内の1ドキュメントだけを変更した場合でもrsyncではファイル単位で増分コピーになるか?
2-2.MongoDBの静止点とは?「トランザクションとか」
2-3.MongoDBのチェックポイントとは?
→チェックポイント時間外にDBデータの物理バックアップ(ファイルコピー)しちゃえばそれって自動的に静止点とれてんじゃね?
2-4.MongoDBのVer.4以前と以降の違い
2-5.MongoDBのシャーディングとバックアップの絡み
2-6.ストレージエンジン(wireTiger)とバックアップの絡み
2-7.MongoDBのデータ圧縮との絡み
※データ圧縮することでメモリ使用量も節約できるのでディスク上のデータも圧縮して保存
するという考えがあるらしい。当然バックアップ対象のデータもそのまま圧縮した状態で
行う方がお得なはず
2-8.MongoDBのディスク暗号化機能とバックアップの絡み
2-9.MongoDBのPITR
2-10.RDB(PostgreSQL)の静止点とMongoDBの静止点の考え方の違いの考察
3.上記1.と2.を踏まえたMongoDBオンラインバックアップをLVMスナップショットなどで静止点を取得して行うことの有効性と問題点について考察
ていうかー。もうオンラインバックアップあきらめてMongoDBを一瞬落として、その間にLVMスナップショットを1秒でパシャッととって、すぐ上げればよくね?
ていうか、スクラッチでMongoDBの静止点を取得するスクリプトを作成しても、設定、バージョンアップ、モジュールの変更(ストレージエンジンなど)、ユーザがトランザクションを使うかどうか、replicasetやシャーディングの有無などの変更後も間違いなく静止点を取れるのだろうか?
MongoDBのバックアップマニュアルでファイルコピーでオンラインバックアップする方法をもう一度よく読んでみ
Back Up and Restore with Filesystem Snapshots