C# Programming

ImageVirtual Server 〜 なぜ使うのか?

ASP.NETアプリケーションを開発したアプリケーションを サーバーにアップロードする前に、ステージングサーバーで正しく動作するかテストする必要があります。また、Windows Formsアプリケーションを配布しようとした場合、複数の種類のOSにインストールして正しく動作するかテストする必要があります。今まで、マルチブートにしたり、PCを複数用意したり、ハードディスクを取り換えたりと、大変な思いをしていたので、Virtual PC / Virtual Server でとても助かっています。 

ImageVirtual Server の使い方と注意 〜 複数のOSの同時実行

1.目次

1.目次
2.目的
3.参考書
4.Virtual Server と Virtual PC、どちらを使えばいいの?
5.インストール
6.初期設定
7.OSのインストール
8.バーチャルマシンを使う
9.バーチャルディスク
10.復元ディスク
11.OSのクローンを作る
12.高度な利用方法
13.Virtual Server 2005 R2 の新機能

2.目的

今回、Visual Studio 2005やSQL Server 2005がリリースされるに当たって、今までのVS2003やSQL 2000に加えて、さらに複数のOS、アプリを同時に動かす必要がありました。もちろん、個人ベースでやっているので、当然ながら5台も6台もPCを持っているわけではありません。通常なら、あきらめるんでしょうが、使えるものは使ってみようということで、Virtual Serverに手を出しました。

理由は、次のとおりです。

  • PCが2台しかない。1台は、普段のメールや、HP作成に使っているメインマシンなので、開発環境やベータ等の不安定なものは入れたくない。
  • Visual Studio 2005やSQL Server 2005に関しては、ベータ1、ベータ2、CTP、RCと、何度もインストールする必要があった。ベータ版をアンインストールして、再インストールするぐらいなら、OSから入れなおすのと大して変わらないぐらい時間も手間もかかるので、Virtual Server/Virtual PCで、ファイル数個のコピーでOSをコピーできるのはとても魅力的

ということで、Virtual PC/Virtual Serverが目の前にあって、使わない手はありません。そんなわけで、Virtual Server上で環境構築・評価を行いましたが、とても楽に行うことができ、結構気に入っています

CPUもクロックスピードの伸びが頭打ちになる中、マルチコア化が進んでおり、そうなるとこのようなVirtual Serverが既存のレガシー・システムを置き換えるというのも現実味が帯びてきます。

皆さんも追加でPCを買うお金で、メモリ1GB追加して、HDD 200GB買ってもおつりがくると思うので、試してみてはいかがでしょうか。

3.参考書

  1. Microsoft Virtual Server 2005
  2. Virtual Server 2005 R2 日本語版 無償ダウンロード
  3. Virtual Server のヘルプ
  4.  インストール済みの Windows のバージョンのディスク複製に関するマイクロソフトの方針
  5. MVP に聞く! Virtual Server 2005 Column

4.Virtual Server と Virtual PC、どちらを使えばいいの?

Visual Studio 2005のベータや、SQL Server 2005ベータの評価を行おうとすると、さすがに何台もPCを買うわけにもいかないですよね。また、仮に持っていたとしても、ベータ1、ベータ2、RCなどが次々に出てくるような状況で、ある程度不安定なソフトウェアを評価するとなると、OSの再インストールが必要になったり、あるいはクリーンインストールしたOS上に構築したいという場合があると思います。そのようなときに便利なのがVirtual PCやVirtual Serverです。

Virtual PCは、1つのOSを扱う上では問題ありませんが、複数のゲストOSを1つのPC上で同時に動かそうと思うと、リソースの配分や管理上多少面倒になります。これに対してVirtual Serverは、最初から複数のゲストOSを動作させることを前提に設計されています。

たとえば、Visual Studio Team Foundation Server+Visual Studio Team System + SQL Server 2005 を評価しようと思うと、Active Directory, SharePoint Server, TFS, VS, SQLなどを構築する必要があります。これをすべて1つのVirtual PC上で構築するのは、可能だとは思いますが管理が面倒になってきます。このような複数のOSでシステムを構築して評価したいというような場合に力を発揮するのが Virtual Server 2005です。

