Hyper-V」タグアーカイブ

Windows Server 2008 R2 SP1 と Hyper-Vの備忘録

SP1がマイクロソフトより提供されたこともあり、SP1関連の記事が多く見受けられるようになりましたね。とりあえず、備忘録として覚えておくべき事項をまとめておきます。

まず、SP1によるHyper-Vの重要な機能アップデートとして Dynamic Memory があります。こちらは全てのゲストOSが利用できるわけではありません。

Hyper-V Dynamic Memory Configuration Guide
http://technet.microsoft.com/ja-jp/library/ff817651(WS.10).aspx

サポートされているOSは以下の通り。

続きを読む

Windows Server 2008 R2 SP1 と既存の Hyper-V 2.0 修正プログラムの関係

とうとう、Windows Server 2008 R2 SP1 がリリースされました。

その修正リストはこちらにあります

Documentation for Windows 7 and Windows Server 2008 R2 Service Pack 1 (KB976932)

さて、今までリリースされたHyper-V関連の修正プログラムとサービスパックの関連はどのようになっているのか調べてみました。

前回まとめた修正プログラムのリストとマイクソフトサイトにリストがありますので突き合せてみます。

Hyper-V Update List for Windows Server 2008 R2

そうすると、以下のものがSP1には入っていないことがわかります。

KB979903
-“STOP 0x000000A” Stop error when there is a request to allocate a large amount of contiguous physical memory in Windows Server 2008 R2 or Windows 7
http://support.microsoft.com/kb/979903/en-us
-大量のメモリを要求した場合に STOP エラー “0x0000000A – IRQL_NOT_LESS_OR_EQUAL” が発生する不具合を修正。

KB974672
-“Virtual machines stop responding (hang) during startup and the Vmms.exe process crashes on a Windows Server 2008 R2 computer that has the Hyper-V role installed“
http://go.microsoft.com/fwlink/?LinkId=193212

KB977894
-“MS10-010: Vulnerability in Windows Server 2008 Hyper-V could allow denial of service”
http://go.microsoft.com/fwlink/?LinkId=193214

KB981618
-“The computer stops responding or restarts during the Hyper-V Live Migration process in Windows Server 2008 R2” (relates to AMD Errata 383)
http://go.microsoft.com/fwlink/?LinkID=193217

ということでWindows Server 2008 SP1 を導入後、Hyper-Vを利用するのであれば、上記修正プログラムの導入を検討する必要があるかもしれませね。

2011年3月3日追記

上記4つはSP1導入済みの場合はインストールできないことが判明しました。当たり前ですが、SPなしのR2には適用できます。とういことで、現状ではSP1を導入したら既存の修正プログラムは適用できないということになりますね。

2011年3月8日追記

MSの方に情報をいただきました。結果から言うと、これら4つの修正プログラムはSP1に入っています。ですのでSP1を適用後はSP1リリース以前のHyper-Vの修正プログラムの適用は必要なし。これが正解になります。

要するにSP1修正リストのドキュメントバグだったようです。それも現在は直されています(笑)

しかし、当初張ったリンクは場所が変わっていました。

現在SP1の修正リストを入手するには下記リンク

Documentation for Windows 7 and Windows Server 2008 R2 Service Pack 1 (KB976932)

からになります。

”仮想マシン” グループの正体を考察する

今まで意識していなかった仮想マシンフォルダのセキュリティについて考えてみます。

そもそも、仮想マシンはデフォルトではC:ドライブに作成されることになりますが、通常はシステムドライブは避けて他のドライブに作成することになると思われます。

WS000003

続きを読む

NIC Teaming + Hyper-V + VLAN 環境

さて、最近知ったことがあります。

それは、以前まで「NIC Teaming + Hyper-V + VLAN 環境」はうまく動かなかったことです。しかし、それが最近になって可能になったそうです。この情報はHPの小川さんから教えていただきました。また資料も提供していただき感謝です。

さて、ではそもそも、なぜ「NIC Teaming + Hyper-V + VLAN 環境」がダメだったのか?

続きを読む

Hyper-VのゲストOSの時間が遅れる場合がある原因を考察する

Windows 7 の Windows XP Mode、Windows Virtual PC または Virtual PC 2007 上のゲスト OS では、対話的な操作全般が遅延する場合がある
http://support.microsoft.com/kb/978209/ja

というKBがマイクロソフトから出ています。これは、ゲストOSの操作が遅延することがあるというものですが、実は時刻同期にも影響を及ぼすことがわかりました。

さて、この原因は何かを考察していきます。

続きを読む

2010年11月 現在におけるHyper-Vの修正プログラムまとめ

