VMware : してログ

ゲスト OS のインストーラが起動しないどころか、BIOS の画面も出ない現象が起こっています。 起動させても、真っ暗なまま CD は反応して高速回転したりしますが、ブートメニューは疎か vmware のロゴすら表示されません。 BIOS から EFI に変更すると、最初の画面は出るもののインストーラは途中で止まってしまいます。 その他、設定をいくら弄っても改善せず、どんどん変な方向に嵌っていってしまいました。

仮想マシンのデバイス関係かと思いましたが、vShere Client のコンソールが画面を更新できていないだけでした。 どうも、ディスプレイモードが変わるときに更新ができなくなって真っ暗になるらしく、最初から発現すると BIOS 画面や vmware のロゴも表示されないという状況になるようです。 この状態になったら、コンソールを開きなおすことで再度表示されるようになるようです。

分かってしまえば、画面が真っ暗なまま、ただ気づかなかっただけでした。 インストールが済んでしまえば、リモートデスクトップで接続できるので問題無いですが、早くバージョンアップして直らないかな…。

ESXi サーバーを SSD 化するのに伴い、5.5u1 から 6.0u1 までアップグレードしようと作業していましたが、起動中にこの画面が表示されて停止してしまいます。 しかも同じ条件で起動に成功することもあるし、ただ再起動しただけで停止したりと、とにかく不安定な状況でした。 ひとつひとつ原因を探ってみましたが、現在のところ特定には至っていませんが、マザーボード(チップセット)か UEFI ファームウェアに原因がありそうです。

仕方が無いので 5.5 build 3343343(にしてもすげービルド番号だ)をインストールして様子を診ているところですが、こちらは今のところ問題ありません。

問題の発生する環境
  • マザーボード:ASRock Z87 Pro3/Pro3 C2(Z87 1150 DDR3 ATX)
  • CPU:Intel i7-4770K
現象の詳細
  • 起動中(またはセットアップ中)に突然、パープルスクリーンに切り替わり「checksum BAD」と表示され停止する
  • 停止するタイミングは決まったパターンが見られない
  • インストーラは、CD ブート、USB ブート問わず発生する
  • インストールできた場合でも、起動中に発生することがある(SSD、HDD、USB メモリを問わず)
  • 試行錯誤中、UEFI のブートドライブが表示されなくなることが何回かあった
  • 起動に成功した場合は、リモートから接続してゲスト OS を起動したりしても特に問題は無い
SATA 関係が怪しいが…

UEFI(最近ようやく“ウエファイ”って読むことにしたよ)で散々あれこれやってみても結局解決しない。 チェックサム不一致ということなので、HDD の読み書きが疑わしいのだが、SSD や USB メモリなど異なるデバイスでも起こるときは起こる。 終いには、CD でブートしている最中にも停止したのを見て、もしこれらのコントローラが原因なら BIOS アップデートかな、と。

次にメインメモリを疑う

とりあえず 8GB × 4 だったので、適当に1枚を選んで試す、全部試さなかったけど改善せず。 メモリ検査ツールを探したら、Memtest86+ というのが良いということで、2時間ぐらいかけて1パス完遂してみたが、何のエラーも報告されなかった。


追加:BIOS アップデートしてみた

本当はショップの BTO で組んだ PC の場合、リテール品のマザボと微妙に異なる場合があるので、メーカーからの BIOS アップデートはしない方が良いのだが、一縷の望みをかけて実行してみました。 インストールは問題なく終わったものの、初回の起動時にパープルスクリーン、はい終了。 次の ESXi アップデートで直ることを期待して、5.5u2 を使うしかないようです。

これは、VMware ESXi 6.0 についての私的メモです。 VMware のサイトでは、なかなか目的のページに行くことができないことが多かったり、バージョンの Update 1 とビルド番号が分かり難かったり、メモしておかないと分からなくなるので。

