プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

esxiのデータストアの再構築

当初、esxiを使い始めたときは、お試しで使う、という意識が強かったので、仮想マシンを保存しておくデータストアにもほとんど気を使っていませんでした。しばらく使ってみると、仕事の環境構築にも使えて、非常に便利だということがわかりました。ただ、このまま使い続けると、HDDにトラブルがあった場合にひどい目にあいそうなので、本格的に使う前にHDDをミラーリングすることにしました。

一応、HDDのミラーリング自体は、サーバー購入時に意図していたので、Dell の SAS 6i/R RAIDカードがあります。しかし、当初はHDD1台だったので、ミラーリングのアレイを設定していませんでした。今回、ミラーを設定しようとして改めてRAIDカードの説明書を読みますと、RAIDアレイの構築時にはHDDの中身が消される、ということが書いてありました。かなりショックです。

自分がミラーリング時の手順を事前に確認していなかったのが悪いのですが、一旦esxi上の仮想マシンを別のHDDなり、PCなりに退避させて、再度設定する必要が出てきました。今回は、このために行なった作業を(できる限り)まとめてみました。ご参考になれば幸いです。

 

環境について

esxiホスト

Dell T105 (8GBメモリ、 160GB SATA HDD×1(今回2台でミラーにします)、 SAS 6i/R RAIDカード)

esxi : 4.0.0 Update1 (USBブート)

 

クライアント

クライアント環境は作業順序の関係で2台使いました。

Windows XP SP3 : vSphere Client 4.0.0, vCenter Converter Standalone 4.0.1

Windows 7 Home Premium : vSphere Client 4.0.0, vCenter Converter Standalone 4.0.1,VMware Player 3.0.1

 

NFS領域への退避

最初に試した方法は、esxiのデータストアとして、NFSの共有領域をマウントして、ここに仮想マシンをコピーすることです。今の開発環境ではファイルサーバーとして、NETGEARのReadyNasDuoを使っております。このNASにはNFS経由でアクセスできるので、それを使おうというものです。

最初に、vSphere Client を立ち上げて、『構成』タブの『ストレージ』を選択して、『データストアの追加』を選択しました。サーバー名と共有名を入力すると、問題なくデータストアとして認識されました(共有名は、/vmのように、先頭にスラッシュが必要でした)。

次に、esxiのローカルHDDの仮想マシンをNFS上のデータストアに移動させます。試した方法は次の二つです。

  • VMware vCenter Converter Standalone によりデータストア間で移動させる
  • データストアブラウザで移動させる

Converterでは、sourceとして、esxiのローカルhdd上の仮想マシンを選択し、destinationとしてesxiのNFSを選択する、というようにしました。 同じesxiホストですが、保存先のデータストアを変更するということです。

試してみたところ、仮想マシンの変換自体は問題なくできました。ただ、仮想マシンから(別の)仮想マシンを作成する、という目的のため、スナップショットの履歴が保存されないようです(後から気づいたのですが、スナップショットに関するオプションがあるので、場合によっては残せそうです。ただし、確認していません)。

一方、データストアブラウザの場合、転送に非常に時間がかかることがネックですが、コピーした仮想マシンを再度インベントリに追加すればスナップショットも再現できていました。

しかし、スナップショットよりも、両方に共通して困ったことが、元の仮想マシンがシンプロビジョニングを選択していても、NFS上のデータストアではシンプロビジョニングに対応していないようで、巨大なファイルが作成されてしまいます。(Converterの場合、変換オプションでThinを選択しても同じことが起こります)。

(参考)VMwareのドキュメント『ESXi構成ガイド』:『ストレージ』『ストレージの管理』『シンプロビジョニング』『シン プロビジョニング仮想ディスクの作成』に記載があります

 

VMware Player用の仮想マシンとしての退避

変換方法の問題ではなく、NFSというストレージ上の仕様(?)のため、このままNFSを使うのは移動時間の点で(私にとって)現実的ではないので、別の方法を考えました。

スナップショットといっても新しいソフトウェアをインストールする前後で記録していたものなので、最新の状態が保存できれば、現時点では大きな問題はありません。そこで、今回は、スナップショットをあきらめる代わりに、Converterで別PC上のVMware Playerの仮想マシンに変換することで、仮想ディスクが膨れ上がるのを抑えることを試しました。

