VMWare ESXi の覚書集

linux, windows, サーバー関連 2010年9月23日,

最近VMWareを使って実サーバー5台で動いてるシステムを1台へまとめてみたりしました。
そんな事もあって、VMWare ESXiもいっぱいいっぱい触ってるわけで、
活用し始めて長いので、「こう使ったほうがよかった」とか
今までで行き詰ったり苦しんだりしたところ等をまとめてみたいとおもいます。

HDDにインストールせず、USBメモリーにインストールしよう


USBブートのUSBメモリ作成のメリットはサーバー機自体とストレージ(実HDD領域)を完全に分断できる所です。
また、ドライバの組み込み等がはるかに楽になります。
別PCで使用などが究極に手軽になるのでUSBへのインストールをオヌヌヌします。

必要なもの
  • VMware ESXi の ISO イメージ(今回は現時点で最新版であった4.1を使用します)
  • USB フラッシュメモリ 1G以上あるもの
  • DDforWindows (ソフト)
  • 64bitと仮想に対応したCPUをもつPC(グローバルに出す場合は物理NICは二つほしい)


VMWare ESXiのisoイメージをゲットしてくる。
こんとき登録等が必要。その後のDLページで表示されるシリアル番号は確実に控えておく事。
でなきゃ60日で使用できなくなりんす。

ゲットしたISOイメージをdaemontoolzとかisomagicとかの仮想ソフトでマウントして
imagedd.bz2を取り出してきてローカルで解凍。
「imagedd」のファイルができた事を確認する


USBメモリを挿し、DDforWindowsを立ち上げる。
対象ディスクにUSBメモリが選択されている事を確認。
ファイル選択で「imagedd」ファイルを選択して「書込み」


書き込みが完了したらUSBブートディスクの完成。
用意したESXi用のPCに挿して、USBブート起動してみてESXiが立ち上がればOK
DHCP環境だと自動的にIPを取得してくれる。
取得されたIPはESXiの画面上に出るので、管理PC側からブラウザでそのIPへ接続し、
ESXiの画面が出ればネットワーク関係もOKです


蟹さんマークのRealtechに対応しよう

実はVMWare ESXiは対応NICが極端に少なく、
基本的にIntel製のオンボードNIC以外は動かなかった記憶しかありませぬ。
(PCIのNICも大体全滅した思い出)

会社はIntelのマザボだったんですが、
我が家で用意したPCはASUSだったため、NICは蟹さんマークのRealtechであった。
そして、蟹はESXiに対応していなかった。

この状態になるとNICが認識されず、無事ブートできてDHCP環境にあっても
IPアドレスが0.0.0.0/0 になります。
(最近の4以降のバージョンならNICが存在しない旨が表示され、NICが認識している場合でIPがとれないときに0.0.0.0/0となります)
なみだ目でマザーボード購入を検討していたところ、
VMWare ESXiには追加でNICドライバを読み込ませる事が可能で、
しかもVMWare用のドライバを作成しているかたがたが海の向こうにいる事をキャッチしました。
ありがたすぎる。

と言うわけで、VMWare ESXiのブートイメージに追加NICドライバを組み込む方法です。

①oem.tgzをゲットしてくる
ESXi3.5使用の場合
http://www.vm-help.com/esx/esx3i/customize_oem_tgz.php

ESXi4以降の場合
http://www.vm-help.com/esx40i/customize_oem_tgz.php

上記URLに今回だとRealtek 8168/8111C用ドライバが公開されていた。
(上記サイトのRealtek 8168/8111Cのリンク「oem.tgz」)

②「imagedd」内のoem.tgzと上記のものを入れ替え
Linux機の場合はUSBを挿してマウントして中のoem.tgzを入れ替え。
Windows機の場合はWinImage等のddファイルをマウントできるソフトを使い中のoem.tgzを書き換えて
再度DDforWindowsでUSBメモリに書き込み。

③ブート
②で作ったものでブートし、VMWare ESXiの画面でDHCPにてIPが取れている事を確認。


ストレージ領域の作成

ネットワークまで繋がればほぼ成功なわけですが
ストレージの作成の際の注意点。
2TBのHDDやRAID5とかを使用して大規模なストレージを作成し、
かつ、1つのHDDイメージを1TB以上で作る予定があるとき
ストレージ領域の作成(vmfs)するときのブロックサイズによって
仮想HDDの最大サイズが決定される。

1
2
3
4
1MB     256GB
2MB     512GB
4MB     1024GB
8MB     2048GB

僕は1TBの領域を作る時に「1MB」のブロックサイズで作成してたため256MB以上の
仮想HDDが作れず、再構築するはめになりました。ご注意!

USBにインストールしたESXi設定情報のバックアップとリストア

必要なもの
  • VMware vSphere CLI

バックアップ
VMware vSphere CLIを何も考えずインストールした場合、管理PC(windows)のコマンドプロンプトで

1
2
C:\Program Files\VMware\VMware vSphere CLI\bin
vicfg-cfgbackup.pl --server ESXiのIPアドレス --username root --password XXXXX -s esxi206_config.cfg

でesxi206_config.cfgに設定情報(バイナリ)が作成される。