必要ファイルへのリンク
VMware vSphere Hypervisor 6.0 (ESXi)
正式名称が違うので戸惑いますが、これが ESXi になります。私が試したときは、6.0u1 が英語サイトにしか無かったのですが、現在は日本語サイトのほうにもあるようです。ダウンロードする場合は、ISO イメージと共に、vSphere Client とライセンスキーも忘れずに取得しておきましょう。なお、後述の PowerCLI + ESXi-Customizer-PS を使うとこれより最新のものをダウンロード(6.0 としてダウンロードしますが update 1 より新しいものです)できるようです。
VMware vSphere PowerCLI 6.0 Release 3
PoworShell 用コマンドラインツールです。インストール後の実行には、管理者としての実行が必要です。
VMware vSphere CLI 6.0
従来のコマンドラインツールです。
最新のパッチファイルのありか
手動でのアップデートになります。
V-Front Online Depot for VMware ESXi
未サポートのネットワークドライバやツールがあるサイトです。
UNetbootin
ISOイメージから Live USB を作成するツールです。USBメモリーからブートしてインストールさせたいときに使用します。
インストール前のあれこれ
今のところのベスト構成
ESXi 本体をローカルの SSD(小容量で良い)にインストールし、ゲスト OS は iSCSI にするのが良いと思われる。
カスタム ISO の作成
以前は ESXi-Customizer というツールで作成していましたが、今は ESXi-Customizer-PS という PowerShell のスクリプトを使って、最新の ESXi イメージファイルとドライバの追加ファイルをネットからダウンロードして ISO を構成するようになっています。従って、ESXi の ISO イメージもダウンロードする必要はありません。具体的に用意するものは、vSphere PowerCLI と ESXi-Customizer-PS で良いはず、なのだが今のところうまく行っていません。とりあえず、旧ツールを使っても作成可能なのでダメならそれで(でも旧ツールは Windows10 で動かないんだけど…)行こう。恐らく最新版で何か変わったのだろう。
Intel i7-4770K だと"Initializing IOV"でフリーズしてしまう
起動オプションに「noIOMMU」を加える。インストールメニューで[TAB]を押す、起動時なら Shift + O、恒久化したい場合は、(SSH で接続して)/bootbank/boot.cfg の kernelopt に加える。
The system has found a problem on your machine and cannot continue. Chipset initialization failed.
この環境に限り ESXi6.0u1 だとインストールできる(update 1 じゃないとだめ)。
HARDWARE_VIRTUALIZATION WORNING: Hardware Virtualization is not feature of the CPU, or is not enabled in the BIOS
Intel VT-x などが搭載されていても出る場合は、UEFI で無効になっているので有効にする。
インストール後のあれこれ
ライセンスキーの入力
vSphere Client から「対象ホスト>構成>ライセンス機能>(右上の)編集…」で設定できる。
SSH を有効にする
vSphere Client から「対象ホスト>構成>セキュリティ プロファイル>(右上の)プロパティ>SSH」で設定できる。
ホストはパススルー構成をサポートしていません
Intel VT-d が UEFI などで無効化されているので有効化する。なお、i7-4770K などは VT-d を利用できないので、CPU の選定は慎重に行うべき。
サーバ「vsphereclient.vmware.com」から、必要なクライアントサポートファイルを取得できません。
ESXi サーバーと vSphere Client のバージョンが違っている場合に表示され、ログインができない。サーバーより高いバージョンを使えば良さそうだが、その場合でもサポートファイルとやらを取得できた試しが無く、必ずバージョンを合わせた vSphere Client を用意する必要がある。
仮想マシンのクローンやデータストアのお引越し
ESXi では簡単にクローンなどが出来ない。いくつか方法はあるが、vmkfstools コマンドで行ったほうが良い。vSphere Client のデータストア参照でコピー&ペーストや、VMware vCenter Converter でも作業できるが致命的に遅い。 また、シン・プロビジョニング(仮想容量)のディスクイメージが、シック・プロビジョニング(実用量)なってしまう。

