Home > Tags > 仮想化

仮想化

VMWare ESXi 4.0 を 4.1 にアップグレード

ESXのアップグレードを参照しつつ作業。今回はvihostupdateを利用。

まず、ESXiホストをvSphere Clientでログインしてメンテナンスモードに変更。

vSphere CLI 4.0.0と ESXi 4.1 (upgrade ZIP from ESXi 4.0) 07/13/10 をダウンロード。vSphere CLIをWindowsにインストールしてから、アップグレード通知をESXiホストに送信。

C:\Program Files\VMware\VMware vSphere CLI\bin>vihostupdate.pl --server xxx.xxx.xxx.xxx -i -b "upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip" -B ESXi410-GA-
esxupdate
Enter username: root
Enter password:
Host updated successfully.

C:\Program Files\VMware\VMware vSphere CLI\bin>vihostupdate.pl --server  xxx.xxx.xxx.xxx -i -b "upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip" -B ESXi410-GA
Enter username: root
Enter password:
The update completed successfully, but the system needs to be rebooted for the c
hanges to be effective.

一応インストールできているかを確認。

C:\Program Files\VMware\VMware vSphere CLI\bin>vihostupdate.pl --server xxx.xxx.xxx.xxx --query
Enter username: root
Enter password:
---------Bulletin ID--------- -----Installed----- ----------------Summary-------
----------
ESXi410-GA-esxupdate          2010-07-15T11:30:58 ESXi pre-upgrade Bulletin

ESXi410-GA                    2010-07-15T11:35:52 ESXi upgrade Bulletin

vSphere Clientからホストの再起動。

ホストの起動画面でアップグレードを確認。

FreeBSD Jail作成(3)

続き。

複数Jailとepairで繋ぐために、ブリッジを作成。epair0aに接続。

# ifconfig bridge0 create
# ifconfig bridge0 addm epair0a

というのを一々するのは面倒なので、/etc/rc.confにこう書く

cloned_interfaces="epair0 bridge0"
ifconfig_bridge0="addm epair0a up"

調べていると、Jailの起動とepairの両立がよくわからない。IP指定までして立ち上げるとepairが終わるというか、ezjail同様に”-c vnet”がきいてくれないし。

ifconfig_epair0b="vnet yayoi" あたりでいけるのかな?

FreeBSD Jail作成(2)

ezjailでは、起動時にIPを指定することを期待している。一方、VIMAGEを使うとepairを生成、それからjail起動、jailに割当てるという形式になる。結果、かなり相性が悪いらしい。色々書き換えて対応するパッチが昔あったようだが、今は無い。どうやら、素直に対処する方法はないようだ。

というわけで、あきらめて素直に作成することにする。どうせディスクは余っているし、アップデートの手間もかかるが、バッチ化できないわけではない。

まずは epair を作成。

# ifconfig epair create
epair0a

ezjailのbasejailを利用してコピー

# cp -rp basejail yayoi

jail 作成

# jail -c vnet name="yayoi" host.hostname="yayoi" path=/jail/yayoi/ persist

ホストとインタフェースが一致していないことを確認。別ネットワークスタックなので、先程作成した epair も見えない。

# jexec yayoi ifconfig
lo0: flags=8008 metric 0 mtu 16384
 options=3

epair0a を割当てる。これでホストとjailが繋がれ、jailからは一端であるepair0bが見える。

# ifconfig epair0b vnet yayoi
# jexec yayoi ifconfig
lo0: flags=8008 metric 0 mtu 16384
 options=3
epair0b: flags=8842 metric 0 mtu 1500
 ether 02:00:00:00:05:0b

このままでは一対一になってしまうので、ブリッジを介して接続するようにする。

FreeBSD Jail作成(1)

VMWare ESXi は、「構成」の「ストレージ」から新規ストレージを追加しておしまい。そのまま、FreeBSD に新規ディスクを割り当てる。