Windows Server 2008 R2 with Hyper-V 2.0 環境に対して適用を推奨する修正プログラム

KB2264080 (ロールアップ パッケージ)
-An update rollup package for the Hyper-V role in Windows Server 2008 R2: August 24, 2010
http://support.microsoft.com/kb/2264080/en-us
-975530 / 974909 / 981791 の修正を含むロールアップ パッケージ

KB975530(KB2264080に含む)
-Stop error message on a Windows Server 2008 R2-based computer that has the Hyper-V role installed and that uses one or more Intel CPUs that are code-named Nehalem: “0x00000101 -CLOCK_WATCHDOG_TIMEOUT“
http://support.microsoft.com/kb/975530/en-us
-Nehalem アーキテクチャ以降の CPU を搭載したマシンにおいてSTOP エラー “0x00000101 – CLOCK_WATCHDOG_TIMEOUT” が発生する不具合を修正。

続きを読む

コアパーキングに関して(その後アップデート情報)

コアパーキングに関して

以前投稿しましたが、その後気になる情報が出てきましたので書き留めておきます。

まず、コアパーキングとは消費電力を削減するテクノロジーになります。このテクノロジーを使用するためにはCPU及びOSの対応が必要になります。

OSではWindows Server 2008 R2からコアパーキングをサポートしたので、CPUがサポートしていれば自動的に使用してくれるので便利ですね~なんて紹介をしました。

しかし、コアパーキングを含む電源管理が原因で、Hyper-V環境でのトラブルが発生している模様です。

具体的な現象としては、Hyper-Vの仮想端末が突然ブルースクリーンになるとか・・・です

You receive a “Stop 0x0000007E” error on the first restart after you enable Hyper-V on a Windows Server 2008 R2-based computer
http://support.microsoft.com/kb/974598/en-us

Stop error message on an Intel Xeon 5500 series processor-based computer that is running Windows Server 2008 R2 and that has the Hyper-V role installed: “0x00000101 – CLOCK_WATCHDOG_TIMEOUT”
http://support.microsoft.com/kb/975530/en-us

特に問題なのはNehalemにおける問題として修正プログラムがあがっているのですが、それでも駄目という場合があるらしい

ちなみに対象プロセッサーとしては以下のものが報告されています

  • Intel Xeon Processor 5500
  • Intel Core i7-800
  • Intel Core i5-700

ですので、落ち着くまでにはまだ時間がかかりそうな予感です

では対処方法としてはどうすればいいのか?

これはBIOSの設定で、C-State を無効にすることによって、結果的にOSでのコアパーキング機能を無効化すればいいようです。

ちなみにちょっと調べてみたのですが、電源管理ではACPIのC-StateとP-Stateがありますが、どんな機能何だろう?

C-Stateは各コアのアクティブなプロセスがなくなりアイドル状態になったときにその状態を遷移させて(C0~C6)、アイドル時の消費電力を0Wに限りなく近づけることにより消費電力を削減する機能。

P-Stateとは何か?そもそも各CPUは複数のP-Stateが存在し、プロセッサの動作周波数と電圧が決まっており,コアごとにP-Stateを切り替えられます。よって、動作周波数を下げれば電圧も下がり、消費電力も下がるということになります。

たとえば、クアッドコアAMD Opteron 2356 プロセッサ(2.30GHz)には、P0(2.30GHz)、P1(2.0GHz)、P2(1.7GHz)、P3(1.4GHz)、P4(1.15GHz)の5段階ものP-Stateが存在するので、サーバーの負荷状況に応じて動的にP-Stateを切り替えれば,消費電力も削減できますね。

しかし、クロックを落とす=パフォーマンスを低下させるので、負荷の軽い時間帯だけ落とすといった限定的な使い方になると思われます。

よって、トータルな電源管理であるACPIでは、C-StateとP-Stateを組み合わせてパフォーマンスと消費電力のバランスを取っているということになりますね。

*ここら辺の話は、様々な情報を組み合わせて私なりの理解となりますので間違っていた場合は指摘いただければ幸いです

さて、ちょっとネガティブな情報でしたが、ポジティブ情報も書いておきます。これは実際にCTCの杵島さんに聞いたお話ですがPen4 ベースの Xeon 系のサーバーで消費電力を比べるとアイドル時で約4割近く消費電力は下がるそうです。杵島さんが参加された最新CPUの検証結果がIntelよりダウンロードできます。

クリックして322956-001JA.pdfにアクセス

2010年9月6日追記

An update rollup package for the Hyper-V role in Windows Server 2008 R2: August 24, 2010
http://support.microsoft.com/kb/2264080/en-us

これらの問題の修正プログラムが出たようです。

Hyper-V環境でのウイルス対策