USBメモリにインストールしてディスクレスにした ESXi では、「ホスト xxxxx のシステム ログは非永続性ストレージに格納されています。」と警告されます。 ログ出力先をネットワークストレージ(iSCSI)に設定しようと思ったのですが、設定方法が少し分かりにくかったので残しておきます。

  1. ログを置くストレージに専用ディレクトリを作る
  2. vSphere Client > ホスト名 > 構成 > 詳細設定 > Syslog > Syslog.global.logDir
  3. 例えば、ストレージが“strage1”、ディレクトリが“/logs”、とすれば“[strage1] /logs”を入力します
  4. [OK] を押して適用します

これでログが残るようになって一安心です。 しかし、よくよく考えてみると iSCSI にログディレクトリを置いた場合、ネットワーク切断時に原因を追えなくなってしまいそうです。 なので、ローカルディスクをインストールすることにしました。 でも、ディスクレスは維持したいので、インストールするのは SSD(32GB 程度の小サイズなら数千円で買えます)です。 今さらですが、USBメモリなんかにインストールしなくても良かったです。

USB メモリにセットアップすれば、サーバーをディスクレスにでき、環境のバックアップも簡単に行えます。 ハイパーバイザの容量が 150MB 程度しかないため、数百円で特売されているような USB メモリで十分です。 ただ、USB メモリが飛び出していると破損させてしまう心配があるので、RUF3-PS8G-BK のような出っ張らないタイプの製品がお勧めです。 または、マザーボードから USB ポートを筐体内に出して USB メモリを内臓してしまう、というのもアリかなと思います。

セットアップの手順

セットアップ対象の USB メモリ自身に、インストーラを作成できるため、光学メディアなどが無くても大丈夫です。 用意した ISO イメージは UNetbootin というツールで USB メモリに書き込みます。 ただ、今のバージョンではセットアップ途中でのドライバ追加はできないので、必要であれば ESXi-Customizer というツールで ISO に書き込んでおく必要があります。 基本的には、ネットワークインターフェイス(Intel 製が無難)に気を付けて、予め CPU の VT 関係の設定を UFIF(BIOS)で有効にしておけば良いです。

USB メモリのバックアップ

セットアップが終わった時点で、USB メモリをバックアップしておくと、トラブルのとき安心です。 バックアップには DD というディスクイメージをコピーできるツールを使います。 Windows 用には DD for Windows というツールがありますが、これで作った複製では起動しませんでした(BANK6: not a VMware boot bank, No hypervisor found となってしまう)。 動いた報告もありますが、無難に Linux の DD コマンドを使いましょう。 手元に適当な Linux が無い場合は、Ubuntu などの LiveCD で起動すれば良いでしょう。 具体的な手順は下記の通りです。

  1. USB メモリを刺す
  2. dmsg コマンドでデバイス名を取得(直前に認識した USB デバイスの情報の中で sdc などの名前で確認します)
  3. DD コマンドでとりあえずファイルにダンプします
    dd if=/dev/sdc of=esxi.img
  4. 同容量 or それ以上の USB メモリに差し替えます
  5. もう一度 dmsg でデバイス名を確認しておきます
  6. DD コマンドでリストアします
    dd if=esxi.img of=/dev/sdc

USB メモリは、読み込みは割と速くても書き込みが遅いので、気長に待ちましょう。


追記

後にアクセス速度、安定性、耐久性などの面から、小容量の SSD のほうが適していると考えを改めました。 価格的にも 32GB 程度なら、Transcend や Sandisk 製でも 4,000 円程度で買えます。 少し大容量にして、高速なデータストアと共存させても良いですが、この値段なら分けておくのが良いと思います。

久しぶりに VMware Player の環境を起動したら、ゲストOSからブリッジ接続できなくなっていました。 先だって、VMware Player のアップデートをしたのが原因かと思って、見当違いの試行錯誤をしてしまいました。 似たような症状で困っている人がいると悪いので、メモを残しておきます。

仮想マシンのネットワーク設定がブリッジになっているとか、そういう基本的な設定は出来ているすれば、ホスト側のネットワークアダプタを確認しましょう。 物理ネットワークアダプタ以外に、仮想ネットワークアダプタがインストールされている場合があります。 特に、他の仮想化ソフトウェア(Virtual BOX など)がインストールされていると、そういう状態になっています。 この場合、物理ネットワークアダプタ以外(要はインターネットに出れるアダプタ以外)のプロパティを開き、「VMware Bridge Protocol」のチェックを外してください。 これでゲストOSから、インターネットに出ていけるようになると思います。