FreeBSD側では面倒だったので、まずは新規ディスクを認識させるべく sysinstall からfdiskしてlabelを貼り、勝手にnewfsしてもらう。全部丸ごと確保させると、Software Updateもついてくれるのか。いつの間にかsysinstallも/standではなくなっていた。隔世の感がある。

後は、/etc/fstab に登録してマウント。今回は/jailとした。

ezjailを使ってFreeBSD jailを効率よく管理するを参考にしつつ ezjail をインストール。

Jailのインストールのために、/etc/ezjail.conf.sample を元に ezjail.conf を作成して、ezjail_jaildir を先程のディレクトリに向け、ezjail_ftphostをftp.jp.freebsd.orgに変更。ベースとなる環境をまずはインストールする。

# ezjail-admin install

次に、ホスト側のdaemonの調整。

syslogdは、/etc/rc.confに一言追加。

syslogd_flags="-s -b 192.168.xxx.xxx"

同様に、ssh は、/etc/ssh/sshd_config で ListenAddressを追加。

sendmail も動いていたので、とりあえず /etc/mail/sendmail.cf を編集

# SMTP client options
O ClientPortOptions=Family=inet, Address=192.168.1.129

一応Update

# mkdir /jail/freebsd-update
# freebsd-update -b /jail/basejail/ -d /jail/freebsd-update/ fetch
# freebsd-update -b /jail/basejail/ -d /jail/freebsd-update/ install

Jailごとにネットワークスタックが独立するVIMAGEを使いたかったので、/usr/src/sys/amd64/conf/GENERIC を編集。SCTPは元からあったのを潰しておく。

# for Jail with Vimage
options         VIMAGE
nooptions       SCTP

ざっと make world

# cd /usr/src
# make KERNCONF=GENERIC buildkernel
# make KERNCONF=GENERIC installkernel

doggie氏情報によると、ReleaseのVMImageはtracerouteできないなどの一部バグがあるので、stableを追いかけた方が良いらしい。

ESXi4にFreeBSD 8.0Rをインストール

ESXi4にFreeBSD 8.0Rをインストール。事前にDVDイメージを取得していたのだが、どうやら壊れていたらしく、CDブート時にブートローダからイメージを読みにいって延々止まってしまっていた。最初はESXiとの相性問題を疑ったせいで、延々時間をかけてしまう。

結局、Boot用の最小イメージを落としてきて、それでネットワークインストール。

そういえば、PC 64bit archの名称が”amd64″なので、ダウンロード時に一瞬とまどってしまう。Release Noteを読めば Intel の 64bit も含まれているのはわかるし、そもそも歴史的にAMDが(珍しく)勝った命令セットでIntelが追随したというのも記憶を掘りかえせば知っている。歴史的・技術的には至極正しい。

よって、arch名としてはそのままでも問題ない。ただ一点、せめてウェブの誘導のところくらいはおもてなしの観点から “FreeBSD Intel/AMD 64bit “とか書いておいて欲しい、というような意味をtwitterで呟いてみたら、はたのさんから妙な顔をされた。ええ、技術者的に気持ち悪いのはわかります。

久しぶりなので、インストールはベースだけにして、そこから追加することにする。まずはscreenとかsudoとか色々と必要なツールをportsからインストール。

あ…Xを禁止するのを忘れていた。あわてて /etc/make.conf に WITHOUT_X11=yes をつけ加える。

[物欲] メモリ到着

メモリが到着したので、早速GT110bに装着し、VMWare ESXi4をインストール。今度は何事もなく入ってくれる。

問題があるのはクライアントの方。何といってもMac OS XにはVMware Infrastructure(VI) Clientはない。コマンドラインでリモート管理はできるようだが、最初からそれでやれると思う程自惚れてはいない。

というわけで、VMWare Fusion上のVI Clientからアクセスすることになる。普段はWindows Messenger程度しか入れていない仮想マシンなので、起動ももたつきなかなか面倒だ。

なんとかVMを作れるかな? と思えるようになったあたりで終了。

Home > Tags > 仮想化

Return to page top

12