また、現時点のConverterはWindows7の仮想マシンの変換に対応していないようです。使い始めて間もないのでWindows7の仮想マシンはあきらめて再インストールで対応することにしました。

さて、この場合の流れとしては、esxiの仮想マシン→クライアントPCのplayerの仮想マシン→esxiの仮想マシン、という手順を踏むことになります。つまり、一つの仮想マシンにつき2回変換することになります。

もちろん、playerの仮想マシンとして一時退避後に、esxiホストのローカルHDDにRAIDアレイを設定する作業を行ないます。

Windows7上にConverterをインストールして、Linux仮想マシンを変換すると問題なく変換できました。Windowsの仮想マシンを変換しようとしたときに、sysprepというツールを設定する必要があることがわかりました。ついでに調べると、現バージョンのConverterはWindows7上での動作確認はされてないようです(ユーザーズガイドの『Supported Operating Systems』に載っていません)。

Converterのユーザーズガイド等を読むと、sysprepツールを配置するディレクトリがきちんと指定されています(上記ユーザーズガイドの『Configuring VMware Virtual Machines』→『Configure a Virtual Machine』→『Save Sysprep Files』に記載があります)。 このディレクトリの指定方法を見ると、ALLUSERPROFILEの下にあるようで、やはりWindows7には対応するところが無いようです。

そこで、面倒ですが、VMware vCenter Converter をWindowsXPの別PCにインストールし、こちらでWindowsの仮想マシンをコンバートすることにしました。

なお、sysprepファイルはMicrosoftから配布されていて、入手先についてはVMwareのドキュメント『Sysprep file locations and versions』に詳しく記載されています。

 

結果

Ubuntu 9.04 Desktop (32bit) の場合,esxiに再度移動した後、起動すると、問題なく起動できました。

ただし、vmware-toolsが未インストールの状態、だと認識されるようです(実際には元々のesxiホストの仮想マシンとしてセットアップした際にインストールしたファイルが残っています)。そこで、

cd /usr/bin
sudo ./vmware-uninstall-tools.pl

として、既にインストール済みのvmware-toolsをアンインストールし、 再度vmware-toolsをインストールしたところ、正常に認識されるようになりました。

しかし、Ubuntu 9.10 Server (64bit) のほうは、VMwareToolsがインストール済み(vSphere Clientの対応する仮想マシンの『サマリ』タブの『VMware Tools』がOK)となっていたのですが、IPアドレスが表示されないなどの現象(dhcpクライアントが動いていない?)があり、よくわからない状態になってしまいました。後から他のトラブルが発覚するのもいやなので、これも再セットアップすることにしました(この仮想マシンを起動後、サーバーの設定を見るだけなら、特に問題は無いので、面倒ですが設定には困りません)。

Windows XPの仮想マシンの場合は、問題なく仮想マシンが起動し、さらにVMware Toolsも問題なく認識されました。Converterによる変換時のオプションはデフォルトのまま(VMware Toolsのインストールのチェックボックスはオフ)にしていたので、元々esxiの仮想マシンにインストールしていたVMware Toolsが正しく認識されたものと思います。

なお、一時的に、Player用の仮想マシンに変換する時点でConverterが稼動しているマシンの仕様に合わせるためメモリ量を大幅に減らしたのですが、esxiに戻す際に元の容量に戻したためか、再アクティベーションは要求されませんでした(念のため、Player上では起動させていません)。

 

esxiストレージの再構成について

難しい操作ではないのですが、esxiのストレージの再構成についても触れておきます。

上記の手順において、esxi上の仮想マシンを別PC上のPlayer用の仮想マシンに変換後、esxi上の仮想マシンをすべてストレージ上から削除しました。次に、ストレージそのものを削除しようとしたら、下記のようなエラーが表示されました。

データストア削除時のエラー

参考になりそうなサイトには、仮想マシンをシャットダウン後再起動してみろ、とあったのですが、手元の環境ではesxiホストを再起動してもエラーがなくなりませんでした。仕方ないと思い、esxi上からは消すのはあきらめて、そのままRAIDアレイの構築を行ないました。RAIDアレイ構築後、esxiを起動して、vSphere Client から接続すると何も無かったように、ストレージから消えていました。

あとは、通常のストレージの追加で、RAIDアレイを追加したら、問題なく使えるようになりました。