あと、関係ないけど VMware Tools のアイコンが、通知エリアやプログラムメニューにも無いんですが、何かおかしいでしょうか。 とりあえず、使えているので問題は無いのですが、今まであったものが無くなると、何となく気になる。

Windows 8.1 をゲスト OS としてインストールしたところ、最初は USB が使えませんでした。 仮想マシンに、USB コントローラがインストールされていないのが原因です。 また、USB xHCI コントローラが入っている場合も、USB EHCI+UHCI コントローラに入れ替える必要があります。

  1. 仮想マシンをシャットダウンします
  2. 仮想マシンの設定を開き[ハードウェア>追加>USBコントローラ>EHCI+UHCI]を追加します
  3. 仮想マシンを起動します
参考

表題どおりなのですが、時計の進み方が遅いときがあります。 コントロールパネル>日付と時刻で進み方を眺めていると、遅いときは2~4秒ごとに1秒進むようです。 これは常にそういう状態なわけではなく、ちゃんと1秒ずつ進んでいるときもあります。 そのためか、時計がすぐに遅れてしまいます。 検索で調べてみると、ゲスト OS が CentOS のときの事例はありました。

ゲスト OS が CentOS の場合は、カーネルオプションで直せるとのことです。 逆に、異常に進みが早くなる場合もあるようで、この場合は VMware-Server の config.ini に CPU のクロック周波数などを書くと直るようです。 残念ながら、ゲスト OS が Windows で時計が遅くなる現象は見つけられませんでした。 私も、他のサーバーでこのような現象を経験したことが無いので、非常にレアなケースなのかも知れません。

現象を確認している環境

何か情報がありましたらコメント下さい。

CPU
AMD Athlon 64 X2 Dual Core Processor 4200+ 2.2GHz
OS
Windows Server 2003 sp2
VMware
VMware-Server 1.0.10
ゲスト OS
WindowsXP Professional sp3

VMware-Server 1.0.10 は現在 EOL になっていますが、使い勝手の良さでは VMware 製品の中で間違いなくトップだと思います。 ESXi を導入した今では不要なのですが、その手軽さでまだまだ使いたい場面はあると考えています。 最大のネックは、新しい OS が入らないことなのですが、今回は CentOS で最新版から試して行きました。 動かなかったものは、ググった範囲(といってもほとんど情報がありません)で色々と試しても無理でした。

CentOS 7 ... 失敗
インストールを開始すると「Press the <ENTER> key to begin the installation process.」が表示された後、フリーズ状態になります。ENTER キーを押してもインストール開始できません。
CentOS 6.x ... 失敗
インストールを開始すると「Probing EDD (edd=off to disable)... ok」が表示された後、フリーズ状態になります。
CentOS 5.11 ... 成功
SCSI ディスクだとインストーラが認識しないので、VM を作成するとき Custom を選択して、IDE ディスクを作成しました。また、VMware-Tools はうまく動かないようです。

公開 NTP サーバーを使って、ESXi サーバーとゲストOSの時刻を同期するには、vSphere Client の ESXi サーバー>構成>時間の構成、から行います。 ゲストOS の同期については、VMware Tools のオプションから行えますが、個別に NTP サーバーを介した同期を行うことを推奨しているようです。

  1. ESXi サーバー>構成>時間の構成 を開きます
  2. NTP 構成の「オプション」をクリックします
  3. 全般の起動ポリシーで「ホストに連動して開始および停止」を選択します
  4. NTP 設定の「追加」をクリックして、NTP サーバーのアドレスを追加します
  5. 「変更を適用するにはNTPサービスを再開」にチェックを入れ OK をクリックします
  6. 「日付と時間」を手動で設定(正確な時間は設定後にしばらくすると NTP サーバーと同期します)して OK をクリックします