VMware ESXiで仮想マシンの保存先フォルダ名を変更する方法

VMware-ESXi-folder-rename

このところ、VMWare構築案件のご相談をよく頂きます。(主にサーバ仮想化)
現在ではサーバ仮想化の選択肢は複数あり、弊社の実績としてはオープンソースのKVMなどもありますが、知名度やサポート面から、VMWareを選択されるお客様が多いように感じます。
ここ最近の傾向としても、少し寂しいですが物理サーバー構築のお話が少なくなり、なんらかの仮想化やクラウドの提案が比率で言うとかなり多くなってきています。
弊社ではVMWareによるサーバ仮想化は実績も多く、傾向としては嬉しい限りですが、仮想化は万能のツールではなく、細かいところで意外と融通が利かないことがあります。
今回はサーバ仮想化を導入後に気を付けたい点をご紹介します。

1. 仮想マシン保存先のフォルダ・ファイル名が変更されない

仮想マシンは、vSphere Client (最近はvSphere Web Clientですね)から表示名を変更することができます。
単純なオペレーションで、簡単に変更できるので、後から名前を変更すればいいと考え、適当な名前を付けておくと、後々困ることになります。
というのも変更されるのはvSphere Clientから見た場合の表示名のみで、実際に仮想マシンが保存されているフォルダ・ファイル名や構成ファイルは変更されないからです。
VMWareの仮想マシンは全てデータストアという領域に保存されています。
データストアはvmfsという排他制御機能を持つ、特別なファイルシステムでフォーマットされた仮想マシンの格納領域です。
仮想マシンは、このデータストアに配置され、仮想マシンごとにマシン名が付与されたフォルダ・ファイルがが作成されます。
例えば、vmge01 という仮想マシンを作成した場合、データストアにはvmge01という名前のフォルダが作成され、このフォルダに仮想マシンの構成ファイルや仮想ディスクファイルが保存されます。
vSphere Clientから表示名を変更して、見かけ上は仮想マシン名が変更されたように見えても、このファイル名・フォルダ名・構成ファイルの内容は変更されないのが意外と盲点となっています。
例えば、仮想マシン:vmge01の表示名を vmge02に変更したとしても、データストアのフォルダ名とフォルダに含まれるファイル名はvmge01のままになります。
仮想マシンの台数が増えてくると、フォルダ・ファイル名と表示名の整合性がとれませんので、かなり混乱することになります。
そこで表示名を変更した後に、フォルダ・ファイル名を併せて変更する手順が必要となります。
ここではvSphere Web Clientを利用しての操作手順を記載していきます。

2. esxiのSSH有効化

仮想マシンの保存されているフォルダ・ファイル名を変更するためには、esxiへSSHでログインして、コマンドを利用する必要があります。
デフォルトでは、esxiのSSHサービスは停止されています。
esxi(ホスト側)へSSHでログインできるように、vSphere Clientのセキュリティプロファイルを変更して、SSHサービスを起動します。

vm_ssh_enable01

SSHのステータスを確認します。停止になっている場合、[開始]をクリックして、SSHサービスを開始します。

vm_ssh_enable02

サービスの詳細が[実行中]に変更されれば、SSHサービスの起動は完了です。

vm_ssh_enable03

3. フォルダ名を変更する仮想マシンのシャットダウン

フォルダ名を変更したい仮想マシン(ゲストOS)をシャットダウンします。シャットダウンはvSphere Clientから行います。

4. vSphere Clientで対象仮想マシンをインベントリから削除

ゲストOSが正常にシャットダウンされていることを確認後、vSphere Clientを利用して対象となる仮想マシンをインベントリから削除します。

vm_inventory_delete

5. SSHでesxi(ホスト側)へログイン

teratermなどのSSHクライアントを利用して、esxiへログインします。
teratermだと接続時にチャレンジアンドレスポンスを選択する必要がある点だけ気を付けて下さい。

6. 対象マシンの保存先フォルダへ移動

esxiの中身は殆どLinuxです。基本的な操作コマンドはLinuxと同じだと思ってください。
仮想マシン保存先フォルダのパスは通常
/vmfs/volumes/データストア名/仮想マシン名
となります、仮にデータストア名がOS_Dataで、仮想マシンがvmge01だった場合
/vmfs/volumes/OS_Data/vmge01
になります。
cdコマンドで、上記フォルダへ移動します。

