PCへのESXインストール(MBR問題)

地方にあるかなり古いマシンを仮想化するためにPCにESXi6をインストールしたのですが、ESXインスト成功し再起動した後に
『ERROR: no boot disk has been detected or the disk has failed』
が出た話です。

自分のPCはSkyseaでUSBデバイスへの書き込みが禁止されているので、サーバ上でUSBメモリに『ISO to USB』を使ってESXのインストーラをブート可能な形式で書き込んだ物を利用しています。

USBメモリへのESXiインストールは成功したのですが、SSDへはインストールできない事を確認の上、調べたところ以下の手順で出来るとあったので試して成功しました。
なぜこれを書いたか?ですが、どこのサイトでの記載もShift+Oのタイミングが非常に分かりづらいのです。

下で書いた通り、『Loading ESXi installer』と出る画面で『Enter boot』の文字の下でカウントダウンが表示されていますが、カウントダウン終了直後に画面が切り替わり読み込みを始める画面に切り替わった直後に『Shift+O(おー)』です。

家のマシンでやってれば知っていた可能性はありますが、家のマシンもXeonのマシンなので体験しなかったろう。。。というオチです。


◆『ERROR: no boot disk has been detected or the disk has failed』が出る場合
ESXインストーラ起動時に画面上中央に
『Loading ESXi installer』と出る画面で
『Enter boot』の次のドライバ類読込開始直後に
『Shift+O(おー)』で画面左下に
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
<Enter: Apply options and boot>
>runweasel
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
と出るので、そのまま『formatwithmbr』Enter
でセットアップしたら正常にいきました。

ちょっと全拠点DHCPリレーに

しようと思いましてWindowsDHCPサーバをいじっていました。

読む前に先に『そんな事やらんわっ!』というツッコミを受けるような話だといっておきます。

 

まず初めにおさらいから。
WindowsDHCPサービスにはスコープ数の制限として5155個というのがあります。また、DBファイル自体がMDBファイルなので2GBの上限もあります。

ちょっと挑戦してみました。どこまで作れるのか?店舗が1200弱なので存在する店舗だけ作る分には問題ないのですが、店舗追加のたびに作業したくなかったんですね。

まずは5000個作りました。これは成功。ただ、GUIの表示がえらい遅い…

次に仕様扱いの5155近くの5150個…DBクラッシュしましたので5000個で再作成。

次に5000個のスコープをフェイルオーバの構成でもう一台のDHCPサーバに設定しようとしたところ、ここでもやっぱりDBクラッシュ!結局諦めました。

SQL実行マシンをつくり、Oracle ClientをインストしてVBSでTNSNAMESを利用せずにADODB接続して抽出&CSV出力した物をDHCPサーバがVBSからPowershellでスコープ名のリストを取得してCSVの中身と比較して作成/削除するようにしました。

Powershellの呼び出しはこんな感じで。
 Powershellで表示される初めの2行は配列に取り込む際に行飛ばししています
Set objShell = Wscript.CreateObject("Wscript.Shell")
Set outExec = objShell.Exec("powershell Get-DhcpServerv4Scope |select Name ")
Set outStream = outExec.StdOut

 

◆64bitOS上でVBScriptを使ってCSVをADODB接続

よくこんな(↓)感じでADODB接続するスクリプトがありますがこれだけだと64bit環境だとText Driverが32bitODBCにしかないので動きません。

Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & strPath & ";ReadOnly=1"
なのでc:\windows\SysWOW64\cscript.exeを指定して32bit強制起動するとodbcad32.exeも32bit版で呼び出されるらしく正常に稼動します。

ちなみにレジストリのWOW64にあるODBC Driverのレジストリ引っこ抜いて64bit環境に持ってきてもダメです。その他の方法だとレジストリのリダイレクトで出来るそうですがタスクで実行するのであればcscript.exe //nologoと書く必要があるので、初めからフルパスでcscript.exeをタスクに書けばいいだけなのでリダイレクトまでは試さずに終わっています。

HAだけじゃ足りません

VMUGでお話をしようと思っていたのですが、機を逃したお話をします。

昨年IAサーバで稼動していたOracleDBのサーバを専用クラスタ(Esx2台分)に移行しており、元の規模が小さいシステムだったこととコスト削減のためシングルサーバとしてゲスト作成されていました。

先日このESXサーバが購入8ヶ月でOS領域用のRaidコントローラが予兆なく故障し、ゲストOSは稼動し続けていたのですがvCenterからはESXもゲスト応答なしとなり、メンテナンスモードへの移行すら受け付けない状態となりました。当然、vMotionも掛からないためゲストOSをシャットダウンしてインベントリからの削除、稼動するESXで再登録しようとしたところ、それも受け付けませんでした。

このため、障害のあったESXで稼動する他のゲストOSもシャットダウンの上でESXをシャットダウンし、ESXをシャットダウンしましたがそれでも出来ずESXをvCenterから一度登録を削除することでインベントリから削除し再登録作業を行う事ができましたが、VMDKファイルレベルでの問題等もありました。

何がいいたいか?というとコスト削減のためにOracleクラスタを作成しゲストをシングルサーバで構築する場合に上記のようなトラブルを考慮し、Oracleクラスタ単位でメンテナンスウィンドウを最低2時間、出来れば4時間設ける事が重要です。

なお、このメンテナンスウィンドウは実作業としてvCenterからESXの切り離し待ち時間で1時間、ESXのシャットダウンに異常に時間がかかり20-30分程度、その後の起動チェックやVMDKファイルの修正で30分程度で最低2時間、ベンダの協力の下での対応の場合、ベンダの調査力なども関係しますので最低2時間程度は見たうが良いので合計4時間程度としました。

まず使いませんが

