esxi 4.0 から esxi 4.0 update1へのアップデートを試みました。今回は、下記の手順のように行ないました。なお、作業に入る前にすべての仮想マシンは停止しておきました。
ESXiのアップデート
(1) (ホスト側での作業)仮想マシンのバックアップを行ないます(簡易的な方法です。詳しくは後述します。)
(2) (クライアント側での作業)『vSphere Host Update Utility 4.0』を起動します
Windwsのスタートメニューより、『すべてのプログラム』→『VMware』→『vSphere Host Update Utility 4.0』を起動できます。なお、このユーティリティはvSphere Clientインストール時に、オプションを選択して一緒にインストールしていると思います。インストールしていない場合も、あとからインストールできたはずなので、VMwareのドキュメントを調べてみてください。
(3) パッチリポジトリへ接続する旨確認画面が表示されますので、『はい』を選択します。
(4) 下記のような画面が起動します。
ホストのリストにesxiホストが表示されない場合は、『ホスト』→『ホストの追加』でホストを指定します。
なお、build番号をみると、build-171294となっていました。
(5) 画面下部の『パッチのスキャン』ボタンを押します(『ホストのアップグレード』は使いません)。
(6) パッチが検出された旨のメッセージが表示されます。
(7) 『ホストのパッチ処理』ボタンを押します。
(8) 確認画面が表示されます。今回は何も考えずに『インストール』ボタンを押しました。
なお、事前にメンテナンスモードになっていなくても、自動的に切り替えられるようです(ボタン押下後、メッセージ欄に切り替える旨のメッセージが表示されていました)。
(9) パッチの適用にはかなりの時間がかかりますが、待ちます(手元の環境では、45%付近で数分とまったままになっていました)。
(10) 問題がなければ、ホストが再起動されます。
build番号を見るとbuild-208167となり、更新されていることがわかります。
(11) vSphere Clientを起動し、ホストをメンテナンスモードから通常のモードに戻します。
(参考にしたサイト)
vSphere Clientのアップデート
上記の手順でホストのアップデートは可能ですが、クライアントのアップデートは行なわれませんでした。
クライアントのアップデートの方法が不明でしたので、今回は、一旦vSphere Clientをアンインストールして、ブラウザからホストへ接続し、クライアントソフトウェアをダウンロードし、この新しくダウンロードしたソフトを使い、再度インストールしました。
インストール後、バージョン情報を表示すると、ビルド番号が20811となり、更新されていたので、(手間はかかりましたが)この手順で大きな問題はないかと思います。
ゲストOSのVMwareToolsのアップデート
esxiをアップデートしたら、各ゲストOSのVMwareToolsもアップデートします。現在の仮想ホストは、UbuntuとWindowsXPだけなので、それぞれのVMwareToolsをアップデートしました。
Ubuntu 9.04 Desktop 日本語 Remix版の場合
- vSphere Clientで仮想マシンの『サマリ』タブの『全般』『VMwareTools』の表示を確認します。以後は、ここにどう表示されるかで若干かわります。
- 『未インストール』と表示される場合
- 仮想マシン上で右クリックし、『VMwareToolsのインストール/アップグレード』を選択します
- Ubuntuにログインします
- 通常の手順どおり、tarファイルからのインストールを行ないます(今回は先にアンインストールを行ないました)
- 『旧バージョン』と表示される場合
- 仮想マシン上で右クリックし、『VMwareToolsのインストール/アップグレード』を選択します
- ダイアログが表示されるので、『対話』とあるほうを選択します
- あとの手順は、未インストールの場合と同じです。
手元のUbuntuの仮想マシンは2つあり、どちらも同じようにインストール・設定を行なったつもりだったのですが、なぜか上記のような違いが生じていました。違いが生じた理由は不明ですが、それぞれの場合に対して、上述の方法でVMwareToolsを更新できました。
なお、ゲストOSがUbuntu 9.04の場合は、esxi 4.0ではVMwareToolsコンパイル時にコンパイルエラーが発生していましたが、update1ではエラーはなくなっていました。
Windows XP Pro SP3 の場合
- 仮想マシンを起動します
- 仮想マシン上で右クリックし、『VMwareToolsのインストール/アップグレード』を選択します
- 自動upgradeを選択します
- アップグレード後、仮想マシンの再起動が行なわれます
仮想マシンのバックアップについて
仮想マシンのバックアップを取る手段はいくつかあるようです。たとえば、
- vSphere Clientのデータストアブラウザから、仮想マシンのファイルをダウンロードする
- FastSCPを利用する
といった方法が考えられます。しかし、実際に試してみると、どちらも遅すぎて耐えられませんでした。
また、別の方法として、vCenter Converterを使い、ホスト上の仮想マシンを吸いだすようなことができないかと考えたのですが、あるホストから別のホストへダイレクトに取り出すことはできるようですが、ハイパーバイザ型の仮想マシンからデータのみを取り出して、ファイルとして保存しておくような使い方はできないようです。
vCenter Converterを使い、ホスト上の仮想マシンをvCenter Converterが動作しているPC上の(VMware Player等の)仮想マシンとして取り出すことは可能です。取り出したファイルは、.vmxと.vmdkから成っていました。ただし、vCenter Converterは仮想マシンを変換するためのソフトであり、変換先の仮想マシンのメモリ容量などはvCenter Converterを動かしているPCの物理スペックに依存するようです。その意味では純粋なバックアップには向いていませんが、仮想マシン内のデータを保存するなどの目的であれば十分使えそうです。(2010/3/29修正と追記)
そこで、今回は、ホストへsshでログインできるようにして、ftp経由でデータを取り出すことにしました。データの保存先は、ネットワーク上にftpサーバを立てて、そこに保存しました。簡単に手順を書いておきますと、
(1) esxiを起動します
(2) コンソール画面でAlt+F1を押します
(3) unsupported と入力します
(4) パスワードの入力を求められますので、入力します。
ログインできると、画面に未サポートである旨のメッセージとプロンプトが表示されます。
(5) vi /etc/inetd.confとして、inetd.confを開き、編集します
(6) 31行目にある、sshの記述を有効にします
(7) reboot と入力し、再起動します
(8) sshでログインします
(9) ftpput により必要なファイルを転送します。たとえば、
for fn in `ls -1 /vmfs/volumes/localhdd/仮想マシン名/ | grep -v '\.log$'`; do ftpput -u username -p passwd dst_host dst_dir/$fn $fn;done
などのコマンドでできると思います。
(10) 必要なファイルを取得したら、ログアウトします。
自分が試した中では、これが一番早かったです。手元の環境では、だいたい9MB/sぐらいの転送速度でした。(ネットワークも絡むのでで絶対的な速度についてはなんとも言えません。参考値と思ってください。)
もっとも、今回の方法では、バックアップとはいっても、すべての仮想マシンのバックアップを取るのは無駄だと思ったので、必要な仮想マシン1台のみに限定したうえに、ホストの構成情報はバックアップしていません。従いまして、本格的なバックアップ方法はもっと考える必要があるかと思います。
(参考にしたサイト)
ESXiでのsshを有効にする方法について
バックアップについて
-
Veeam FastSCP 3.0(FastSCPによるバックアップ方法について書いているブログ)
(変更履歴)
-
2010年3月29日:vCenter Convererに関する考え方を見直しました。