Veeam9.5でバックアップ時にパケロスが生じている話
VMのマイグレーションやバックアップをするときにVeeam backup & replication9.5を使用している。ESXiのストレージとしてNFSをマウントしているけど、20個分のVMバックアップを同時実行すると、ジョブが完了する直前にパケロスが生じてるっぽい。(約50秒くらい)
何でか追及してると、バックアップジョブを完了する前に取得したスナップショットを削除するときにI/O負荷が高くなるため、一時的にVM通信が途切れているらしい。
環境
- Veeam backup&Replication 9.5
- ESXi6.0
- vCenter Server Appliance6.0
- Windows Server 2012R2
VMとVMDKファイル
Veeamでバックアップやレプリケーションを実施するときに知っておきたいのは、VMとVMDKファイルの関係についてである。
通常のVMは、変更が生じた場合はVMDKファイルに書き込みを行なったり、何か呼び出す場合はVMDKファイルから読み取ったりしている。
しかし、Veeamでバックアップ・レプリケーションジョブを実行開始すると、ジョブが完了するまでdeltaファイルに変更点が書き込まれ、VMDKファイルは読み取り専用になる。
また、Veeamのジョブが開始するとまずVMのスナップショットを取得し、ジョブが完了する直前にスナップショットを削除する工程がある。
特にスナップショットを削除するときVMにかかる影響がかなり大きいと言われている。何故なら、ジョブ実行中にVMの変更点が書き込まれているdeltaファイルの中身をVMDKに反映させる操作の際にI/O負荷が大幅に増加するからである。
VMにパケロスが生じた時間のVeeamログを見てみると、ちょうどスナップショットを削除しているときと一致していた。Veeamログの内容は以下の通り。
[dd.mm.yyyy hh:mm:ss] <78> Info [VimApi] Remove Snapsot.type "Virtual Machine Snapshot", ref "snapshot-xxxx", removeChilren "False"
[dd.mm.yyyy hh:mm:ss] <78> Info [VmSnapshotTracker] Snapshot id: "snapshot-xxxx" closed
このログからVeeamがAPIでvCenterにスナップショット削除を命令していることが読み取ることができる。
※RemoveChildren:スナップショットのサブツリー削除を示すフラグ
まとめ
10VM同時実行したときは特にPing断することなくバックアップを完了することができていたが、20VMだと不安定になってしまった。
ブロックストレージをマウントしているときはどうかはまだ検証していないので分からないが、バックアップ同時実行数を増やしても問題ない実績はVeeam側にあるらしいので、VMかストレージのスペック問題な気がする。高価ないいやつにすればパケロスも生じないのかもしれない。