Session Code: T1-407    Effective Hyper-V    アーキテクチャ解説と    パフォーマンスTips    佐々木邦暢 <ksasaki@microsoft.com>    マイクロソフト株式会社2
本日の内容    アーキテクチャ解説     Virtual Serverとの比較     ペアレント / チャイルドパーティション     ハイパーバイザの正体     ストレージの仕組みと推奨構成    主要な機能     スナップショット...
Hyper-V アーキテクチャ4
仮想化ソフトウェアの分類     ホストOS型     ハイパーバイザ型      ゲストOS     仮想化ソフト     管理OS   ゲストOS      ホストOS       仮想化ソフト     ハードウェア       ハードウェ...
具体的には、          ホストOS型              ハイパーバイザ型    Microsoft     Microsoft     Virtual       Virtual    Microsoft Hyper-V    ...
ホストOS型    Virtual Serverから7
ハイパーバイザ型     Hyper-Vへ8
その進化を      解説9
アーキテクチャ       の違い10
仮想マシン      ペアレント      チャイルド                    (VM)     パーティション    パーティション        Virtualユーザー                アプリ       Hyp...
機能の違い12
Virtual Server vs. Hyper-V                      Virtual           機能         Server    Hyper-V                     2005 R2...
機能・性能比較     Virtual Server 2005              vs. Hyper-V14
1CPU VM同士での比較                                  演算能力の比較                       Virtual Server (1CPU)      Hyper-V (1CPU)    ...
「全力」勝負                                  演算能力の比較                       Virtual Server (1CPU)      Hyper-V (4CPU)           ...
ディスクアクセス性能の比較        スループットはほぼ同じだが、        Hyper-VはCPU使用率が格段に低い     100.0                         25.0      80.0          ...
性能は     なんとなく     わかったので18
あらためて     アーキテクチャ        解説19
ペアレント                                  チャイルド パーティション     パーティション       Windows        Hyper-V対応        Xen対応      その他     ...
ペアレントとチャイルド21
ペアレント パーティション     ディスク、NIC等のデバイスを所有      デバイスドライバはハイパーバイザではなく      ペアレント パーティションにある      XenのDomain-0に相当     リモート管理のインタフェー...
チャイルドパーティション (VM)     完全仮想化の 64-bit 仮想マシン      Hyper-V上での実行を考慮されていないOSも、      無修正で実行できる (サポータビリティはまた別の問題・・・)     準仮想化の要素もあ...
統合I/Oアーキテクチャ24
Hyper-V 2種類のI/Oデバイス              ゲストOSに              「統合サービスコンポーネント」が     統合デバイス   インストールされている場合に利用可能              いわゆる準仮想...
統合サービスコンポーネント     Integration Services Component       統合デバイスを利用するには、ゲストOSに       「統合サービスコンポーネント (IC)」の       インストールが必要   ...
VSP, VSC, VMBus      「統合デバイス」の構成要素      VSP (Virtualization Service Provider)        ペアレント パーティションで動作する、いわゆる        バックエンド...
エミュレートデバイスのI/O      ペアレント     チャイルド       チャイルド パーティ     パーティション   パーティション                            ションのデバイスドラ      ワーカー...
統合デバイスのI/O      ペアレント           チャイルド       例えばディスクへの書     パーティション         パーティション                                  き込み要求は...
ハイパーバイザの正体と     Hyper-Vの起動シーケンス30
ハイパーバイザの正体     実は.exeファイル      %systemroot%System32 に存在      hvix64.exe   Intel プロセッサ用      hvax64.exe AMD プロセッサ     ちなみに、...
ハイパーバイザ?     ここで疑問が・・・      Windowsの下で動いているはずの      ハイパーバイザが、なぜWindows上の      ファイルなのか?      ペアレント パーティションというのも      結局ホストO...
Hyper-V起動シーケンス (1)      Windows     Server 2008   電源投入、Windows起動                   この時点ではまだ、       Windows     ハイパーバイザは動いて...
Hyper-V起動シーケンス (2)      Windows     Server 2008   HVBoot.sys                    ハイパーバイザをロードする                    ためのデバイスドラ...
Hyper-V起動シーケンス (3)      Windows     Server 2008    HVBoot.sysの動き                      ハイパーバイザの存在チェック                      ...
Hyper-V起動シーケンス (4)      ペアレント      Windows     パーティション       ハイパーバイザの動き     Server 2008                    CPUの仮想化支援機構を活用し...
仮想化     支援機構       ?37
CPUの仮想化支援機構     ハイパーバイザの実装を助ける     プロセッサ側の機構      Intel VT-x      AMD AMD-V     Hyper-Vの実行には必須38
CPUの特権レベル                      実行環境     x86系のCPUには     4つの「特権レベル」       ユーザー                     プログラム      リング0~3        ...
ゲストOSを支配せよ     ハイパーバイザは、       実行環境     ゲストOSの動きを完全に    ユーザー     制御できなければならない   プログラム                    (リング 3)     ゲストOS...
ハイパーバイザの動作モード     通常の”リング0~3”の特権レベルとは別の切り口で     動作モードが追加されている      「仮想マシンモード」      「ハイパーバイザモード」41
CPUの仮想化支援機構とは      ハイパーバイザは「仮想マシンモード」で実行される      プログラムを完全に制御できる。      「ハイパーバイザがWindowsより下で動いている」      というのはこのことを指している。42
「仮想マシンモード」や     「ハイパーバイザモード」は      正式な用語ではありません       Intel VTとAMD-V      それぞれで呼び方が     異なるため、便宜的に     こう表記しております。43
ハイパーバイザ     起動の仕掛けが     判明しました。44
次に、     ハイパーバイザが     どのようにCPUを     管理しているのか45
簡単に      図解46
ハイパーバイザのCPU管理      ペアレント        チャイルド1        チャイルド2        チャイルド3     パーティション        (2CPU)        (2CPU)        (4CPU)  ...
ここで      重要     なのは48
ペアレントの     CPUもVirtual     だということ49
CPUに関する注意点     CPUはハイパーバイザが掌握している     ペアレント パーティションから見えている     CPUも、Virtual Processorである     ペアレント パーティションのCPUを見て     も、  ...
マシン全体のCPU使用率     ペアレント パーティションの     パフォーマンス カウンタ     "Hyper-V Hypervisor Logical Processor“     オブジェクト     他のカウンタについては    ...
まとめ: Hyper-Vの構造      ハイパーバイザ       CPUの仮想化支援機構を活用し仮想マシンを掌握      ペアレント パーティション       ディスクやNIC等のデバイスを管理する      チャイルド パーティション...
ストレージ53
ストレージ       重要54
一般的に55
CPUの      能力は     あまり気味56
ディスクは       結構      忙しい57
二つの観点から     仮想マシンのストレージ      仮想ハードディスクの種類      パススルー ディスクの使用      接続形態 (IDE/SCSI)     ホストのストレージ      物理ディスク構成58
仮想マシンのディスク種別     仮想ハードディスク      ホスト上のファイル(.vhd)をVMに割り当て       ペアレント パーティション           VM     ボリューム   X:VHDsVM1.vhd   C:   ...
仮想ハードディスクの種類     固定サイズ     可変サイズ     差分ディスク60
固定サイズVHD     ディスクサイズ≒VHDファイルのサイズ       ペアレント パーティション                 VM     ボリューム   X:VHDsVM1.vhd         C:              ...
可変サイズVHD     ファイルサイズ      ゲストOS上でディスクへの書き込みが      行われると動的に拡張される     速度      読み込みは固定サイズVHDと同等      書き込みは、VHDファイル拡張の      オー...
可変VHDの構造と注意点                                  ヘッダ     VHDの内部はデータ                      BAT (Block Allocation Table)     ブロッ...
可変VHDの構造と注意点     読み込み時の動作         400      まずビットマップを検査     350                                    Read      ビットが0なら実際にセクタ ...
差分VHD     既存のVHDを「親」として     作成された、「子」VHD          親.vhd      親VHDは読み取り専用      書き込みはすべて子VHDへ   子1.vhd   子2.vhd      親ディスクは複...
差分VHD利用イメージ                 マスターイメージをコピーする      ペアレント      ことなく仮想マシンを複製可能     パーティション                 時間とディスク領域の節約       親...
差分VHDの注意点     パフォーマンス劣化      差分ディスク(子ディスク)は、必ず可変サイズ      VHDになる       可変ディスクのオーバヘッドによる性能低下      あまり多段階の接続を行うと、チェインを      た...
VHDの使い分け     「本番固定、開発可変」が原則      本番環境では、固定サイズの速度を優先      開発環境では、可変サイズの柔軟性を生かす     ただし、原則はあくまで原則      例えば、フロントエンドのWebサーバのよう...
VHDはフラグメントに注意       仮想環境では起きうる箇所が増える                            data.mdf        仮想マシン内で     仮想マシン     内のファイル     C:       ...
パススルーディスク     物理ディスクを仮想マシンに直結      接続の単位は、物理ディスク全体       パーティション単位ではない     速度は物理ディスクとほぼ同等     制限事項      スナップショットがとれない     ...
固定サイズVHD vs. パススルー     50     45     40                            5%程度の差     35     30     25     20     15              ...
IDEか? SCSIか?      VMへのディスク接続方式       仮想IDEと仮想SCSIの2種類      OSを起動できるのはIDEのみ      お奨めは、      「起動IDE」「データSCSI」      両者に性能差はほぼ...
IDEとSCSI – カウンタの違い                 IDEはVM全体で                  1インスタンス       SCSIは、      ディスク毎に     個別インスタンス73
ホストのストレージ     構成の原則      システムドライブとVM配置ドライブは分ける     システムドライブの構成      RAID1 (ミラーリング) 構成を推奨        ペアレント パーティションをハードウェア障害から  ...
ホストのストレージ (続き)     VM配置ドライブの構成      ディスク台数       本番環境では、“仮想マシン1台あたり1スピンドル”       を下回らない台数が必要      ディスクは別々に使わず、束ねる       複数...
ストレージ構成の例          VM1              VM2             VM3                 VM4              VM5     C:       D:      C:      ...
まとめ: Hyper-Vストレージ      仮想マシンのディスク構成      本番: 固定VHD      開発、テスト: 可変VHD      パススルーは慎重に      起動ドライブ以外はSCSI接続      ホストのディスク構成 ...
スナップショット78
スナップショット     仮想マシンの一時点での状態を保存し、     いつでもその状態に戻すことができる      VMが実行中でも停止中でも作成できる     仮想マシン毎に50個まで     システムに重大な変更を     加える前等に作...
スナップショットの仕組み      VM新規作成              初期状態                    構成情報           メモリ情報 仮想マシンは4種類の          (.xml)         (.bi...
スナップショットの注意点     性能面      差分ディスクなので、ディスクの連鎖をたぐる      オーバヘッドがある      差分ディスクは可変サイズディスクなので、      書込時にファイル拡張のオーバヘッドがある     分散シ...
スナップショットの注意点     推奨されない使い方      基本的に本番環境では非推奨       ソフトウェア開発・テスト環境や、更新プログラム       の検証環境での仕様を想定      ドメインコントローラのスナップショット作成 ...
Hyper-Vをクラスタリング83
Hyper-Vのクラスタ化      Hyper-Vのホストマシン同士を、      Windows Server 2008のフェールオーバー      クラスタ機能でクラスタ化       最大ノード数は16       仮想マシンは共有スト...
Hyper-V ホストクラスタリング          VHD   VHD   VHD           VHD   VHD   VHD            VHD   VHD   VHD85
仮想マシンをクラスタへ登録     Windows Server 2008のフェールオーバー     クラスタリングは、Hyper-Vの仮想マシン     を認識86
仮想マシンをクラスタへ登録     一覧から選択するだけで、仮想マシンを     クラスタに登録87
Quick Migration      クラスタに登録された仮想マシンは、      クラスタノード間を移動可能になる      計画停止、非計画停止の両方を想定        計画停止時は、VMのメモリ内容をいったん        ファイル...
Quick Migration 概念図                VM2用LUN                 VM2.xml                 VM2.vhd       VM2       VM2.bin        ...
Quick Migrationの留意点      フェールオーバの単位       仮想マシンの移動 == 物理ディスクのフェール       オーバ       フェールオーバはLUN単位なので、1つのLUN       に複数の仮想マシンを...
単一LUN, 複数VMの問題点     単一LUNに複数VMを押し込むと、     個別に移動でき       なくなる                単一LUN                VM2.xml                VM...
性能測定92
仮想環境の性能測定     性能測定は二段構え      仮想マシン内の性能測定      通常の物理マシンと同じように測定する      実際に利用するアプリケーションを      計測対象とするのが望ましい      ペアレント パーティシ...
Hyper-V パフォーマンスカウンタ      ペアレント パーティションで取得可能     用途               カウンタ名     マシン全体のCPU使用率     Hyper-V Hypervisor Logical Pro...
性能測定: 概念図      ペアレント      仮想マシン      仮想マシン      仮想マシン     パーティション                 その2        その3                  その1     ...
マシン全体の状況を把握するには     対象     オブジェクト          カウンタ                           備考     CPU    Hyper-V         % Total Run Time  ...
Hyper-Vと     マイクロソフト製品97
サーバー製品の仮想化対応情報     2008/8/19 KB公開      “Microsoft server software and supported      virtualization environments”      htt...
BizTalk Server on Hyper-V      BizTalk Server 2004, 2006, 2006 R2は      完全サポート      MSDNに「Hyper-V Guide」公開        BizTalk ...
Exchange Server on Hyper-V      サポートされるバージョン        Windows Server 2008上でのExchange Server 2007 SP1      サーバー ロール        ユニ...
SQL Server on Hyper-V      SQL Server 2005, 2008        (ほぼ)完全にサポート        ただし、仮想マシン同士でのフェールオーバー クラス        タリングは非サポート    ...
関連セッション      T4-311      System Center & Dynamic IT バード ビュー       8 月 27 日(水) 13:40 - 14:55      T4-310      System Center...
参考資料      Performance Tuning Guidelines for Windows Server 2008      http://www.microsoft.com/whdc/system/sysperf/Perf_tun...
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
TechEd2008_T1-407_EffectiveHyper-V
Upcoming SlideShare
Loading in …5
×

TechEd2008_T1-407_EffectiveHyper-V

1,455 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,455
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

TechEd2008_T1-407_EffectiveHyper-V

  1. 1. Session Code: T1-407 Effective Hyper-V アーキテクチャ解説と パフォーマンスTips 佐々木邦暢 <ksasaki@microsoft.com> マイクロソフト株式会社2
  2. 2. 本日の内容 アーキテクチャ解説 Virtual Serverとの比較 ペアレント / チャイルドパーティション ハイパーバイザの正体 ストレージの仕組みと推奨構成 主要な機能 スナップショット クラスタリング その他 性能測定 Hyper-V上でのMicrosoft製品3
  3. 3. Hyper-V アーキテクチャ4
  4. 4. 仮想化ソフトウェアの分類 ホストOS型 ハイパーバイザ型 ゲストOS 仮想化ソフト 管理OS ゲストOS ホストOS 仮想化ソフト ハードウェア ハードウェア ホストOS上の CPU等の 1アプリケーション ハードウェア資源を として動作 直接制御5
  5. 5. 具体的には、 ホストOS型 ハイパーバイザ型 Microsoft Microsoft Virtual Virtual Microsoft Hyper-V PC Server VMware VMware VMware ESX Workstation Server Xen 系 Solaris xVM XenServer OracleVM6
  6. 6. ホストOS型 Virtual Serverから7
  7. 7. ハイパーバイザ型 Hyper-Vへ8
  8. 8. その進化を 解説9
  9. 9. アーキテクチャ の違い10
  10. 10. 仮想マシン ペアレント チャイルド (VM) パーティション パーティション Virtualユーザー アプリ Hyper-V アプリ Serverモード ケーション 関連サービス ケーション サービス ゲストOS カーネルカーネル VMMカーネル ペアレントOS ゲスト OSモード ホストOS カーネル カーネル カーネル ハイパーバイザ11 ハードウェア
  11. 11. 機能の違い12
  12. 12. Virtual Server vs. Hyper-V Virtual 機能 Server Hyper-V 2005 R2 32-bit VM ○ ○ 64-bit VM × ○ VMのSMPサポート × 最大4CPU VMの最大メモリ 3.6 GB 64 GB13 スナップショット作成 × ○
  13. 13. 機能・性能比較 Virtual Server 2005 vs. Hyper-V14
  14. 14. 1CPU VM同士での比較 演算能力の比較 Virtual Server (1CPU) Hyper-V (1CPU) 598.7 611.5 301.0 252.2 105.0 116.2 CPU - Integer Math CPU - Floating Point Math CPU - Image Rotation15
  15. 15. 「全力」勝負 演算能力の比較 Virtual Server (1CPU) Hyper-V (4CPU) 2444 1238 598.7 461.5 252.2 105.0 CPU - Integer Math CPU - Floating Point Math CPU - Image Rotation16
  16. 16. ディスクアクセス性能の比較 スループットはほぼ同じだが、 Hyper-VはCPU使用率が格段に低い 100.0 25.0 80.0 20.0 Virtual Virtual 60.0 Server 15.0 Server 40.0 Hyper-V 10.0 Hyper-V 20.0 5.0 0.0 0.0 転送量(MB/s) CPU使用率(%)17
  17. 17. 性能は なんとなく わかったので18
  18. 18. あらためて アーキテクチャ 解説19
  19. 19. ペアレント チャイルド パーティション パーティション Windows Hyper-V対応 Xen対応 その他 Server 2008 Windows Linux 一般のOS 仮想マシン アプリケーション アプリケーション アプリケーション 管理サービス等 カーネル VSP VSC VSC VMBus VMBus エミュレート された Hyper-V対応 Xen対応 デバイス カーネル カーネル デバイス ドライバ ハイパーバイザ20 ハードウェア
  20. 20. ペアレントとチャイルド21
  21. 21. ペアレント パーティション ディスク、NIC等のデバイスを所有 デバイスドライバはハイパーバイザではなく ペアレント パーティションにある XenのDomain-0に相当 リモート管理のインタフェース WMIプロバイダ RDP接続の受け入れ 単一障害点となるので 留意が必要 余計なソフトを動かさない server core構成も検討する22 クラスタ化 (MSCS)
  22. 22. チャイルドパーティション (VM) 完全仮想化の 64-bit 仮想マシン Hyper-V上での実行を考慮されていないOSも、 無修正で実行できる (サポータビリティはまた別の問題・・・) 準仮想化の要素もある カーネルの最適化 Hypercallの活用 Windows Vista SP1 Windows Server 2008 準仮想化ドライバ “統合サービスコンポーネント” “VMBus”デバイス Xenの ”HVMドメイン +準仮想化ドライバ” 構成に近い23
  23. 23. 統合I/Oアーキテクチャ24
  24. 24. Hyper-V 2種類のI/Oデバイス ゲストOSに 「統合サービスコンポーネント」が 統合デバイス インストールされている場合に利用可能 いわゆる準仮想化デバイスであり、 オーバヘッドが少ない 「統合サービスコンポーネント」が用意され ていないOSをゲストとして動かす場合は、 こちらのモードになる エミュレート デバイス Virtual Serverと同様に、実際のハードウェア を完全にエミュレートしたデバイスで、 エミューションのオーバヘッドの分、 CPUに負荷がかかる25
  25. 25. 統合サービスコンポーネント Integration Services Component 統合デバイスを利用するには、ゲストOSに 「統合サービスコンポーネント (IC)」の インストールが必要 「サポートされた」OSはICが用意されている Windows Server 2008 Windows Vista SP1 Windows Server 2003 SP2 Windows XP SP2 / SP3 Windows 2000 Server SP4 SUSE Linux Enterprise Server 10 SP1 / SP2 Red Hat Enterprise Linuxも対応予定26
  26. 26. VSP, VSC, VMBus 「統合デバイス」の構成要素 VSP (Virtualization Service Provider) ペアレント パーティションで動作する、いわゆる バックエンドドライバ ストレージVSP, ネットワークVSP等が存在 VSC (Virtualization Service Client) いわゆるフロントエンド ドライバ VMBus VSPとVSCの通信経路 実体は共有メモリ27
  27. 27. エミュレートデバイスのI/O ペアレント チャイルド チャイルド パーティ パーティション パーティション ションのデバイスドラ ワーカー イバの動きをハイパー アプリケーション プロセス バイザがハンドリング ファイル ペアレント パーティ システム ションのユーザーモー ドプロセスも介在 デバイス ドライバ モード遷移が多い デバイス ドライバ ハイパーバイザ28 ハードウェア
  28. 28. 統合デバイスのI/O ペアレント チャイルド 例えばディスクへの書 パーティション パーティション き込み要求は、 ワーカー VSC→VMBus→VSPと アプリケーション プロセス カーネルモードだけで 完結 ファイル システム チャイルド パーティ ション内でのデバイス VSP VMBus VSC エミュレーション処理 がないので、オーバ デバイス ヘッドが少ない ドライバ ハイパーバイザ29 ハードウェア
  29. 29. ハイパーバイザの正体と Hyper-Vの起動シーケンス30
  30. 30. ハイパーバイザの正体 実は.exeファイル %systemroot%System32 に存在 hvix64.exe Intel プロセッサ用 hvax64.exe AMD プロセッサ ちなみに、サイズは800キロバイト弱31
  31. 31. ハイパーバイザ? ここで疑問が・・・ Windowsの下で動いているはずの ハイパーバイザが、なぜWindows上の ファイルなのか? ペアレント パーティションというのも 結局ホストOS だったのか?32
  32. 32. Hyper-V起動シーケンス (1) Windows Server 2008 電源投入、Windows起動 この時点ではまだ、 Windows ハイパーバイザは動いて カーネル いない 通常の物理Windowsマシンと して起動する33 ハードウェア
  33. 33. Hyper-V起動シーケンス (2) Windows Server 2008 HVBoot.sys ハイパーバイザをロードする ためのデバイスドライバ Windows Hyper-Vロール追加時に有効化 カーネル される HVBoot.sys Windows起動直後に、 このデバイスドライバも開始 される34 ハードウェア
  34. 34. Hyper-V起動シーケンス (3) Windows Server 2008 HVBoot.sysの動き ハイパーバイザの存在チェック プラットフォームの判別 Windows CPUの仮想化支援機構が有効に カーネル なっているか、チェック HVBoot.sys ハイパーバイザを起動 ハイパーバイザ VTやAMD-Vは Intel? 使えるかな? あるかな? 起動! AMD?35 ハードウェア
  35. 35. Hyper-V起動シーケンス (4) ペアレント Windows パーティション ハイパーバイザの動き Server 2008 CPUの仮想化支援機構を活用し、Windows 仮想マシン カーネルの下に潜り込む 管理サービス等 「ペアレント パーティション」を形成し、 その中でWindowsの起動を続行 Windows 仮想マシン管理サービスなどが カーネル 起動され、Hyper-V起動完了 HVBoot.sys ハイパーバイザ36 ハードウェア
  36. 36. 仮想化 支援機構 ?37
  37. 37. CPUの仮想化支援機構 ハイパーバイザの実装を助ける プロセッサ側の機構 Intel VT-x AMD AMD-V Hyper-Vの実行には必須38
  38. 38. CPUの特権レベル 実行環境 x86系のCPUには 4つの「特権レベル」 ユーザー プログラム リング0~3 (リング 3) リング0が最強 WindowsやUnix系 OSでは、普通0と3を OSカーネル カーネルモード、 (リング 0) ユーザーモードに使用39 ハードウェア
  39. 39. ゲストOSを支配せよ ハイパーバイザは、 実行環境 ゲストOSの動きを完全に ユーザー 制御できなければならない プログラム (リング 3) ゲストOSのカーネルが 動く「リング0」より OSカーネル 下に潜り込む必要がある (リング 0) ハイパーバイザ40 ハードウェア
  40. 40. ハイパーバイザの動作モード 通常の”リング0~3”の特権レベルとは別の切り口で 動作モードが追加されている 「仮想マシンモード」 「ハイパーバイザモード」41
  41. 41. CPUの仮想化支援機構とは ハイパーバイザは「仮想マシンモード」で実行される プログラムを完全に制御できる。 「ハイパーバイザがWindowsより下で動いている」 というのはこのことを指している。42
  42. 42. 「仮想マシンモード」や 「ハイパーバイザモード」は 正式な用語ではありません Intel VTとAMD-V それぞれで呼び方が 異なるため、便宜的に こう表記しております。43
  43. 43. ハイパーバイザ 起動の仕掛けが 判明しました。44
  44. 44. 次に、 ハイパーバイザが どのようにCPUを 管理しているのか45
  45. 45. 簡単に 図解46
  46. 46. ハイパーバイザのCPU管理 ペアレント チャイルド1 チャイルド2 チャイルド3 パーティション (2CPU) (2CPU) (4CPU) VP 0 VP 0 VP 1 VP 1 VP 0 VP 2 VP 1 VP 3 Root VP 0 Root VP 1 Root VP 2 Root VP 3 LP 0 LP 1 LP 2 LP 3 ハイパーバイザ コア0 コア1 コア0 コア1 ソケット0 ソケット147
  47. 47. ここで 重要 なのは48
  48. 48. ペアレントの CPUもVirtual だということ49
  49. 49. CPUに関する注意点 CPUはハイパーバイザが掌握している ペアレント パーティションから見えている CPUも、Virtual Processorである ペアレント パーティションのCPUを見て も、 マシン全体のCPU使用率はわからない!50
  50. 50. マシン全体のCPU使用率 ペアレント パーティションの パフォーマンス カウンタ "Hyper-V Hypervisor Logical Processor“ オブジェクト 他のカウンタについては 後ほど51
  51. 51. まとめ: Hyper-Vの構造 ハイパーバイザ CPUの仮想化支援機構を活用し仮想マシンを掌握 ペアレント パーティション ディスクやNIC等のデバイスを管理する チャイルド パーティション 完全仮想化と準仮想化、双方の長所をあわせ持つ 「完全仮想化VM + 準仮想デバイス」 統合I/O オーバヘッドの少ないI/Oの秘密は 「統合サービスコンポーネント」 によって導入される準仮想デバイス52
  52. 52. ストレージ53
  53. 53. ストレージ 重要54
  54. 54. 一般的に55
  55. 55. CPUの 能力は あまり気味56
  56. 56. ディスクは 結構 忙しい57
  57. 57. 二つの観点から 仮想マシンのストレージ 仮想ハードディスクの種類 パススルー ディスクの使用 接続形態 (IDE/SCSI) ホストのストレージ 物理ディスク構成58
  58. 58. 仮想マシンのディスク種別 仮想ハードディスク ホスト上のファイル(.vhd)をVMに割り当て ペアレント パーティション VM ボリューム X:VHDsVM1.vhd C: パススルーディスク ホストのディスクをVMに直結 ペアレント パーティション VM ボリューム C:59
  59. 59. 仮想ハードディスクの種類 固定サイズ 可変サイズ 差分ディスク60
  60. 60. 固定サイズVHD ディスクサイズ≒VHDファイルのサイズ ペアレント パーティション VM ボリューム X:VHDsVM1.vhd C: ファイルサイズ ≒ ディスク容量 速度 物理ディスクとの速度差は概ね10%以内 パススルーにはやや劣るが十分に高速61
  61. 61. 可変サイズVHD ファイルサイズ ゲストOS上でディスクへの書き込みが 行われると動的に拡張される 速度 読み込みは固定サイズVHDと同等 書き込みは、VHDファイル拡張の オーバヘッドで遅くなる62
  62. 62. 可変VHDの構造と注意点 ヘッダ VHDの内部はデータ BAT (Block Allocation Table) ブロックが並んでいる ビット セクタの並び (1セクタ=512bytes) マップ 0 1 2 3 4 5 6 7 0 1 0 0 可変ディスクの 1 1 1 0 データブロックは、 データブロック 1 先頭にセクタビット ビット セクタの並び マップを持つ マップ 0 1 2 3 4 5 6 7 1 0 1 1 0 1 0 1 データブロック 2 ビットの値が”0”なら、 対応セクタはオール0 データブロック n フッタ63
  63. 63. 可変VHDの構造と注意点 読み込み時の動作 400 まずビットマップを検査 350 Read ビットが0なら実際にセクタ Write 300 から読み込むことなく、 セクタサイズ分の0を返す 250 テスト時に注意 200 ベンチマークツールは、 150 テスト用ファイルを0埋めで 100 作成することが多い 50 このようなファイルの読み込 0 みは「幻の速さ」を示す 可変VHD 固定VHD64
  64. 64. 差分VHD 既存のVHDを「親」として 作成された、「子」VHD 親.vhd 親VHDは読み取り専用 書き込みはすべて子VHDへ 子1.vhd 子2.vhd 親ディスクは複数の 孫1.vhd 孫2.vhd 差分VHDで共有可能 差分VHDは多段連結可能 ひ孫1.vhd65
  65. 65. 差分VHD利用イメージ マスターイメージをコピーする ペアレント ことなく仮想マシンを複製可能 パーティション 時間とディスク領域の節約 親VHD sysprep済み OSイメージ VM1 VM2 VM3 子VHD C: 子VHD C: 子VHD C:66 ハイパーバイザ
  66. 66. 差分VHDの注意点 パフォーマンス劣化 差分ディスク(子ディスク)は、必ず可変サイズ VHDになる 可変ディスクのオーバヘッドによる性能低下 あまり多段階の接続を行うと、チェインを たぐるオーバヘッドが無視できなくなる67
  67. 67. VHDの使い分け 「本番固定、開発可変」が原則 本番環境では、固定サイズの速度を優先 開発環境では、可変サイズの柔軟性を生かす ただし、原則はあくまで原則 例えば、フロントエンドのWebサーバのように 「ステートレスな」サーバは、可変サイズVHD も選択肢の一つ ※ MSDN, TechNetの本番Webサーバは、 250GBの可変VHDを使っています68
  68. 68. VHDはフラグメントに注意 仮想環境では起きうる箇所が増える data.mdf 仮想マシン内で 仮想マシン 内のファイル C: デフラグ 仮想ハード H F 管理ツールで ディスクの E A BAT O O ブロック配置 D T 「ディスクの最適化」 VM01.vhd ホスト上の ホスト上で .vhdファイル V:VHDs デフラグ69
  69. 69. パススルーディスク 物理ディスクを仮想マシンに直結 接続の単位は、物理ディスク全体 パーティション単位ではない 速度は物理ディスクとほぼ同等 制限事項 スナップショットがとれない エクスポート・インポートできない 「物理マシン」と「OSの稼働環境」を切り離すことが できるという、仮想化の主要なメリットを失う70
  70. 70. 固定サイズVHD vs. パススルー 50 45 40 5%程度の差 35 30 25 20 15 ※ あくまでも 10 参考値です 5 0 パススルー 固定サイズ71
  71. 71. IDEか? SCSIか? VMへのディスク接続方式 仮想IDEと仮想SCSIの2種類 OSを起動できるのはIDEのみ お奨めは、 「起動IDE」「データSCSI」 両者に性能差はほぼ無いが、 監視のしやすさに差がある SCSIはディスク毎にカウンタがある IDEはコントローラ単位全体で一つの カウンタにまとめられてしまっている しかも現在はバグのため、ICありだと機能しない72
  72. 72. IDEとSCSI – カウンタの違い IDEはVM全体で 1インスタンス SCSIは、 ディスク毎に 個別インスタンス73
  73. 73. ホストのストレージ 構成の原則 システムドライブとVM配置ドライブは分ける システムドライブの構成 RAID1 (ミラーリング) 構成を推奨 ペアレント パーティションをハードウェア障害から 保護 VHD VHD VHD VHD VHD VHD システムドライブ VM配置ドライブ74
  74. 74. ホストのストレージ (続き) VM配置ドライブの構成 ディスク台数 本番環境では、“仮想マシン1台あたり1スピンドル” を下回らない台数が必要 ディスクは別々に使わず、束ねる 複数のディスクをストライピングし、 一つに束ねる(RAID1+0等)編成を推奨 ただし、RAID5はお奨めしない (書き込みが遅い) クラスタサイズを大きめに VMボリュームとしての普通サイズは16KB ヘビーな書き込みが行われるなら64KBでも良い75
  75. 75. ストレージ構成の例 VM1 VM2 VM3 VM4 VM5 C: D: C: D: C: D: C: D: C: D: IDE SCSI IDE SCSI IDE SCSI IDE SCSI IDE SCSI VHD VHD VHD VHD VHD VHD VHD VHD VHD VHD システム (RAID 1) 仮想マシン配置ドライブ (RAID 50)76
  76. 76. まとめ: Hyper-Vストレージ 仮想マシンのディスク構成 本番: 固定VHD 開発、テスト: 可変VHD パススルーは慎重に 起動ドライブ以外はSCSI接続 ホストのディスク構成 システムと、VM配置ドライブは分ける VM配置ドライブはストライピングせよ クラスタサイズは大きめに77
  77. 77. スナップショット78
  78. 78. スナップショット 仮想マシンの一時点での状態を保存し、 いつでもその状態に戻すことができる VMが実行中でも停止中でも作成できる 仮想マシン毎に50個まで システムに重大な変更を 加える前等に作成して おくと、変更前の状態へ 簡単に戻せるため便利79
  79. 79. スナップショットの仕組み VM新規作成 初期状態 構成情報 メモリ情報 仮想マシンは4種類の (.xml) (.bin) ファイルから構成される 仮想ディスク 状態情報 (.vhd) (.vsv) スナップショット①作成後 スナップショット① 構成情報 メモリ情報 VMの構成ファイルをコピーする (.xml) (.bin) VHDは大きすぎるので コピーせず差分ディスクを作る 差分ディスク 状態情報 (.avhd) スナップショット②作成後 (.vsv) スナップショット② 構成情報 メモリ情報 (.xml) (.bin) スナップショットを作成する度に 差分ディスクの連鎖が長くなっていく 差分ディスク 状態情報 (.avhd) (.vsv)80
  80. 80. スナップショットの注意点 性能面 差分ディスクなので、ディスクの連鎖をたぐる オーバヘッドがある 差分ディスクは可変サイズディスクなので、 書込時にファイル拡張のオーバヘッドがある 分散システムの整合性 過去や未来を簡単に往復できるので、 複数サーバが連携するシステムでの使用は 注意が必要81
  81. 81. スナップショットの注意点 推奨されない使い方 基本的に本番環境では非推奨 ソフトウェア開発・テスト環境や、更新プログラム の検証環境での仕様を想定 ドメインコントローラのスナップショット作成 イメージバックアップからのリストアと同じ問題 MOSSやExchange Serverのように、 ロールの異なる複数のマシンから構成される システムでのスナップショット作成82
  82. 82. Hyper-Vをクラスタリング83
  83. 83. Hyper-Vのクラスタ化 Hyper-Vのホストマシン同士を、 Windows Server 2008のフェールオーバー クラスタ機能でクラスタ化 最大ノード数は16 仮想マシンは共有ストレージに配置 SAN (FC/iSCSI)が基本だが、NASも使用可能84
  84. 84. Hyper-V ホストクラスタリング VHD VHD VHD VHD VHD VHD VHD VHD VHD85
  85. 85. 仮想マシンをクラスタへ登録 Windows Server 2008のフェールオーバー クラスタリングは、Hyper-Vの仮想マシン を認識86
  86. 86. 仮想マシンをクラスタへ登録 一覧から選択するだけで、仮想マシンを クラスタに登録87
  87. 87. Quick Migration クラスタに登録された仮想マシンは、 クラスタノード間を移動可能になる 計画停止、非計画停止の両方を想定 計画停止時は、VMのメモリ内容をいったん ファイルへ保存し、移動先のノードで復元する 非計画停止時は、移動先ノードでVMが再起動 される88
  88. 88. Quick Migration 概念図 VM2用LUN VM2.xml VM2.vhd VM2 VM2.bin VM1用LUN VM1.xml VM1 VM1.vhd VM1.bin89 ノード1 共有ストレージ ノード2
  89. 89. Quick Migrationの留意点 フェールオーバの単位 仮想マシンの移動 == 物理ディスクのフェール オーバ フェールオーバはLUN単位なので、1つのLUN に複数の仮想マシンを配置すると、それらは個 別に移動できず、常にまとまって移動すること になる VM毎に専用のLUNを割り当てることになり、 管理が煩雑になる可能性がある90
  90. 90. 単一LUN, 複数VMの問題点 単一LUNに複数VMを押し込むと、 個別に移動でき なくなる 単一LUN VM2.xml VM2.vhd VM2 VM2.bin VM1.xml VM1 VM1.vhd VM1.bin91 ノード1 共有ストレージ ノード2
  91. 91. 性能測定92
  92. 92. 仮想環境の性能測定 性能測定は二段構え 仮想マシン内の性能測定 通常の物理マシンと同じように測定する 実際に利用するアプリケーションを 計測対象とするのが望ましい ペアレント パーティションでの性能測定 ゲストOS内から測定できるのは、 仮想マシン単体の状況のみ ペアレント パーティションにはHyper-V固有の パフォーマンスカウンタが存在 個々の仮想マシンの性能93 マシン全体としての性能
  93. 93. Hyper-V パフォーマンスカウンタ ペアレント パーティションで取得可能 用途 カウンタ名 マシン全体のCPU使用率 Hyper-V Hypervisor Logical Processor ペアレント パーティションの Hyper-V Hypervisor Root Virtual Processor CPU使用率 仮想マシンのCPU使用率 Hyper-V Hypervisor Virtual Processor 仮想マシンのディスク Hyper-V Virtual IDE Controller (IDE) 仮想マシンのディスク Hyper-V Virtual Storage Device (SCSI) 仮想NICの使用状況 Hyper-V Virtual Network Adapter94
  94. 94. 性能測定: 概念図 ペアレント 仮想マシン 仮想マシン 仮想マシン パーティション その2 その3 その1 Hyper-V 性能測定対象 性能測定対象 性能測定対象 パフォーマンス アプリケーション アプリケーション アプリケーション カウンタ 仮想マシンの 仮想マシンの 仮想マシンの マシン全体の 単体性能を 単体性能を 単体性能を 性能を測定 測定 測定 測定 ハイパーバイザ95 ハードウェア
  95. 95. マシン全体の状況を把握するには 対象 オブジェクト カウンタ 備考 CPU Hyper-V % Total Run Time ※ “Processor”オブジェクト Hypervisor はマシン全体のCPU使用率 Logical を示さないことに注意! Processor メモリ Memory Pages/sec Physical Disk Disk Transfers/sec ページファイルのあるドラ イブの値を取得 Pages/secがこの値の20% に達するようであれば、メ モリが足りない ディスク Physical Disk Avg. Disk sec / Read VHDファイルの配置ドライ Avg. Disk sec / Write ブの値を取得 Avg. Disk Read Queue Length Queue Lengthはディスクの Avg. Disk Write Queue Length スピンドル数の1.5倍以内程 度に収まるのが目安96
  96. 96. Hyper-Vと マイクロソフト製品97
  97. 97. サーバー製品の仮想化対応情報 2008/8/19 KB公開 “Microsoft server software and supported virtualization environments” http://support.microsoft.com/kb/957006/en-us 31種類のサーバー製品について、 Hyper-V上での動作についての情報を公開 さらに、”90日ルール”の一部撤廃を発表 Quick MigrationやVMotionの活用に対応98
  98. 98. BizTalk Server on Hyper-V BizTalk Server 2004, 2006, 2006 R2は 完全サポート MSDNに「Hyper-V Guide」公開 BizTalk Server 2006 R2 Hyper-V Guide http://msdn.microsoft.com/en-us/library/cc768518.aspx パフォーマンス測定結果も公開 シナリオ1: 単一VM + 物理SQL Server シナリオ2: 複数VM + 物理SQL Server シナリオ3: 複数VM + 仮想SQL Server シナリオ4: 複数VM + 仮想SQL Server 単一筐体集約99
  99. 99. Exchange Server on Hyper-V サポートされるバージョン Windows Server 2008上でのExchange Server 2007 SP1 サーバー ロール ユニファイド メッセージング (UM) 以外はすべてサポート プロセッサ VP:LP比率は2:1まで 仮想ハードディスク 本番環境では、固定サイズVHDだけをサポート 可変サイズおよび差分ディスクの使用は非サポート → 必然的にスナップショットも非サポート Exchange DBとログは、VM自体とは別スピンドルのディスクに配置 することをお奨め Microsoft Support Policies and Recommendations for Exchange Servers in Hardware Virtualization Environments http://technet.microsoft.com/en-us/library/cc794548.aspx100
  100. 100. SQL Server on Hyper-V SQL Server 2005, 2008 (ほぼ)完全にサポート ただし、仮想マシン同士でのフェールオーバー クラス タリングは非サポート データベースミラーリングはサポート 詳細は、こちらの技術情報をご参照ください 「ハードウェア仮想化環境で Microsoft SQL Server 製 品を実行する場合のサポート ポリシー」 http://support.microsoft.com/kb/956893/ja101
  101. 101. 関連セッション T4-311 System Center & Dynamic IT バード ビュー 8 月 27 日(水) 13:40 - 14:55 T4-310 System Center Virtual Machine Manager を 利用した Windows Server 2008 Hyper-V 管理のベスト プラクティス 8 月 29 日(金) 13:40 - 14:55102
  102. 102. 参考資料 Performance Tuning Guidelines for Windows Server 2008 http://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv.mspx Hyper-V: Integration Components and Enlightenments http://blogs.msdn.com/tvoellm/archive/2008/01/02/hyper-v-integration-components-and- enlightenments.aspx Hyper-V: How to make sure you are getting the best performance when doing performance comparisons http://blogs.msdn.com/tvoellm/archive/2008/04/19/hyper-v-how-to-make-sure-you-are-getting-the- best-performance-when-doing-performance-comparisons.aspx Hyper-V Performance Counters http://blogs.msdn.com/tvoellm/archive/tags/Hyper-V+Performance+Counters/default.aspx Storage options for Windows Server 2008 Hyper-V http://blogs.technet.com/josebda/archive/2008/02/14/storage-options-for-windows-server-2008-s- hyper-v.aspx Microsoft.com Operations Virtualizes MSDN and TechNet on Hyper-V http://download.microsoft.com/download/6/C/5/6C559B56-8556-4097-8C81- 2D4E762CD48E/MSCOM_Virtualizes_MSDN_TechNet_on_Hyper-V.docx103
  103. 103. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.104

×