5.インストール

Virtual Server 2005 R2 日本語版 無償ダウンロードより入手できます。

製品版は、Standard とEnterprise版がありますが、基本機能は同じで、4 基までのCPUか32基までのCPUに対応しているかの違いなので、普通の人は Standardで十分でしょう。^^

必要なシステム
メモリは、どれだけゲストOSを同時実行するかによりますが、2GBは欲しいです。

ハードディスクも、Virtual Server用に100GB程度の空き容量は欲しいところです。

Virtual Serverのバーチャルディスク用に別ディスクか、別パーティションを用意しましょう。

インストールはウィザードに従っていけば、何も迷うところはありません。インストールが終わると、スタート→すべてのプログラム→Microsoft Virtual Serverメニューから、次のようなインストールへの概要のWeb管理画面を開くことができます。

Image

ここで、管理Webサイトのリンクをクリックすると、次のような管理Web画面が開きます。この例では、もうすでに複数のOSをインストールしていて、そのうち2つが起動している様子です。初めて実行する場合は、OSは何も表示されません。

Image

今回は、2GHz +2GB + 200GB HDのホストOS上に、ホストOSには、Active Directory, DNS, ターミナルサーバーライセンスを入れて、ゲストOSとして、VS2005, SQL2005, VS2003, SQL2000, XP その他を入れて、評価しました。それほど負荷のかかる使い方はしませんでしたし、同時実行は2つか3つまででしたので、この程度であればディスクアクセスの激しい起動時に遅いなぁと思いますが、一度起動してオンメモリになれば、そこそこ使えます。

6.初期設定

インストールはウィザードに従っていけば、何も迷うところはありません。インストールが終わると、「スタート」→「すべてのプログラム」→「Microsoft Virtual Serverメニュー」から、「インストールの概要」より、「管理Webサイト」のリンクをクリックすると、次のような管理Web画面が開きます。この例では、もうすでに複数のOSをインストールしていて、そのうち2つが起動している様子です。初めての場合は、何も表示されません。

Image

新しいゲストOSをインストールする場合は、管理Webサイトの左ペインの「バーチャル マシン」→「作成」をクリックすると次のような「バーチャル マシンの作成」画面が現れます。ここで、バーチャルマシン名、メモリ、ネットワーク、ハードディスクなどの設定を行います。これらは、後からでも変更可能です。

Image

ネットワーク設定に関しては、次の3つから適切なものを選択します。

設定 説明
内部ネットワーク 仮想DHCPサーバーとイーサーネットエミュレーションにより仮想環境同士を接続する
外部ネットワーク 仮想NICを物理NICにマッピングして、そのまま外部ネットワークに接続する
なし なし

 

メモリ容量の注意
メモリサイズはデフォルトで、128MBになっていますが、インストール時にページングが発生して遅くなるので、256MB以上としたほうが無難です。

 

バーチャル ハードディスクの注意
バーチャル ハード ディスクは、デフォルトで容量可変の拡張バーチャル ハード ディスクで最大要領が16GBとなっていますが、16GB以上拡張できないので、余裕を持って作成しておいたほうが良いです。実際に使用した分しか物理ディスクを使用しないので、大きめにしておいたほうが良いです。

たとえば、Visual Studio 2005をフルに載せる場合は、20GBぐらいは欲しいです。

 

ハイパースレディングの注意
Virtual PC, Virtual Serverともに1つのプロセス上で動きます。ハイパースレッディングにしている場合、たとえば1つのCPUで2つのハイパースレッディングの場合半分のスピードしか出なくなります。ハイパースレッディングはオフにしたほうが良いです。いずれハイパースレディング対応になると思いますが・・・

7.OSのインストール

OSをインストールしなければなりません。そのためには、まずOSのCD-ROM/DVDをホストPCにセットします。

次に、そのCD-ROM/DVDをVirtual Serverに認識させなければなりません。そのためには、6で作成したゲストOSの「バーチャル マシン名」→「構成の編集」を選択します。すると次のような構成の編集画面になります。

Image

