vSphereスナップショット再考

前回、前々回とWindows2012R2からWindows2019へ移行作業を行った件についてお話させて頂きましたが、その過程でvSphereスナップショットの動作について改めて勉強し直しました。と言うより、そもそも「スナップショット」の動作を誤解していました。今回はその話です。

まずは結論から。
これまでvSphereのスナップショットとは「スナップショット採取時の状態を保存したモノ」と解釈していました。が、正しくは「スナップショットをスタートして以降の更新状態を保存していくモノ」だと言うことが今頃になって分かりました。
「保存した」と「保存していく」がどのように違うのか?と思われる方もいないとも限りませんので、恥を忍んで説明させていただきますと...

今回DISKの空容量が不足してしまった状態でデータストアブラウザを確認してます。

***-000001.vmdk、***-000002.vmdk....と言うファイルが4つほど存在しております。これがスナップショット用のファイルですね。複数存在しているのは何度かスナップショットを採取したためですが、これら全体では200GBを超える容量となっており、これらが空き容量を圧迫しています。とりあえずはスナップショットを消去して空き容量を増やす作業の待ち時間を利用して、スナップショットってどうやって動作しているんだろうと調べてみました。
先に書いたとおり、当初の考えでは「スナップショットスタート時点での仮想環境イメージを採取する=イメージバックアップのようなものを作ってしまう」と想定していました。冷静に考えるとそれはおかしな話で、あっという間にスナップショットは採れちゃいますし、その段階でのファイルサイズも仮想領域サイズと比較するととてつもなくコンパクトですのでホントにそうなのと思いそうですが、これまでvmwareはすごいなあと単純に感心していました。やれやれ。

現実にはそんな超高機能システムである訳はなく、スナップショット採取時からREDOログを採取し...という記述がありますので、スナップショット開始時にトランザクションがスタートし、それ以降の仮想環境の変更履歴がスナップショットファイルに書き込まれていく=スナップショットファイルサイズが増加していく、と言う動作になるとのことです。うーむ...納得。と言っている間にスナップショットの削除処理が終了しましたので動きを実際に確かめてみることとします。

まずはWindows2012R2を動作させている状態でスナップショットを採取します。
この時のスナップショットファイルサイズは47MB程です。

Windows2012R2からWindows2019へのアップデートを開始すると、先ほどのスナップショットファイルサイズが増加し始めます。スナップショット開始時から改訂履歴がファイルに書き込まれていきますので、今回のアップデート作業の改訂履歴ファイルサイズが200GBとなるようであれば、DISKの空き容量不足で失敗しますので、ファイルサイズがどんどん増加していくのを見ているのは不安でしかありません。

こやつはすくすくと15GBほどまで成長しました😆この成長はいつまで続くんだろう...

ちなみにWindowsServer2019のインストール状態は60%まで進んでいますので、空き容量不足は回避できるんじゃなかろうか...

その後Windows2019のインストールは終了&数回の再起動を経てスナップショットファイルのサイズを確認してみると...おや?ファイルサイズが減っていますね。
この時スナップショットファイル容量は15GB〜16GBの間で増えたり減ったりしていました。もしかするとvSphereスナップショット機能にはファイルの圧縮機能があるのかも知れませんね。ともあれスナップショットファイルサイズはこれ以上増えることなく無事にアップデート作業は完了し、晴れてお役御免となったのでありました。

今回の作業でスナップショット機能の解釈が間違っていたことに気付きました。
と同時に、物理環境の必要容量の計算をちょっと吟味しないとなとも思いました。これまでは仮想OSとして利用するDISK容量+α的に物理環境を準備するようにしてはいましたが、このα部分は導入以降の運用状況拡大によって使用してしまう場合もあります。
そうなると今回のようなOSアップデート作業などで念のためスナップショットを採取しながらアップデートしたいのにその領域を確保できないと言う危険性もある訳で、かと言って広大なDISKを準備するのもコストパフォーマンス的には説得力に欠け、なんとも悩ましい限りですね。

カテゴリー: vmware パーマリンク