リストア
必要なもの
  • VMWare ESXiを初期インストールしたUSBメモリ
初期インストールしたUSBメモリをブート起動する。
生まれたままの姿のESXi状態なはず。

コマンドプロンプトで

1
2
C:\Program Files\VMware\VMware vSphere CLI\bin
vicfg-cfgbackup.pl --server ESXiのIPアドレス --username root --password XXXXX -l esxi206_config.cfg

esxi206_config.cfgを転送する。
すると勝手に再起動する。
再起動後、バックアップ状態が構築されてればOK

ゲストOSにWindowsを使ってみる

WindowsをインストールしようとするとHDDが見つからないというエラーになり進まなくなる。

必要なもの
  • VMWareが提供するSCSIドライバ

1
2
3
仮想マシンがBusLogicの仮想SCSIアダプターを使用するように構成されていれば、
これらのOSをSCSIディスクにインストールする場合、
VMwareが提供するドライバを使用する必要があります。

との事。
XPインストール時にF6を連打して、ドライバをフロッピーから読み込むようにする。
F6を押すと追加ドライバを読み込むには「S」を押せと言われるのでSを押してドライバを組み込み。
以下のURLで手に入るフロッピーイメージ(vmscsi-1.2.0.4.flp)をVMWareで読み込み適用する。
(SCSI Disk Drivers for VMware Server, Workstation or ACE)

http://downloads.vmware.com/d/info/datacenter_downloads/vmware_server/2_0#drivers_tools

するとHDDを無事認識しインストールがはじまるとおもいます。
Windowsのインストールは途中再起動したりしますのでそのタイミングでフロッピーイメージは取り外さないと
Windowsがブートしないので注意!! 僕は馬鹿でHDDイメージ壊れたとおもって何度もフォーマットするはめに・・・。

ちなみにこのゲストOSにもvSphere Clientをインストールして管理ログインできちゃう。
グローバルに出す場合、グローバル側のNICには当然Managemet Networkは割り当てない方がいいんですが
サーバー機が遠く、かつローカル側にVPNなどで接続できない場合
Linuxのインスタンスを作成し、ルータ代わりに起動し、iptablesでNAT変換+可能ならIP制限して
リモートデスクトップでゲストOSを操作するようにすれば、ゲストOSからESXiの管理ができるという素敵な事ができます。

VMWare ESXi自体を再起動した場合はWindowsのゲストOSが立ち会ってこないので
コンソールでESXi自体のIPかえていろいろしないと接続できなくなりますがw

CPU負荷もないのに極端に遅い・・・ 以外と重要なI/O管理とリソース割り当て

Core2レベルのCPUで5台のゲストOSを立ち上げてばりばりやってたところ
全ゲストOSが極端に重くなった事があった。

原因はI/Oの負荷とリソース割り当てについてまったく考えてなかったところ。

①I/O負荷
CPUの問題より何よりも複数台立ち上げた時もボトルネックは
なんとI/Oに現れます。常識だそうです・・・。
たくさんのOS立ち上げてるとCPUに負荷いきそうな気がするんですが、
実は悲鳴あげるのはHDDさんとか。RAID1とかしてたら目もあてられない状況になってるんでしょうか。。
で、前のテストでは何も考えず5台構成をつくり、そのうち1台をNFSサーバーなんてして全台にマウントして
サムネル作成とか動画投稿とかばりばりやってたらかなーり重くなって使い物にならなくあんりましたとさ。

内容的にもファイルサーバー的なものとアプリケーションサーバー的なものを同一HDD(ストレージ)内で
ゲストOSとして立ち上げるのはよろしくないっぽい教訓を得ました。

②リソース割り当て
実はこれは未だによくわかってないのですが、
普通に使ってないインスタンスでも僕の環境では20台くらい立ち上げたあたりから
よく使用しているゲストOSのレスポンスが極端に悪くなる、といった動作が見え始めました。

実は仮想マシンの作成時に割り当てるメモリやCPUのコア数などとは別に
仮想マシンのプロパティにはリソースというタブがあり、
そこでリソースを細かく設定できました。

ここで今回問題となってたのがCPUの「予約」という項目でした。
複数台構成の場合、頻繁に使い、ある程度CPU負荷の高いゲストOSへは
予約にて確実に確保しておくCPUリソースを設定しておくと
全体の遅延も解消されました。

いまだにこれはどれがベストの設定かわかりませぬ。



おわり

以上、基本であるインストールやゲストOSの立ち上げ方などはすっとばし
僕が詰まったところを羅列しました。

ちなみにASUSマザーの蟹ドライバ問題の時、
ひにゃのが家にきてて
ひにゃのそっちのけでこの問題に取り組み、そして夜更かし、
翌日のデートは寝不足という事態に大変ご立腹されたようで
1時間くらい説教と愚痴を言われ、ケツけられました。

苦労して得た情報なのでありがたく使ってください。



One Response to “VMWare ESXi の覚書集”

  1. Mateen Says:

    Ther's a good term in women's magazines for a "friend" who constantly undermines you while pretending to have your interests at heart: &qr;e;fuentmy&quoto.

コメントどうぞ