さて、実際にHyper-V環境を構築して運用している企業も増えてきたと思われます。

その際に意外と盲点なのが、ウイルス対策はどうするの?

マイクロソフトとしては、ホスト及びゲスト両方にウイルス対策ソフトを入れて対処してね~と言っていたような。

しかし、調べてみるとホストOSにたいしてウイルス対策ソフトをインストールした際のトラブルが起きていることが判明

現象でいうと、仮想マシンが突然消えてなくなるとか、起動しなくなるとか、見えなくなるとか・・・

Virtual PC Guy’s Blog
http://blogs.msdn.com/virtual_pc_guy/archive/2009/03/17/antivirus-and-hyper-v-or-why-can-t-i-start-my-virtual-machine.aspx

このブログでは対策としては次の2点が述べられています

  • ホストOSに対してウイルス対策ソフトをインストールしない
  • ウイルス対策ソフトをインストールするのであれば除外設定などを確実におこなう

ホストOSに対してウイルス対策ソフトをインストールしないのもネットワーク構成をきちんと行うのであればありかな?と私は考えます。それはホストOSと仮想マシンが利用するネットワークを分けて、管理OSが使用するネットワークはクリーンなネットワークを使用する。一部のウイルス対策ソフトをインストールすることによるパフォーマンスの低下という問題が発生しないのが大きなメリットですね。ただし、ウイルスに対するリスクを認識して運用する。

除外設定などを具体的に行う方法に関しては、マイクロソフトの情報がありました。

http://support.microsoft.com/kb/961804

ではどのように構成すればいいのか?

ウイルス対策ソフトウェア内のリアルタイム スキャン コンポーネントで次のディレクトリおよびファイルが除外されるように構成します。

  • 既定の仮想マシン構成ディレクトリ (C:ProgramDataMicrosoftWindowsHyper-V)
  • カスタム仮想マシン構成ディレクトリ
  • 既定の仮想ハード ディスク ドライブ ディレクトリ (C:UsersPublicDocumentsHyper-VVirtual Hard Disks)
  • カスタム仮想ハード ディスク ドライブ ディレクトリ
  • スナップショット ディレクトリ
  • Vmms.exe
  • Vmwp.exe

となっています。

もしくは、仮想ディスクファイル(VHD、AVHD)とvmms.exe、vmwp.exeの除外でも同じことですね。

念のためディレクトリの除外とファイルの除外両方を行っておけばいいですね。

これらの設定を行わずに運用するとかなり痛い目にあうようですのでどんなウイルス対策ソフトを使用していても、設定を行ってください。

Hyper-VのCOMポート

意外と盲点だと思われる、Hyper-VのCOMポートについて書いておきます

Hyper-V上の仮想マシンにはCOMポート設定があるので、仮想マシンから物理マシンのCOMポートを利用できるのかな?と思われるかもしれませんが、実はできません。

では何のためにあるの?

これは物理マシンから仮想マシンのCOMポートに接続するためにあるんですね。

具体的には、名前付きパイプに接続すると、ローカルまたはリモート物理コンピュータと通信することができます。

ではどのような際に利用するのか?

仮想マシンのデバッグなどをCOMポート経由で取得したいなどが考えられます。

Debugging Tools for Windowsなどを使用することがあるみたいですね~私は開発者ではないのでここら辺の話はよくわからないのですが・・・

注意点としては、当然のことながら仮想マシンが起動しないと、COMポートは作られません。ですので仮想マシン起動後でないとCOMポートに接続できないので、接続のタイミングは考えないといけませんね。起動時の情報をデバッグしたいと思ってもCOMポートが作られていない状態でツールを起動しても接続できないということになります。

そうそう、仮想端末側の設定としては次の設定が定番のようです

まずmsconfigを起動します

WS000080

そして詳細オプションから

WS000081

デバッグにチェックをいれてデバッグポートを指定しておきます。

そしてHyper-V側の設定としては、適当な名前付きパイプを指定し、ホスト側も同じ名前にして接続すればいいようです

まとめ

  • Hyper-VのCOMポートは物理マシンから仮想マシンへの接続のために使用する
  • 仮想マシンから物理マシンのCOMポートを使用することはできない

まあ、今ではあまり使用することはないと思いますが、この情報を知っていないと痛い目にあう可能性もありますので注意が必要です。

Hyper-V環境でVLANを使用する

今まで知識でしか理解していなかったのですが、Hyper-V環境でのVLAN使用検証を行いました。実は国井さんのブログを読んでいたら【QAコーナー】Hyper-VのVLANモードでWMIを使用したVLANの確認方法が記載されていたので試したかったんですね。

まず前提知識として

