Cuturnの適当日記

徒然なるままに適当に駄文を吐き出しております

NetApp SnapshotとVMware Snapshotのコンボ

日次で7世代のNetApp Snapshotを取得しているストレージがあり、そのストレージ上でVMware ESXiのVMが稼働している環境がある。

あるVMにて、VMware のSnapshot(以下VMSnap)を1世代保持していて、内部で全データをDドライブからEドライブに毎日SQL Serverのフルダンプを行っているサーバがいる。

【C:\ システム】 【D:\ DB】→(フルダンプ)→【E:\Backup】

本サーバが物凄い容量を消費して大変なことになるという事象が発生した。

週次で物凄い容量を消費した

本サーバのVMSnapを削除するまで、毎日DBサイズ分のNetApp Snapshot容量を消費していた。恐らく、VMSnap上のDBフルダンプデータがNetApp Snapshotの重複排除に掛からないような4KBブロックとずれた配列をしていたためと考えられる。
VMSnapを削除した次の日からは重複排除後にフルダンプ分のデータが落ち着く結果となった。

この事象から、NetApp 環境でのVMware Snapshotの利用は予期せぬデータ膨張を引き起こす原因となるため避けた方が良いとの結論が得られた。

VMware Snapshotの削除時に物凄い容量が増大した

本サーバのVMware Snapshotを削除すると、削除中にもりもり容量が増え、削除完了後も容量が減ることは無かった。これはVMware Snapshotの仕組みとNetApp Snapshotの仕組みが合わさって発生した事象である。

VMware Snapshotは削除するときにはベースディスクと差分ディスクから1つのマージされたディスクを作成し、完了後に元となったディスクを削除する動きを行う。しかしベースディスクと差分ディスクはNetApp Snapshotに握られているため、実ブロック上からはNetApp Snapshotが削除されるまで消えることは無い。したがってVMware
Snapshotを削除すると一時的に容量消費が倍近くなってしまうことに注意する。

したがって、この事象からVMSnapをNetApp 環境で取るとしても変更作業が1日で済む場合のみで当日中に確実に削除するようにした方が良いとの結論を得た。

要はFlexCloneライセンス買ってねということだ…。