建屋間での移設かUSB-HDDでデフラグでも考えない限り使いませんが
先日、K君に『移設するESXのゲストバックアップにUSB接続のディスクでも使いたいよね』と言ってやってもらったESXにUSBマウントした際のコマンドです。

 

当初はNTFSだったので、それを一度FAT32変換しようとしたらWindowsのバージョンの問題で出来ず、しょうがなくデバイスマネージャのディスク管理からディスク情報も消して以下のコマンドで行ってもらいました。

きっとK君は『コマンド残しておいてね』に二つの意味(後学の為とここに書くため)とは思っていないでしょう。

# USBディスクにラベルを作成
[root@ESX:~] partedUtil mklabel /dev/disks/mpx.vmhba37\:C0\:T0\:L0 gp
t

# USBディスクのラベルが設定されたことを確認
[root@ESX:~] partedUtil getptbl /dev/disks/mpx.vmhba37\:C0\:T0\:L0
gpt
60801 255 63 976773168

# ディスクのブロックサイズを確認
[root@ESX:~] eval expr $(partedUtil getptbl /dev/disks/mpx.vmhba37\:C
0\:T0\:L0 | tail -1 | awk '{print $1 " \\* " $2 " \\* " $3 " - 1"}')
976768064


# パーティションの作成
[root@ESX:~] partedUtil setptbl /dev/disks/mpx.vmhba37\:C0\:T0\:L0 gp
t "1 2048 976768064 AA31E02A400F11DB9590000C2911D1B8 0"
gpt
0 0 0 0
1 2048 976768064 AA31E02A400F11DB9590000C2911D1B8 0

# VMFSフォーマット
[root@ESX:~] vmkfstools -C vmfs5 -S USB-Disk /dev/disks/mpx.vmhba37\:
C0\:T0\:L0:1
create fs deviceName:'/dev/disks/mpx.vmhba37:C0:T0:L0:1', fsShortName:'vmfs5
', fsName:'USB-Disk'
deviceFullPath:/dev/disks/mpx.vmhba37:C0:T0:L0:1 deviceFile:mpx.vmhba37:C0:T
0:L0:1
ATS on device /dev/disks/mpx.vmhba37:C0:T0:L0:1: not supported
.
Checking if remote hosts are using this device as a valid file system. This
may take a few seconds...
Creating vmfs5 file system on "mpx.vmhba37:C0:T0:L0:1" with blockSize 104857
6 and volume label "USB-Disk".
Successfully created new volume: 5afa98a0-a5a32bfe-32c9-0894ef4bc506

備忘録:仮想ハードウェア

P2Vしたマシンが仮想ハードウェアのバージョンが11で稼動させたい環境が対応しておらず、バージョン下げる必要がありました。

念のため、スナップを取ってESXにsshで接続しvmxファイルを開いて『virtualHW.version』を11から8に書き換えて起動しました。

あっさり動いてしまって非常に残念です。

業者さんのところにシンクラ見てきました。

これまで利用していた某社のシンクライアントの単価が上がりすぎて、今の職場では購入許可が出ず、他メーカも当たることになりました。
ということで、某赤いシンクライアントを出す某社の子会社様と取引があるので、お伺いして見てきました。Windows10 IOT自体は悪くないのですが、初期状態でユーザに触らせたくないアプリやWindows Search、Windowsキーが有効になっているせいで『ファイル名を指定して実行』が利用できてしまうなどの問題がある点に関して、提供マニュアルで利用不可に出来るか、開発側に確認して頂くようお願いしました。

管理ソフトに関しては、某社らしいデザインだったというイメージと説明いただいた方が管理者権限を持っていなかったので詳細までチェックできませんでしたが、他社の管理ソフトを逆に見て頂きました。シンクラですので最低限の機能があれば、いいんですよね。PC管理ほどの情報は不要だと伝わっていることを祈ります。

ゲストOSの作り方というのは

本年度頭に採用したK君、実はかなりやり手でこういう仕様でサーバ構築して!というだけで想定の8割がたの物を作ってくれるぐらいなのですが、そんな彼にヘンジン扱いされる今日この頃です。

やはり人によって性能差が出る物ですね、不思議な物です。
そんな彼に64bitOSのVDIを作ってもらったのですが、一応手順には『飛ばしても良いが推奨』と記載したデフラグを飛ばしたようで、画像操作系のソフトをインストールしたら異常に起動に掛かるわけです。初め認証かなにかのせいで処理が重いのか?と思っていたのですが、そのマシンをテンプレにもう一台作ってみてもやけに重いんです。
幸いにも社内がvCenterがサイロ化してるので、まずはFlexPod環境からSASのHDD環境のFC-SANのLenovo環境に移してみるが、やっぱり遅いのでまさかなーと思いつつデフラグ…断片化率20%・・・おおぃっ!と思いつつFC-SANとFlexPod両方とも、データストアがフラグメントしていないESXのOS領域にコピーしました。

……更に、違う問題に気がついてしまいました。UCS 220M4ですが、サーバハード上のSASでもLenovoより処理が遅かったので、とりあえず業者さんと相談して新ファーム/ドライバがないか調べる事にしました。

さて、デフラグの話に戻りますが、海外のコミュニティなどでもどちらがいいのか?KB等みるとどっちともいえる書き込みはないといった内容で終わっているケースが多く、日本でもVMtoolsに圧縮機能があった頃の書き込み等では、やるだけ無駄という書き込みが目立ちます。ですが、今回画像処理ソフトが1分近く経過してもまともに起動しなかったのが、デフラグを掛けるだけで正常な起動速度になった事からも、ゲストOSであってもフラグメント自体はよろしくないという事が実証できたのではないでしょうか?SSDは大きな意味は得づらいと思いますよ?早いですし。
シンプロの場合は忘れずにsdeleteとpunchzeroしましょう