(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【VMware】vmxとvmdkの拡張子の違いと役割

スポンサーリンク

はじめに

VMware vSphereの仮想化パッケージ製品には、vmx, vmdk, nvram, vmsnといった聞きなれない拡張子が多々あります。

その中でもvmkとvmdkは特に重要で、この2つがあれば仮想マシンを復旧されることが可能と言われます。

本記事ではこの2つの拡張子の違いをテーマに入門記事を記載しました。
初学者の方には参考になるかと思います。


結論から言えば、

vmxは仮想マシン全体の設定ファイルでvmdkはディスク関連のファイル

となります。


以下、解説です。

VMXファイルとは?

VMXファイルは、仮想マシンの情報が詳細に記載されているファイルです。ゲストOSの情報やディスクサイズなど。
このファイルはテキストエディタで編集できますが、直接編集する場合はかなり慎重に扱う必要がありますのでバックアップの取得が推奨されています。

これらのファイルはゲストOSを管理するハイパーバイザから確認可能です。

例えばESXiにて
vmxファイルの先頭数行を見てみると、

# head /vmfs/volumes/<データストア名>/<ゲストホスト名>/<ゲストホスト名>.vmx

.encoding = "UFT-8"
displayName = "<ゲストホスト名>"
vmci0.present = "TRUE"
floppy0.present = "FALSE"
....

といったように設定項目とその設定値が記載されています。

ちなみに、よく似た拡張子のvmxfvmxの補足設定を行うファイルです。

VMDKファイルとは?

こちらはディスクに関連するファイルで、とても巨大なファイルです。
正確に言えば、-flat.vmdkというファイルが仮想ディスクサイズの大きなデータファイルで、.vmdkというファイルはflat.vmdkのポインタやディスクの情報が記載されているので小さなファイルとなります。

一般的に、サイズの大小関係は以下となります。

flat.vmdk >> vmx > vmdx

同じくvmdxファイルも先頭数行を見てみると、

# head /vmfs/volumes/<データストア名>/<ゲストホスト名>/<ゲストホスト名>-000001.vmx

# Disk DescriptorFile
version=1
encording="UTF-8"
CID=XXXXXXX
...

といったように情報が記載されています。

終わりに

VMWare製品によるGUI操作の結果更新されるファイルですので直接見ることは滅多にないと思いますが、ESXi上にログインする際にはファイルの存在だけでもぜひ確認してみてください。他にも色々と耳慣れない用語があるので勉強になります。

書籍では以下が参考になります。

以上、ご参考になれば幸いです。