この画面で、さらに「CD / DVD」を選択すると、次のような「CD/DVD ドライブのプロパティ」画面になります。ここで、ブートCD/DVDのドライブをセットします。

Image

次に、トップページに戻って、「バーチャル マシン名」→「ONにする」を選択します。するとCD/DVDからOSの起動が始まります。このとき、トップページの小さな画面アイコンをクリックすると、次のようにWeb画面上でOSの画面が表示されるようになります。最初は、このようにWeb画面上からOSのインストールを行うことができます。

Image

また、「スタート」→「すべてのプログラム」→「Microsoft Virtual Serverメニュー」から、次のようなインストールへの「バーチャル マシン リモート コントロール クライアント」を開きます。

Image

ここで、"vrmc://ホスト名:5900/バーチャルマシン名"を指定し、接続すると、次のようにWebからではなく、「バーチャル マシン リモート コントロール クライアント」というWindows アプリから操作することができるようになります。

Image

8.バーチャルマシンを使う

バーチャルマシンを使用するには、次の3つの方法があります。

接続方法 長所 短所
Web管理画面 どこからでも使える 遅い
コントロール クライアント 早い クライアントが必要
ターミナルサービス 早い 設定が必要

Web管理画面は、さすがにレスポンスが悪いので、コントロールクライアントか、ターミナルサービスを設定したほうが良いでしょう。

注意:バーチャル マシン追加機能をインストールしておく
Web管理画面から使用する場合は、「バーチャル マシン追加機能」をインストールしておくと、Web画面とバーチャルマシン間をシームレスにマウスを移動することができるようになります。

この設定をしておかないと、一度Web管理画面をマウスでクリックしてしまうと、カーソルがゲストOS上から出せなくなってしまいます。

カーソルをゲストOS上から外に出すには、右ALTキーを押しながらマウスを外にドラッグします。

 

注意: ホストOSとの日時の同期にチェックしておく
ホストOSとゲストOSの時刻にずれがある場合には、勝手にゲストOSの値を更新して、ゲストOSにリセットがかかってしまいます。日時をどうきするようにするか、タイムサーバーで同期を取る必要がありそうです。

9.バーチャルディスク

バーチャルディスクには、次の種類があります。用途によって、使い分けます。

接続方法 用途
容量可変の拡張バーチャル ハード ディスク 通常は、この容量可変でよい。
消費した分だけ動的に物理ディスクを割り当てるので、ディスクを効率的に使える。ただし、固定容量より遅い。どの程度遅いかは未確認。
容量固定のバーチャル ハード ディスク

 

容量可変よりディスクアクセスが早い。どの程度早いかは未確認。

使用していないにもかかわらず、固定容量が物理ディスク上に確保されてしまうので、使用容量が決まっており、高速アクセスが必要な場合に使用する。

差分バーチャル ハード ディスク 親のバーチャル ハード ディスクと親子関係で関連付けられているバーチャル ハード ディスクで、差分を記録できる。

用途としては、親のバーチャル ハード ディスクに、OSの本体をインストールし、破損しないようにリードオンリーにしておく。差分ディスクに、セキュリティパッチを入れて、テストを行う。差分ディスクを切り替えることにより、複数のセキュリティパッチを効率的にテストすることができる。

10.復元ディスク

バーチャル ハード ディスクのプロパティ画面で、「復元ディスクを有効にする」というチェックボックスがあります。このチェックボックスをオンにしていると、ハードディスクへの変更は自動的に作成される復元ディスクに対して行われます。このため、ベータ版のような不安定なバージョンでテストを行い、テスト後にはゲストOSをクリーンな状態に戻したい場合には、復元ディスクをONにしておきます。テスト実行後に 、復元ディスクをどのように扱うか、次のように選択できます。

  • 状態を保存し、復元ディスクを保持する
  • 状態を保存し、復元ディスクを適用する
  • ゲスト OS をシャットダウンし、復元ディスクを保持する
  • ゲスト OS をシャットダウンし、復元ディスクを適用する
  • バーチャル マシンをオフにし、復元ディスクを保存する
  • バーチャル マシンをオフにし、復元ディスクを適用する
  • バーチャル マシンをオフにし、復元ディスクを破棄する
