2007/12/12(水)私がVirtual PCを利用しない10の理由

PC

私がVirtual PCを利用しない10の理由*1

  1. Linuxで動かない
  2. Winの他には汚れたBSD*2の上で動くらしいけど、現在もこれからもそんなもの使う予定はないし
  3. Vista?なにそれおいしい?*3
  4. 64bitのゲストOSがサポートされていない
  5. ゲストOSでUSBが使えない
  6. ゲストOSにWin系しかサポートされない*4
  7. サーバー版がないし
  8. ホストOS上でしか動かないのならむしろXen
  9. OSのマウス販売の方手間で作ってるものが、仮想化専門で喰ってきたとこにくらべていいものが作れるのかと小一時間(ry
  10. だってM$だし

私のようにIEの代わりにFirefox, OEの代わりにThunderbird, Windows Media Playerの代わりにWinAMP/GOM Player, MS Officeの代わりに一太郎/OpenOffice.org, MS-IMEの代わりにATOKを愛用している人間には仮想化製品としては当然VMwareといったところでしょうか。

Virtual PCのいいところを敢えてあげるとすればWindowsとの親和性が優れていると言うことですので、ホスト/ゲストOSがWindowsだけでも構わない、IEマンセー、OEマンセー、WMPマンセー(ryな人にはVirtual PCをお勧めしますよw

*1 : 無償版同士の比較です(Virtual PC2004/2007 / VMware Player/Server)。Virtual Serverと相対するものはESX Serverだと思いますので。

*2 : 囓られた林檎のアレ。きっとおいしくなかったのでしょう

*3 : VMware ServerはVista/XP上での動作はサポートしていません

*4 : OS/2はあるらしいけど。。。OS/2使ってみたいなぁ

VMware Serverにおけるネットワーク

2007/12/11PC::VMware

VMware Serverを導入して以来、サーバーに無茶をさせてみたり、管理用クライアントにアホみたいなことをさせていますが、今回は真面目なVMware Serverのお話です。nabeさんVMware playerにethernetを占有させるの記事の補足として読んで頂ければよいと思われます。

VMware Serverの仮想ネットワーク

VMware Serverのインストール時にVMnet0,1,8の構成を行います。このVMnetとはVMware Server内の仮想化レイヤーで構成される仮想スイッチのことを表します。Bridgeを構成すればVMnet0が、NATを構成すればVMnet8が、ホストOSのみの通信であればVMnet1が構成されます。このあたりはWorkstation/Player共に共通と思われます。

このVMnat*の構成は以下のように言い換えることができます

VMnet0(Bridge)
仮想化レイヤーに構成された仮想スイッチ(L2)に選択した(物理)ネットワークカードから仮想LANケーブルを接続
VMnet1(HostOnly)
仮想化レイヤーに構成された仮想スイッチ(L2)とホストに構成された仮想NIC間を仮想LANケーブルで接続
VMnet8(NAT)
仮想化レイヤーに構成された仮想NATルーター(L3スイッチ)に(物理)ネットワークカードから仮想LANケーブルを接続

図にするとこんな感じです (デフォルト構成の場合)

vmnet1.png

仮想マシンのネットワーク設定

仮想マシンのネットワークカード設定では、上記で構成されたどの仮想スイッチに仮想LANケーブルを接続するかということを設定します。例えば単純に外部のネットワークに出ていきたいのであればVMnet8の仮想NATルーターへの接続を構成します。

vmnet2.png

仮想マシンに物理NICを占有させる@Debian

私がVMware Serverをインストールしているマシンでは物理NICを2つ搭載しています。VMware Server以外の用途としてファイルサーバーとして利用していますので、サーバーでは主にGbEのNICを利用しており、オンボードで搭載されている100MbEのNICは利用していません。今回はこの空いている100MbEを仮想マシンに構成させる場合の設定です。

  • eth0: オンボードの100Mbps NIC
  • eth1: Debian(ホストOS)で利用するためのGbE

まず、ネットワークカード自身が有効になっていませんのでeth0を有効化します。

一時的な設定

# ifconfig eth0 up

毎回有効にするためには/etc/network/interfacesを設定します

# for eth0
auto eth0
iface eth0 inet manual
        up ifconfig eth0 up

確認はifconfigで行います。eth0が今回VMwareに占有させたNICです。

# ifconfig 
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:81854256 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53462454 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2390389428 (2.2 GiB)  TX bytes:4271269678 (3.9 GiB)

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx:
          inet addr:192.168.xxx.xxx  Bcast:192.168.xxx.255  Mask:255.255.255.0
          inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
          RX packets:52366512 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85352659 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:297241411 (283.4 MiB)  TX bytes:1872957313 (1.7 GiB)
          Interrupt:209

このようにDebian側からはIPアドレスを持っていませんので通信することはできません。

次にvmware-config.plでVMnet2を構成します。ゲストOSをホストOSと同じサブネットに属させたいのであればBridgeの構成を、ゲストOSを異なるサブネットに属させたいのであればNAT構成にします。今回はBridge構成でVMnet2を構成しました。

このような構成の場合、Debian側ではNICを有効にしているだけでIPその他は未構成ですので、このNICを用いて通信できません。一方、仮想マシン側からはこのNICを用いてしか仮想マシン外部(Debian含め)に出ることができません。

図にするとこんな感じ。

vmnet3.png

応用: 仮想NIC/スイッチを用いたDMZ環境の構築

VMware Serverを利用すれば1つの物理マシンと2つの物理NICを用いてDMZ環境の構築を行うことが出来ます。

仮想環境におけるシステム要件は下記の通り。

  • VMware Server(物理マシン)の要件
    • 物理NICを2つ持つ
    • 片方のNICはLANに接続
    • 片方のNICはWANに接続 (仮想マシンに占有)
  • 仮想マシン要件
    • 仮想マシンを2つ構築する必要があります
      • 1つ目の仮想マシンは仮想NICを2つ持ち、ファイアウォール・ルーターとして動作
      • 2つ目の仮想マシンは外部公開サービスを動作させます
  • 仮想スイッチ要件
    • 2つの仮想スイッチを構築します
      • WAN側物理NICとのBridge
      • 内部通信用スイッチ

図にするとこんな感じになります

vmnet4.png

このような構成にした場合、内部(LAN)のネットワークから切り離され(ホストOSであるDebianからも)、外部(WAN)のネットワークからも直接参照することはできないので非常に安全に外部公開サーバを1台の物理マシンで構築することができます。

PC

2007/12/11PC

PC関係の記事を取り扱います

[Debian] VMware Server 1.0.4インストール

2007/12/07PC::VMware

そこそこ速いサーバ機を手に入れたらやりたかったのがVMware Serverの構築です。
フリーのVMware関連の製品というとVMware Playerのほうがどういう訳か話題になりますが、こちらのVMware Serverもフリーで利用出来ます

今回はVMware ServerをDebianサーバにインストールしたときのメモ

VMware Serverとは

  • 既存のWindows/Linux Server*1にインストール可能
  • サーバ上でVMが動作
  • 任意のWindows/LinuxクライアントからVMware Serverに接続してVMを操作出来る*2
  • 仮想マシンの作成にも制限がありません

と、いうわけでVMware Workstationに搭載された一部の機能が利用出来ないのと、ホストOSが制限されている他はほとんどVMware Workstationのような使い方ができます。
特に、ファイル/プリンタサーバや、個人のWebサーバのような形態のサーバではほとんど負荷がかかっていませんので、このようなサーバにVMware Serverを導入することでリソースの有効活用ができます。

*1 : Windows XPでも動くようですが、未サポートです

*2 : リモートデスクトップ/VNCのようなものです

VMware Server Install for Debian (etch)

環境 (ホストPC)

今回のインストール環境はこんな感じ

  • VMware Server 1.0.4
  • ホストOS: Debian GNU/Linux 4.0 (etch)
  • ランレベル: 2 (CUI環境)*3
  • ホストの運用形態: ファイル/プリンタサーバ

VMware Serverの導入記事などを読むとほとんどがLinux GUI/Windows環境のものばかりですが、VMware Serverの為だけにX環境を構築したくありません。このため、非X環境にVMware Serverを構築しました。その場合のはまりどころに重みを置いてこの記事は書いています。

インストールまで

コンパイル出来るようにする

gcc, makeが必要です。ない場合は前もってインストールしておきます。

# apt-get install gcc make

カーネルソースの準備

uname -aで表示されるカーネルのバージョンと同一のカーネルソースを用意します。

$ uname -a
Linux akane 2.6.18-5-686 #1 SMP Wed Oct 3 00:12:50 UTC 2007 i686 GNU/Linux

上記のような場合

# apt-get install linux-headers-2.6.18-5-686

となります。

その他

killallが必要です。ない場合は前もってインストールしておきます。psmiscパッケージの中にkillallが含まれていますのでこれをインストールします。

# apt-get install psmisc

インストールまで

まずはダウンロードしてきたVMware-server-1.0.4-56528.tar.gzを/usr/local/srcに展開します。

$ cd /usr/local/src
$ tar xvzf ./VMware-server-1.0.4-56528.tar.gz
$ su
# ./vmware-server-distrib/vmware-install.pl

実行されるとライブラリのチェックが行われます。

libX11.so.6 => not found

こんな感じの警告が出た場合は*4、不足しているライブラリを導入してやる必要があります。
VMware Serverのインストール中断し、以下のようにライブラリを導入します。

# apt-get install libX11-6

これをライブラリの警告が出なくなるまで行います。強行することもできますが、最後のライセンスキーの入力部分で入力を行っても不正なキーと言われてしまいます。

インストール

対話式なので適当に答えていけばいいです。英語ですが、下記の参考Webサイトを見ながら進めていけば解らない部分はないと思われます。
# ほとんどがデフォルトで問題がないはず。
気をつける部分はvmware-config.plの設定、VMware Server Consoleの待ち受けポート*5とカーネルソースの指定の部分。

*3 : DebianのCUIマルチユーザーモードは2です。他のLinuxは3と読み替えて下さい

*4 : というか、ほぼ間違いなく非X環境ですと出ると思われます

*5 : デフォルト902

VMware Management Interface

VMware Serverを導入する上で必須ではありません。が、ブラウザからVMware Serverのステータスが確認出来るようになります。

インストール

VMware Serverと一緒に配布されているVMware-mui-1.0.4-56528.tar.gzを/usr/local/srcに配置します。

$ tar xvzf ./VMware-mui-1.0.4-56528.tar.gz
$ su
# ./vmware-mui-distrib/vmware-install.pl

私の環境ではインストール時にまた怒られてしまいました。

VMware Server must be installed on this machine for the VMware Management Interface to work

どうもまたライブラリが不足している為に出るエラーらしいので導入してやります。

# apt-get install libXi-6

あとは対話式でインストールが行えますので問題はないと思います。

インストール後

は、適当なマシンのブラウザから「VMwareサーバをインストールしたマシンのIPアドレス:8333」からアクセス出来ます。

vmware-mui1.jpg

ログインユーザ名/パスワードはVMware Serverのユーザです。
ここからVMware Server Consoleもダウンロード出来ます。VMware Server ConsoleのインストールはWindows環境なら特に問題ないでしょう。

管理画面の例

vmware-mui2.jpg

「自重しろ」な画面。

参考

その他、知ってると幸せそうになれそうなこと

*6 : 未検証