仮想ネットワークを構成する
http://technet.microsoft.com/ja-jp/library/cc816585(WS.10).aspx

を読んでみました。実はHyper-V1.0のときもVLANが使えたのですが次の文を読むと・・・

以下抜粋—

仮想ローカル エリア ネットワーク (VLAN) を構成する

Hyper-V は、仮想ローカル エリア ネットワーク (VLAN) をサポートしており、VLAN 構成はソフトウェアベースであるため、コンピュータを簡単に移動でき、ネットワーク構成も維持できます。仮想マシンに接続するそれぞれの仮想ネットワーク アダプタについて、仮想マシンの VLAN ID を構成できます。VLAN を構成するには、次のものが必要になります。

  • VLAN をサポートしている物理ネットワーク アダプタ。
  • ネットワーク パケットをサポートしている、VLAN ID が既に適用されている物理ネットワーク アダプタ。

管理オペレーティング システムでは、仮想ネットワークを構成して、物理ポート上のネットワーク トラフィックを許可する必要があります。これは、仮想マシンで内部的に使用する VLAN ID のための操作です。次に、仮想マシンを構成して、仮想マシンがすべてのネットワーク通信に対して使用する仮想 LAN を指定します。

VLAN を構成できるモードとして、アクセス モードとトランク モードの 2 つのモードがあります。アクセス モードでは、仮想ネットワークの外部ポートは、UI 内の 1 つの VLAN ID に制限されます。WMI を使用すると、複数の VLAN を設定できます。物理ネットワーク アダプタが、アクセス モードの物理ネットワーク スイッチのポートに接続されている場合は、同様にアクセス モードを使用します。アクセス モードの仮想ネットワークに仮想マシンから外部アクセスできるようにするには、仮想ネットワークのアクセス モードで設定されている VLAN ID と同じ VLAN ID を使用するように仮想マシンを構成する必要があります。トランク モードでは、複数の VLAN ID で物理ネットワーク アダプタと物理ネットワークの間の接続を共有できます。複数の VLAN の仮想ネットワークに仮想マシンから外部アクセスできるようにするには、物理ネットワーク上のポートがトランク モードになるように構成する必要があります。使用している VLAN を特定し、仮想ネットワークがサポートする仮想マシンが使用しているすべての VLAN ID を把握することも必要です。

ここまで

どうやら、仮想マシンで異なる複数VLANを使用するためにはWMIを使用して物理ポートをトランクモードに変更しなくてはいけないと読み取れます。実際のところHyper-V1.0では確認していなかったのでこれは盲点でした。

じゃあ、Hyper-V2.0ではどうなのか?

まずはスイッチのポートをトランクに設定します。これは各スイッチによって設定方法が異なりますが、私はシスコを使っているのでswichport mode trunkコマンドで設定しました。

そして仮想ネットワークマネージャーでVLANの設定です。

WS000076

ここでの設定は管理OS(ペアレント)が使用するVLANになります。このVLANが仮想端末(チャイルド)に影響することはありません。今回は10に設定しました。

そして仮想端末の設定です。

WS000077

ここでは20を設定しました。

さて他に何か設定は必要か?結論からいうと何も設定は必要なし!

問題なく管理OSではVLAN10、仮想端末ではVLAN20が使えました。更に他の仮想端末に対してVLAN10を追加して試しましたがGUIでの設定だけで使えました。

ちなみにPowershellを使用してVLANの確認を行いました。

WS000078

そしてポイントはローカルエリア接続が2つあるところかな?そもそもネットワークカードは1つしか私の環境はありません。どうやら、ローカルエリア接続-仮想スイッチポート0は管理OSが使用しているようですね。ではローカルエリア接続-仮想スイッチポート1は何?

Msvm_VLANEndpointクラスを見てみると・・・

WS000079

ここのDesiredEndpointModeが5になっています。実はアクセスモードが2でトランクモードが5なんですね。勝手にトランクにしてくれています。ですので、ローカルエリア接続-仮想スイッチポート1で物理的な接続をトランクで受けて、それを他のポートはアクセスモードで使用することができるんですね~

WMIを使用すると各ポートのモード(アクセスかトランク)を設定できるようです。ここら辺の説明は国井さんのブログに詳しく書いてあります。

まとめ

どうやら、Hyper-V2.0ではスイッチ側をトランクモードに設定すると、自動的に物理ポートをトランクモードに変えてくれるので、仮想端末は使用するVLAN IDを指定するだけで使用できるようになります。ですので、WMIなどを使用しなくても複数VLANを使用できる。

余談ですが、今までWMIを使った管理は行ったことがなかったので、かなりここら辺の話は鬼門です。でも、これから覚えなくては・・・・