注意
復元ディスクをオンにしておくと、ディスク性能が落ちるようです。どの程度悪化するかは未確認ですが、だいぶ遅く感じます。

復元ディスクは、たとえば次のようなファイル名で自動的に生成されます。
VirtualPCUndo_SQL2005_0_0_0_09005211232005.vud

11.OSのクローンを作る

セキュリティパッチを当てたピュアなバーチャルディスクを作成しておくと、そのバーチャルディスクをコピーするだけで、OSのコピーを作ることができます。とても手間が省けますから、一度クリーンなOSをセットアップしたらば、オリジナルOSとして保存しておきましょう。バーチャルマシンのディレクトリには、次のようなファイルが作成されるので、これらの数個のファイルをコピーするだけでOKです。

ファイルの種類 拡張子
バーチャルマシンの設定ファイル *.vmc
バーチャルハードディスク *.vhd
差分バーチャル ハード ディスク *.vfd
復元ディスク *.vud

 

注意: 単純にコピーしただけではだめ
ただし、単純にコピーしただけだと、コピー元のOSと同時実行した際にSIDの重複が発生してしまい、「指定されたドメインの名前またはセキュリティ ID (SID) はそのドメインの信頼情報と矛盾します。」などのエラーが発生します。対処方法としては、次のような方法があります。
  •  Sysprep.exe を使用する。(詳細は参考書4)
  •  http://www.sysinternals.com/Utilities/NewSid.htmlから、NewSidツールでSIDを振りなおす。ただし、これは正規の方法ではない 。
  • 未確認ですが、ntdsutil.exeで重複したSIDをクリーンアップする方法もあるようです。

 

12.高度な利用方法

Virtual Server を使った、Microsoft Cluster Service (MSCS) と ネットワーク負荷分散 (NLB)の検証記事が参考文献(5)に出ています。

 

13.Virtual Server 2005 R2 の新機能

 

新機能 説明
Virtual Server ホストクラスタ ホスト間の接続をサポート
iSCSI のサポート iSCSI クラスタ化により、異なる物理コンピュータどうしのゲスト間の接続が可能
x64 サポート 64 ビットでネイティブ実行
高度な PXE ブート ネットワーク アダプタに PXE ブートが追加
その他
  • 改善されたハイパースレッディング
  • F6 ディスク (SCSI ドライバ) のサポート
  • バーチャル ディスクの事前圧縮機能など
パフォーマンスの向上 パフォーマンスの向上
Virtual Server 移行ツールキット(VSMT) 物理サーバーにインストールされているOSとアプリを Virtual Server 2005 で提供および管理されているバーチャル マシン内で実行中のサーバーに移行する処理を自動化。

2003サーバー上に、Automated Deployment Services (ADS) 1.0 コントローラが必要。

Windows NT 4.0 Server SP 6a、Windows 2000 Server SP4、Windows Server 2003 を移行可能。

 

14.障害など

 

事例1: 

突然、Virtual Server のゲストOSがリスタートしてしまう。

原因:

バックアップソフトがバーチャルディスク (vhd)をロックしてしまう。

対応方法

Virautl Server のバックアップは、別途設定する。

 

事例2: 

突然、Virtual Server のゲストOSがリスタートしてしまう。

原因:

ゲストOSとホストOSの時間の同期が取れていない。

判別方法:

次のように、"hardware/bios/time_bytes"を変更するというメッセージの直後に、was reset というイベントが記録されているので、すぐわかる。

9/10/2006
3:48:20 PM
Setting Change The setting "integration/microsoft/version/guest_os/short_name" for the virtual machine configuration "VS2005" was changed from NULL to "Windows Server™ 2003, Standard Edition".
9/10/2006
3:47:39 PM
Virtual Machine "VS2005" was started.
    ・・・・
9/10/2006
3:47:38 PM
Virtual Machine "VS2005" was reset.
9/10/2006
3:47:37 PM
Setting Change The setting "hardware/bios/time_bytes" for the virtual machine configuration "VS2005" was changed.

対応方法

Host time synchronization のチェックボックスをオンにして、時間の同期を取る。

Image