1. はじめに
自宅のVMware仮想環境ホームラボのディスク領域が足りなくなってきたので、大掃除兼ねてディスク構成の見直しをすることにしました。
特に何も考えずにシックプロビジョニングしていた仮想マシンも数多くあったので、シンプロビジョニングしてディスク容量の最適化したので備忘録です。
その前後でOVFファイルにExportした際のディスク領域の変化も見て見たのでまとめてみます。
※今回の内容はあくまで私の個人的な検証環境における結果であるので、異なる環境で同手順を実施した場合でも、必ずしも同様な結果となるとは限りませんのでご注意ください。
2. VMware 仮想環境におけるThick Provisioning(シックプロビジョニング)とシンプロビジョニング(Thin Provisioning)について
VMware Docsの説明がわかりやすく図解しているので一部抜粋します。詳細はVMware Docsをご参考ください。
仮想マシンを作成する場合には、データストア上の一定量のストレージ容量が仮想ディスク ファイルにプロビジョニングされます。
デフォルトで、ESXi は仮想マシンの従来のストレージ プロビジョニング方法を提供します。この方法によって、仮想マシンがライフサイクル全体で必要とするストレージの量を最初に見積もります。次に、仮想マシンの仮想ディスクに固定のストレージ容量(たとえば 40 GB)を事前にプロビジョニングします。プロビジョニングされた容量全体が仮想ディスクにコミットされます。プロビジョニングされた容量全体をすぐに占有する仮想ディスクはシック ディスクです。
次の図は、2 台の仮想マシンを示しています。1 台はシック ディスクで、もう 1 台はシン フォーマットの仮想ディスクです。
VMware Docs (仮想ディスク シン プロビジョニング)から一部抜粋。
シンプロビジョニング、シックプロビジョニングの使いどころについてはこちらもご参考ください。
VMware Docs (仮想ディスクのプロビジョニング ポリシーについて)
3. シックプロビジョニングからシンプロビジョニングに変換 (デプロイ直後のUbuntu仮想マシン)
変更作業自体は非常に簡単で、vMotion機能を利用します。
今回対象はデプロイ直後のシックプロビジョニング(Eager-Zeroed)されているUbuntu仮想マシンを対象としています。
対象の仮想マシンにStorage vMotionを実行
vSphere 7のESXiホストからNFSデータストアマウントしている外部ストレージ(NAS)にディスク領域を移します。
(ちなみにNASはSynology DS918+を使ってます。今見たら結構値上がりしてる・・購入時はディスク別売りで本体5万円弱だったのですが。)
シックプロビジョニング (Eager-Zeroed)状態の対象の仮想マシンを確認
Storage vMotionでディスク領域を外部ストレージ(NAS)に移行し、シンプロビジョニングに変換
シンプロビジョニング状態の対象の仮想マシンを確認
もともと使用済み領域は17.08GBありましたが、シンプロビジョニングに変換後は10.36GBとダウンサイズすることができました。
4. ディスク領域の変化をパターン分けして調べてみる
同様な手順でディスク領域の変化をいくつかのパターンで調べてみたところ、私のVMware仮想環境ホームラボでは次のような結果になりました。
テスト用に格納した(書き込んだ)ファイルには、合計約50GB程度のISOファイルを利用しています。
シックプロビジョニングからシンプロビジョニングへの変換
シックプロビジョニングからシンプロビジョニングへの変換した際には使用済みのディスク領域はダウンサイズされますが、
約50GBのファイルを格納したままなのでOVFファイルのサイズ(ほぼVMDKファイルのサイズ)は変化しませんでした。
シンプロビジョニングでデプロイした仮想マシンへのファイル書き込み
シンプロビジョニングの状態で約50GBのファイルを書き込んだ後、
OSレイヤから完全に削除まで実施しても使用済みのファイルサイズは元に戻りません。
いったん書き込まれたディスク領域まで含めて仮想ディスクのサイズを小さくしたい場合、もう一手間かける必要があります。次のVMware KBもご参考ください。
(VMware KB)ESXi の仮想ディスクを拡張、縮小、および圧縮する (1002019)
5. (おまけ) エクスポートしたOVFファイルで、VMware Cloud on AWSに仮想マシンをデプロイしてみる
VMware仮想環境ホームラボから、デプロイ直後のシックプロビジョニング (Eager Zeroed)の仮想マシンのOVFファイルをエクスポートして、
VMware Cloud on AWS にOVFインポートして仮想マシンをデプロイしてみました。
VMware仮想環境ホームラボでは100.18GBであった使用済みの容量が、VMware Cloud on AWS上では11.45GBとなりました。
VMware Cloud on AWSではデフォルトでシンプロビジョニングとなるため、対象仮想マシンもシンプロビジョニングとなっています。
VMware Cloud on AWSにおけるvSANのポリシーについては次のVMware Docsもご参考ください。
VMware Docs (vSAN のポリシー)
6. さいごに
あらためてVMware仮想環境のディスク構成について調べてみるとやはり奥が深くて学びがあります。
ディスク領域の遷移は概ね想像通りかと思いますが、具体的なディスクサイズの遷移についてはやってみなければわからないことも多いかと思います。
私にとってはひさびさにホームラボの整理もでき、なかなか良い週末となりました〜。
7. 参考記事