2016年2月 : してログ

12

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 でも作業できるが致命的に遅い。 また、シン・プロビジョニング(仮想容量)のディスクイメージが、シック・プロビジョニング(実用量)なってしまう。

diskpart コマンドでディスク選択を誤って 2TB のデータディスクのパーテーションをすべて削除してしまいました。 操作ミスに気付いて、頭が真っ白になってしまい、フリーズすること約1分。 我に返って何が消えたのか考え出すと、とても諦めることができません。 と言う訳で、パーテーションの復元を試してみることにしました。

まず、パーテーションを削除しただけなので、データはすべて残っているはずです。 そして、今はシステムから切り離されているので、上書きされる心配も考えなくていいと思います。 ひとまず、データは安全だと考えていいと思います。

データ復元ツールで、まず思い浮かぶのは誤って削除してしまったファイルを復元するタイプのものです。 手持ちのツールをいくつか試してみると、やはりデータは保持されています。 ただ、容量が容量なだけにスキャンするにも、ファイルを退避するにも超大な時間が掛かります。 できれば、パーテーションテーブルだけを復元し、中身はそのままという形にしたいのでググります。

PartitionRecovery

http://tokiwa.qee.jp/download/PartitionRecovery/PartitionRecovery.html

こちらのツールでは、復元可能と表示されるものの、復元を行うと「ブートセクタが見つかりませんでした」と出てしまいました。 残念ながら諦めてください、ということのようです。

EaseUS Partition Master (Free)

https://jp.easeus.com/partition-manager-software/free.html

こちらは有料ツールですが、背に腹は替えられないということで試してみました。 最初インストールした試用版は、削除したパーテーションは見つけられるものの、いざ復元しようとすると「これは試用版なため…」と無理そうです。 まあ、値段的には5,000円くらいだし買っても良かったんですが、説明を読むと家庭での利用は無料だと書いてあるみたいなので、もう少し調べてみました。 すると、トライアル版ではなくフリー版というのがあるのを発見、さっそくダウンロードしてみました。

結果、あっという間に復元完了で、元どおりすべてのデータを復元することができました。 諦めないで良かったと、心底思いました。 皆様も、diskpart の操作はくれぐれも慎重に行いましょう。

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

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

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

サーバー機のリプレースを行い、すべての移設作業が完了しました。 ずっと電源を入れっぱなしだったので、停止したサーバー内部は埃がたくさん、よく頑張ってくれました。 移設作業を進めていく中で、作業完了したサービスをひとつずつ停止していくのですが、この作業かなりジンときます。

Apache(ウェブサイトの移設作業)

Apache のグラフは1日の中で規則正しく脈を打っていたのに、まるで心停止したかのようです。 移行は PHP のバージョンが上がったことによる関数名の競合が1件、それ以外はスムーズに移行できました。

  • sshfs で新サーバーをマウントし rsync でコピーする(rsync だと差分コピーできるので、二回に分けて行えば、事前に動作確認もでき、本番作業の時間短縮になります)
  • データベースは、フルバックアップを取ってアーカイブを転送し、そのままリストアで問題なし(ファイルサイズが大きくなるので圧縮オプションを使った方が良いです)
  • 今回は、PHP のバージョンが上がった関係で、関数名の競合が少しありました(メモ用に使っている PukiWiki が動かなくなったので、公式から 1.5 をダウンロードして同時にアップデートしました)
Sendmail → Postfix(IMAP メールデータ移設)

こちらはメールサーバー(Sendmail)です。 新しいサーバーでは、Postfix に移行しますのでこの移行作業が一番心配でした。 ただ、実際にやってみると思いのほかスムーズで、特に面倒なところはほとんどありませんでした。

  • imap なのですが、新しい Maildir にディレクトリ毎コピーすれば問題無いようです
  • 実ユーザー管理から、VirtualMailbox に移行しました
  • メールの自動処理をしていたパイプ処理が、VirtualMailbox だとできないので、一部を実ユーザーに転送設定しました(実ユーザーと言っても、aliases でそのままパイプしてスクリプトが処理しますので、実ユーザーは無くて OK です)
  • Procmail も利用していて、こちらも実ユーザーへの転送が必要ですが、とりあえず無くても困らないのでそのままにしました(こっちはちゃんと実ユーザーを作ってそこに配送しないとダメです)
  • 接続プロトコルも、imap から imaps になって安心です

まだまだ、細かい設定やチューニングがありますし、新しい管理ツールに慣れないのでスムーズに熟せません。 新しいサーバーが静かに産声を上げた傍らで、旧サーバーは電源を外されすっかり冷えてしまっています。 しばらくは、移行漏れやトラブルに備え動態保存しておきますが、そのあと何につかいましょうか。 長年トラブルらしいトラブルは皆無の優秀なサーバーでしたが、見えない部分で部品は劣化してることでしょう。 本当にお疲れ様でした。

12