7. 仮想ディスクファイル名の変更

仮想マシンを保存するための、仮想ディスクファイルにも仮想マシン名が割り当てられています。例えば仮想マシン名がvmge01だった場合は、"vmge01.vmdk"が仮想ディスクファイル名となります。複数の仮想ディスクが、仮想マシンに割り当てられている場合、"_1"や"_2"という形で連番が割り当てられます。追加の仮想ディスク一台目は "vmge01_1.vmdk"となります。
これを変更した仮想マシン名に変更します。
ここではvmge01をvmge02に変更する前提でコマンドを記載しています。変更にはvmkfstoolsコマンドを利用します。
上記のようにフォルダ名を変更する場合には以下のようにコマンドを実行します。

# vmkfstools -E vmge01.vmdk vmge02.vmdk

実行後、lsコマンドでフォルダの内容を見るとvmge01.vmdkがvmge02.vmdkに変更されていることが確認できます。追加された仮想ディスクがある場合は、台数分をvmkfstoolsコマンドを利用して、同様に名前を変更していきます。

8. 仮想マシン構成ファイルのコピー

仮想マシンの構成ファイルはvmxという拡張子で、フォルダに保存されています。
このファイルにも仮想マシン名が付与されています。
構成ファイルは仮想マシンを構成する重要なファイルになりますので、名前を変更するのではなく、元のファイルを変更名でコピーした上で編集を行います。
以下のコマンドでコピーを行います。

# cp -p vmge01.vmx vmge02.vmx

構成ファイルの変更は、コピーしたvmge02.vmxを利用します。

9. 構成ファイルの編集

構成ファイル内に含まれる仮想マシン名を変更していきます。
変更はviコマンドなどでテキストエディターで行います。
変更する点は、以下の設定になるかと思いますが、利用している環境によっては、他にもあるかもしれません。

  • nvram
  • displayname
  • 仮想ディスク保存先のパス
  • スワップファイルの保存先パス

テキストエディタの検索機能を利用して、変更点をピックアップ(古い表示名で検索するなど)して頂ければ漏れがなく変更できるかと思います。
変更後にはファイルを保存します。

10. 仮想マシン用、その他ファイルの名前変更

仮想マシン用フォルダには、その他にいくつかのファイルが保存されています。
このファイルにも、全て仮想マシン名が付与されています。
これを全て、コマンドで変更していきます。

# mv vmge01.nvram vmge02.nvram
# mv vmge01.vmxf vmge02.vmxf
# mv vmge01.vmsd vmge02.vmsd

上記ファイル以外にも、仮想マシンの状況によっては仮想マシン名の付与されているファイルが存在する場合があります。
その場合は、mvコマンドで同じようにファイル名を変更します。

11. 仮想マシン保存用フォルダ名の変更

最後に仮想マシン保存用フォルダ名を変更します。
保存フォルダから一つフォルダを上位に移動します。
同じくmvコマンドでフォルダ名を変更します。

# cd ../
# mv vmge01 vmge02

ここまででESX側の操作は完了です。

12. インベントリへの追加

削除したvmge01の変わりにvmge02をインベントリへ追加します。
データストアブラウザから仮想マシンが含まれるデータストアを参照します。vmge02フォルダ内に含まれるvmge02.vmxを右クリックし、インベントリに追加を行います。

vm_inventory_add

仮想マシンの登録画面になりますので、以前に仮想マシンが登録されていたときと同様の選択を行い、登録を完了させます。
インベントリにvmge02が表示されたら、仮想マシンを起動して、ゲストOSに問題が無いか確認を行います。変更後の動作確認で問題なければ、再度、SSHでESXへログインして古い名前を持つvmxファイルを削除します。
その後、SSHサービスを停止して作業は完了です。

仮想マシンの名前をフォルダ側まで変更しようとした場合、ここまでの手順が必要となります。
かなり面倒で、リスクの高い作業になりますので、後で変更作業が発生しないように、設計を行う必要があります。
VMWareの構築はかなり奥深いので、迷ったときは、経験者にお任せするのも一つの手だと思いますので、まずはご相談下さい。

  • この記事を書いた人
rem-profile-photo

レムシステム

レムシステムはPC・サーバー・ネットワークでの業務効率化を主な業務としている会社です。全国に対応しています。

-VMware