Sei sulla pagina 1di 65

Implementing Hyper-V

Troubleshooting Hyper-V

FINAL

Released: 6 August 2008

Conditions and Terms of Use


Microsoft Confidential - For Internal Use Only
This training package content is proprietary and confidential, and is intended only for users
described in the training materials. This content and information is provided to you under a NonDisclosure Agreement and cannot be distributed. Copying or disclosing all or any portion of the
content and/or information included in this package is strictly prohibited.

THE CONTENTS OF THIS PACKAGE ARE FOR INFORMATIONAL AND TRAINING PURPOSES ONLY AND ARE
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT.
Training package content, including URL and other Internet Web site references, is subject to
change without notice. Because Microsoft must respond to changing market conditions, the
content should not be interpreted to be a commitment on the part of Microsoft, and Microsoft
cannot guarantee the accuracy of any information presented after the date of publication. Unless
otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos,
people, places, and events depicted herein are fictitious, and no association with any real company,
organization, product, domain name, e-mail address, logo, person, place, or event is intended or
should be inferred.

Copyright and Trademarks


2008 Microsoft Corporation. All rights reserved.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in written
license agreement from Microsoft, the furnishing of this document does not give you any license to
these patents, trademarks, copyrights, or other intellectual property.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the
rights under copyright, no part of this document may be reproduced, stored in or introduced into a
retrieval system, or transmitted in any form or by any means (electronic, mechanical,
photocopying, recording, or otherwise), or for any purpose, without the express written
permission of Microsoft Corporation.
For more information, see Use of Microsoft Copyrighted Content at
http://www.microsoft.com/about/legal/permissions/.
Microsoft, Internet Explorer, and Windows are either registered trademarks or trademarks of
Microsoft Corporation in the United States and/or other countries. Microsoft products mentioned
herein may be either registered trademarks or trademarks of Microsoft Corporation in the United
States and/or other countries. The names of actual companies and products mentioned herein
may be the trademarks of their respective owners.

Table of Contents
Module Overview ................................................................................................................................... 1
Collecting Diagnostic Data ...................................................................................................................... 3
Hyper-V Event Logs ............................................................................................................................................4
Hyper-V-Config ...............................................................................................................................................4
Hyper-V-High-Availability ...............................................................................................................................4
Hyper-V-Hypervisor ........................................................................................................................................4
Hyper-V-Integration .......................................................................................................................................4
Hyper-V-Network ...........................................................................................................................................4
Hyper-V-SynthNic ...........................................................................................................................................4
Hyper-V-SynthStor .........................................................................................................................................5
Hyper-V-vhdsvc ..............................................................................................................................................5
Hyper-V-VMMS ..............................................................................................................................................5
Hyper-V-Worker .............................................................................................................................................5
Hyper-V Tracing and Logging..............................................................................................................................6
Enabling UI Tracing .........................................................................................................................................6
Configuring Tracing Levels .............................................................................................................................6
Locating Trace Files ........................................................................................................................................7
Integration Component Tracing .....................................................................................................................7
Integration Services Logs ...............................................................................................................................9
Hyper-V MSDT Information ..............................................................................................................................16

Using Reliability and Performance Monitor ......................................................................................... 17


Performance Monitoring Overview .................................................................................................................18
Performance Monitor and Hyper-V .................................................................................................................19
Hypervisor Performance Monitor Objects ...................................................................................................19
Troubleshooting High CPU Usage in Virtual Machines.....................................................................................28
Using the % Processor Time Counter ...........................................................................................................28
Troubleshooting Disk Usage in Virtual Machines .............................................................................................32
Monitoring Disk Performance of Virtual Machines ......................................................................................32
Optimizing Virtual Machine Performance ........................................................................................................35
Running Without Integration Services .........................................................................................................35
Running Hyper-V Manager During Performance Tests ................................................................................36
Running VMConnect Windows During Performance Tests ..........................................................................37

Examining Known Issues ...................................................................................................................... 38


Hypervisor or DEP disabled in BIOS ................................................................................................................. 39
Problem ....................................................................................................................................................... 39
Recommended Solution .............................................................................................................................. 41
Attaching multiple virtual machines to the same physical CD Rom device..................................................... 42
Problem ....................................................................................................................................................... 42
Recommended Solution .............................................................................................................................. 44
Mouse Not Functioning Correctly During TS Access to Parent Partition ......................................................... 45
Problem ....................................................................................................................................................... 45
Cause ........................................................................................................................................................... 45
Workarounds............................................................................................................................................... 45
Low Free Disk Space on Physical Machine ...................................................................................................... 46
Problem ....................................................................................................................................................... 46
Cause ........................................................................................................................................................... 46
Recommended Solution .............................................................................................................................. 46
Hyper-V and Forefront Client Security ............................................................................................................ 47
Problem ....................................................................................................................................................... 47
Recommended Solution .............................................................................................................................. 49
VMBus Fails to Load (Error Code 10 or 12) ..................................................................................................... 50
Problem ....................................................................................................................................................... 50
Recommended Solution .............................................................................................................................. 52
When you try to enable, disable, or update Hyper-V technology, the process stops responding .................. 53
Problem Description .................................................................................................................................... 53
Cause ........................................................................................................................................................... 53
Recommended Solution .............................................................................................................................. 53
If you sysprep a machine running Hyper-V, the hypervisor will not launch automatically ............................. 55
Problem Description .................................................................................................................................... 55
Cause ........................................................................................................................................................... 55
Recommended Solution .............................................................................................................................. 55
Unable to create vhds .................................................................................................................................... 56
Problem Description .................................................................................................................................... 56
Cause ........................................................................................................................................................... 56
Recommended Solution .............................................................................................................................. 56
Managing Hyper-V using RSAT feature tools does not work correctly ........................................................... 57

Problem description .....................................................................................................................................57


Recommended Solution ...............................................................................................................................57

Lab Exercises......................................................................................................................................... 58
Module Review ..................................................................................................................................... 59

FINAL

Troubleshooting Hyper-V - Module Overview

Module Overview
This module discusses methods for monitoring Hyper-V operations and performance. It
also provides information for troubleshooting known issues.

What You Will Learn


After completing this module you will be able to:
Explain the where Hyper-V logs events.
Configure Hyper-V for tracing.
Configure and read performance data for Hyper-V using performance monitor.
Recognize known issues with Hyper-V and apply recommended workarounds and
solutions.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

Implementing Hyper-V

FINAL

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

Collecting Diagnostic Data


This lesson explains how to collect event logs, Hyper-V traces, and Microsoft Support
Diagnostic Tools (MSDT) information to help you analyze and resolve customer issues.

What You Will Learn


After completing this lesson, you will be able to:
Locate and review relevant event log files.
Enable Hyper-V tracing and analyze trace files.
Assist customers in downloading the required MSDT and submitting diagnostic
results for analysis.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

Implementing Hyper-V

FINAL

Hyper-V Event Logs


This section describes event logs that pertain to Hyper-V. When looking at the Hyper-V
event logs, it is beneficial to know the functionality of each component. Hyper-V event
logs can be found in the Event Viewer under Applications and Service Logs > Microsoft,
Windows. There are ten event logs related to Hyper-V:
Hyper-V-Config

Hyper-V-SynthNic

Hyper-V-High-Availability

Hyper-V-SynthStor

Hyper-V-Hypervisor

Hyper-V-vhdsvc

Hyper-V-Integration

Hyper-V-VMMS

Hyper-V-Network

Hyper-V-Worker

Hyper-V-Config
Events are logged here that relate to problems accessing a virtual machines configuration
file.

Hyper-V-High-Availability
Events are logged here that relate to quick migration or failover clustering between two
virtual machines.

Hyper-V-Hypervisor
Events are logged here that relate to problems with the hypervisor itself, or if the
hypervisor fails to load because of a problem. If the hypervisor does not load because
hardware virtualization is not enabled in the BIOS, the event will not be logged here.

Hyper-V-Integration
Events are logged here that relate to problems with the integrated components.

Hyper-V-Network
Events are logged here that relate to problems with the virtual switch.

Hyper-V-SynthNic
Events are logged here if there is a problem with network communication using the
synthetic NIC.

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

Hyper-V-SynthStor
Events are logged here that relate to any storage issues when using the synthetic storage
driver.

Hyper-V-vhdsvc
Events are logged here that relate to virtual hard disks. Failures to add, delete, merge,
expand, convert and mount virtual hard disks will write events to this log.

Hyper-V-VMMS
Events are logged here that relate to the virtual machine management service
functionality.

Hyper-V-Worker
Events are logged here that relate to the worker processes functionality.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

Implementing Hyper-V

FINAL

Hyper-V Tracing and Logging


To help diagnose errors and performance issues, enable tracing in the UI and collect
activity traces while performing tasks that exhibit failure symptoms.

Enabling UI Tracing
To enable tracing:
1. Open a command prompt.
2. Navigate to the directory used by the UI to store the user's local configuration:
%appdata%\Microsoft\Windows\Hyper-V\Client\1.0\

3. Inside this directory, add a file named "VMClientTrace.config" that contains the
following XML data:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<Microsoft.Virtualization.Client.TraceConfigurationOptions>
<setting name="TraceTagFormat" type="System.Int32">
<value>3</value>
</setting>
<setting name="BrowserTraceLevel" type="System.Int32">
<value>5</value>
</setting>
<setting name="VMConnectTraceLevel" type="System.Int32">
<value>5</value>
</setting>
<setting name="VHDInspectTraceLevel" type="System.Int32">
<value>5</value>
</setting>
</Microsoft.Virtualization.Client.TraceConfigurationOptions>
</configuration>

4. Saving the file and restart the UI.


5. Perform steps required to reproduce your issue.
Important:

Tracing cannot be enabled on dynamically. After enabling tracing, you must restart the UI
to begin collecting trace data.

Configuring Tracing Levels


The tracing configuration file provides options to control which traces are gathered and
how they are formatted.
The first tag is TraceTagFormat. A value of 1 instructs the tracing system to tag each
message with a time stamp and a value of 2 tags each message with source information,

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

though this only works in chk builds. You can bitwise-or these values together so that you
have both options by using the value of 3.
Other configuration file tags specify what tracing level to use for each UI app. UI tracing
supports six different levels of tracing. Tracing levels and their corresponding tag values
are shown in the following table.
Table 1: Level Tracing Values

Tag Value

Description

None

Exception (all caught exceptions will be traced)

WMI call (information about each WMI call made by the UI)

UserAction (each user action, such as the user is launching the New Virtual Machine
Wizard)

Events (Turning on/off or receiving WMI events from the server)

Information (General information)

Verbose

Each higher level includes all of the tracing from lower levels and additional information.
For example, setting the value to 5 includes all exceptions, WMI calls, user actions, and
WMI events, as well as general information.

Locating Trace Files


Tracing files are written to %temp%. The file name will be in the following format:
AppName_Trace_Timestamp

where AppName is the name of the VMBrowser, VMConnect, or VHDInspect UI app being
traced and Timestamp is the time when the app was started.

Integration Component Tracing


Tracing data is currently enabled by default and can be viewed in Event Viewer under
Applications and Services Log\Microsoft\Windows\Hyper-V-Integration\Debug. The
Source field specifies which component generated the tracing event.

Collecting Trace Data


Debug traces for the Integration Component services can be enabled using tracelog.exe.
Tracelog.exe can be found in the SDK.
To collect debug traces on a guest:
1. Start a tracing session by running the following command:
tracelog.exe -start <session_name> -f <log_file> -guid #<provider> level <trace_level>

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

Implementing Hyper-V

FINAL

Parameter

Descxription

<session_name>

a string that identifies the tracing session

<log_file>

path to the log file (.ETL)

<provider>

GUID of the ETW provider:


2b74a015-3873-4c56-9928-ea80c58b2787 (heartbeat)
82d60869-5ada-4d49-b76a-309b09666584 (kvpexchange)
bc714241-8edc-4ce3-8714-aa0b51f98fdf (shutdown)
f152dc14-a3a0-4258-bece-69a3ee4c2de8 (timesync)
67e605ee-a4d8-4c46-ae50-893f31e13963 (vss)

<trace_level>

tracing level:
1 = Critical
2 = Error
3 = Warning
4 = Information

Example:
tracelog.exe -start vmicheartbeat_trace -f %WINDIR%\vmicheartbeat.etl
-guid #2b74a015-3873-4c56-9928-ea80c58b2787 -level 4

2. Stop the tracing session by running the following command:


tracelog.exe -stop <session name>

3. After stopping the session, the log file is available at the location specified by the -f
parameter in the start command.
Example:
tracelog.exe -stop vmicheartbeat_trace

Viewing Debug Traces


ETL files generated on Vista or later guests can be opened using Event Viewer on a
machine where Hyper-V is installed.
ETL files generated on pre-Vista guests can be viewed using ETL parsing tools after
installing the WMI event definition for the tracing events. To to install WMI event
definition, run the following command:
mofcomp.exe ictrace.mof

The ictrace.mof file is located in the folder %SDXROOT%\admin\vm\ic\test\tracing.


Examples:
To convert an ETL file to XML format, run the following command:
tracerpt.exe vmicheartbeat.etl -o vmicheartbeat.xml

To display tracing messages from an ETL file, run the following command:

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

LogParser.exe "SELECT * INTO LogParserTable FROM vmicheartbeat.etl" -i:etw o:datagrid

Note:

Log Parser is located at:


http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06babf8-4c25-91b2-f8d975cf8c07&displaylang=en

Integration Services Logs


When troubleshooting integration services problems there are three logs, located in the
%windir% directory, that can be useful.
Vmguestsetup.log
Vmginst.log
Vmgcoinstall.log

Note:

Vmginst.log will not be found on fully enlightened guests (Windows Vista sp1 and
Windows Server 2008).

Below are the contents of each of these logs from a successful installation of the
integration services:

Vmguestsetup.log
==============> Begin Log 2008/05/02 12:31:53 UTC
MUI file loaded
Parsing command line...
Command line parsing complete
Verifying execution environment
OS Version
= 5.2
OS SP Level
= 2
OS Platform ID = 2
OS Product Type = 3
Processor Arch = 0
Processor Count = 1
All clear
Starting the restart dialog killer thread
Restart dialog killer ready
Creating progress dialog
Dialog created
ProgressMessage = 49425
Creating worker thread
Worker thread created
Windows Directory = C:\WINDOWS
Waiting for worker thread
System32 Directory = C:\WINDOWS\system32
Drivers Directory = C:\WINDOWS\system32\drivers
Application Directory = D:\support\x86
System Default Language = en-us (ENU)
HAL found at C:\WINDOWS\inf\hal.inf
About to load DLL D:\support\x86\WdfCoInstaller01005.dll
Global Technical Readiness
Microsoft Confidential - For Internal Use Only

Implementing Hyper-V

FINAL

About to call preinstall


ChangeStartType
Error 00000057 while changing the service config
Attempting to change service start type in registry
AddKmdfToServiceGroupList
AddGroupOrderConfigurationKey
Command Line: D:\support\x86\WindowsServer2003-KB943295-x86-ENU.exe
/norestart /quiet /ER
Temporary directory = C:\WINDOWS\Temp\{4844cfa6-726d-4fe5-8628-a809c5fe1c1d}
Copying D:\support\x86\en-us to C:\WINDOWS\Temp\{4844cfa6-726d-4fe5-8628a809c5fe1c1d}
Command Line: "C:\WINDOWS\Temp\{4844cfa6-726d-4fe5-8628a809c5fe1c1d}\update\update.exe" /norestart /quiet /ER
Running custom installer DLL (install)
Full path = c:\windows\temp\{4844cfa6-726d-4fe5-8628a809c5fe1c1d}\update\update.inf
TargetPath = C:\WINDOWS\Virtualization\6.0.6001.18004
Driver source path = C:\WINDOWS\Virtualization\6.0.6001.18004
Device VMBUS\{CFA8B69E-5B4A-4cc0-B98B-8BA1A1F3F95A} (vmbushid.inf) doesn't
exit; installing the INF directly
Device VMBUS\{C9A9B73F-F83D-4b62-A656-FA907223D437} (vmbusvideo.inf) doesn't
exit; installing the INF directly
Device VMBUS\{ba6163d9-04a1-4d29-b605-72e2ffb1dc7f} (storvsc.inf) doesn't
exit; installing the INF directly
Device vmbus\{32412632-86cb-44a2-9b5c-50d1417354f5} (storflt.inf) doesn't
exit; installing the INF directly
Device VMBUS\{F8615163-DF3E-46c5-913F-F2D2F965ED0E} (netvsc.inf) doesn't
exit; installing the INF directly
Device vmbus\{57164f39-9115-4e78-ab55-382f3bd5422d} (vmic.inf) doesn't exit;
installing the INF directly
Device vmbus\{242ff919-07db-4180-9c2e-b86cb68c8c55} (vmic.inf) doesn't exit;
installing the INF directly
Device vmbus\{b6650ff7-33bc-4840-8048-e0676786f393} (vmic.inf) doesn't exit;
installing the INF directly
Device vmbus\{2dd1ce17-079e-403c-b352-a1921ee207ee} (vmic.inf) doesn't exit;
installing the INF directly
Device vmbus\{2450ee40-33bf-4fbd-892e-9fb06e9214cf} (vmic.inf) doesn't exit;
installing the INF directly
Device ACPI\VMBus (vmbus.inf) exists; forcing a plug & play update
About to update ACPI\VMBus using
C:\WINDOWS\Virtualization\6.0.6001.18004\vmbus.inf
Waited 37593 ms for plug & play to complete
Successfully updated driver (reboot required = 0)
Device PCI\VEN_1414&DEV_5353&SUBSYS_00000000&REV_00 (s3cap.inf) exists;
forcing a plug & play update
About to update PCI\VEN_1414&DEV_5353&SUBSYS_00000000&REV_00 using
C:\WINDOWS\Virtualization\6.0.6001.18004\s3cap.inf
Waited 0 ms for plug & play to complete
Successfully updated driver (reboot required = 1)
Deleting temporary directory
Detected worker thread exit
Worker thread error code = 00000000
Restart required
Restart request denied by user

10

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

Vmgcoinstall.log:
==============> Begin Log 2008/05/02 12:33:09 UTC
DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{00000000-0000-8899-0000-000000000000}
HardwareId = VMBUS\{32412632-86cb-44a2-9b5c-50d1417354f5}
Processing install info for device vmbus\{32412632-86cb-44a2-9b5c50d1417354f5}
Service name = storflt
set registry value
SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&CC_0101
\Service = intelide: 0x0
set registry value
SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&CC_0101
\ClassGUID = {4D36E96A-E325-11CE-BFC1-08002BE10318}: 0x0
No additional processing required

==============> Begin Log 2008/05/02 12:33:12 UTC


DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{00000001-0000-8899-0000-000000000000}
HardwareId = VMBUS\{32412632-86cb-44a2-9b5c-50d1417354f5}
Processing install info for device vmbus\{32412632-86cb-44a2-9b5c50d1417354f5}
Service name = storflt
set registry value
SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&CC_0101
\Service = intelide: 0x0
set registry value
SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&CC_0101
\ClassGUID = {4D36E96A-E325-11CE-BFC1-08002BE10318}: 0x0
No additional processing required
==============> Begin Log 2008/05/02 12:33:30 UTC
DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{b6650ff7-33bc-4840-8048-e0676786f393}
HardwareId = VMBUS\{0e0b6031-5213-4934-818b-38d90ced39db}
Processing install info for device vmbus\{b6650ff7-33bc-4840-8048e0676786f393}
Service name = vmicshutdown
Attempting to start device driver service
Service started
==============> Begin Log 2008/05/02 12:33:33 UTC
DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{fd149e91-82e0-4a7d-afa6-2a4166cbd7c0}
HardwareId = VMBUS\{57164f39-9115-4e78-ab55-382f3bd5422d}
Processing install info for device vmbus\{57164f39-9115-4e78-ab55382f3bd5422d}
Service name = vmicheartbeat
Attempting to start device driver service
Global Technical Readiness
Microsoft Confidential - For Internal Use Only

11

Implementing Hyper-V

FINAL

Service started
==============> Begin Log 2008/05/02 12:33:36 UTC
DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{2450ee40-33bf-4fbd-892e-9fb06e9214cf}
HardwareId = VMBUS\{35fa2e29-ea23-4236-96ae-3a6ebacba440}
Processing install info for device vmbus\{2450ee40-33bf-4fbd-892e9fb06e9214cf}
Service name = vmicvss
Attempting to start device driver service
Service started
==============> Begin Log 2008/05/02 12:33:40 UTC
DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{242ff919-07db-4180-9c2e-b86cb68c8c55}
HardwareId = VMBUS\{a9a0f4e7-5a45-4d96-b827-8a841e8c03e6}
Processing install info for device vmbus\{242ff919-07db-4180-9c2eb86cb68c8c55}
Service name = vmickvpexchange
Attempting to start device driver service
Service started
==============> Begin Log 2008/05/02 12:33:42 UTC
DIF_INSTALLDEVICE (post-processing)
HardwareId = VMBUS\{2dd1ce17-079e-403c-b352-a1921ee207ee}
HardwareId = VMBUS\{9527e630-d0ae-497b-adce-e80ab0175caf}
Processing install info for device vmbus\{2dd1ce17-079e-403c-b352a1921ee207ee}
Service name = vmictimesync
Attempting to start device driver service
Service started

Vmginst.log
0.204:
============================================================================
====
0.204: 2008/05/02 08:32:48.875 (local)
0.204: C:\WINDOWS\Temp\{4844cfa6-726d-4fe5-8628a809c5fe1c1d}\update\update.exe (version 6.2.29.0)
0.297: Hotfix started with following command line: /norestart /quiet /ER
1.610: DoInstallation: CleanPFR failed: 0x2
1.657: SetProductTypes: InfProductBuildType=BuildType.IA
1.672: SetAltOsLoaderPath: No section uses DirId 65701; done.
1.735: DoInstallation: FetchSourceURL for c:\windows\temp\{4844cfa6-726d4fe5-8628-a809c5fe1c1d}\update\update.inf failed
1.735: CreateUninstall = 1,Directory = C:\WINDOWS\$NtUninstallvmginst$
1.735: LoadFileQueues: UpdSpGetSourceFileLocation for halaacpi.dll failed:
0xe0000102

12

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

1.735: BuildCabinetManifest: update.url absent


1.750: Starting AnalyzeComponents
1.750: AnalyzePhaseZero used 0 ticks
1.750: SetupFindFirstLine in LoadExclusionList Failed with error: 0xe0000102
1.750: SetupFindFirstLine in LoadExclusionList Failed with error: 0xe0000102
1.750: OEM file scan used 0 ticks
1.750: AnalyzePhaseOne: used 0 ticks
1.750: AnalyzeComponents: Hotpatch analysis disabled; skipping.
1.750: AnalyzeComponents: Hotpatching is disabled.
1.860: AnalyzePhaseTwo used 110 ticks
1.860: AnalyzePhaseThree used 0 ticks
1.860: AnalyzePhaseFive used 0 ticks
1.860: AnalyzePhaseSix used 0 ticks
1.860: AnalyzeComponents used 110 ticks
1.860: Downloading 0 files
1.860: bPatchMode = FALSE
1.860: Inventory complete: ReturnStatus=0, 125 ticks
1.891: Num Ticks for invent : 156
1.891: Allocation size of drive C: is 4096 bytes, free space = 133021298688
bytes
1.891: AnalyzeDiskUsage: Skipping EstimateDiskUsageForUninstall.
1.891: Drive C: free 126858MB req: 9MB w/uninstall: NOT CALCULATED.
1.891: CabinetBuild complete
1.891: Num Ticks for Cabinet build : 0
1.938: DynamicStrings section not defined or empty.
1.954: FileInUse:: Detection disabled.
1.954: LoadFileQueues: UpdSpGetSourceFileLocation for halaacpi.dll failed:
0xe0000102
2.360: Num Ticks for Backup : 469
2.516: Num Ticks for creating uninst inf : 156
2.516: Registering Uninstall Program for -> vmginst, vmginst , 0x0
2.516: LoadFileQueues: UpdSpGetSourceFileLocation for halaacpi.dll failed:
0xe0000102
2.907: PFE2: Not avoiding Per File Exceptions.
2.938: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E500C04FC295EE}\vmginst.cat with error 0x57
2.938: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\vmginst.cat with error 0x80092004
3.079: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E500C04FC295EE}\netvsc.cat with error 0x57
3.079: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\netvsc.cat with error 0x80092004
3.266: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\vmic.cat
with error 0x57
3.266: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\vmic.cat with error 0x80092004
3.391: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\vmbus.cat
with error 0x57
3.391: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\vmbus.cat with error 0x80092004

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

13

Implementing Hyper-V

FINAL

3.500: GetCatVersion: Failed to retrieve version information from


C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E500C04FC295EE}\vmbushid.cat with error 0x57
3.500: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\vmbushid.cat with error 0x80092004
3.641: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E500C04FC295EE}\vmbusvideo.cat with error 0x57
3.641: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\vmbusvideo.cat with error 0x80092004
3.797: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E500C04FC295EE}\vmstorage.cat with error 0x57
3.797: GetCatVersion: Failed to retrieve version information from
C:\WINDOWS\vmstorage.cat with error 0x80092004
4.016: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\winhv.sys
4.094: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbus.sys
4.188: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\storvsc.sys
4.219: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\storflt.sys
4.329: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\netvsc50.sys
4.407: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\netvsc60.sys
4.485: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\s3cap.sys
4.563: Copied file:
C:\WINDOWS\Virtualization\6.0.6001.18004\vmbusvideom.sys
4.579: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbushid.sys
4.641: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmicsvc.exe
4.719: Copied file:
C:\WINDOWS\Virtualization\6.0.6001.18004\vmictimeprovider.dll
4.782: Copied file:
C:\WINDOWS\Virtualization\6.0.6001.18004\vmbusvideod.dll
4.829: Copied file:
C:\WINDOWS\Virtualization\6.0.6001.18004\IcCoinstall.dll
4.922: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbuspipe.dll
5.000: Copied file:
C:\WINDOWS\Virtualization\6.0.6001.18004\VmdCoinstall.dll
5.063: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbus.inf
5.141: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\storvsc.inf
5.204: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\storflt.inf
5.313: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\netvsc.inf
5.391: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\s3cap.inf
5.438: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbusvideo.inf
5.500: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbushid.inf
5.594: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmic.inf
5.672: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\netvsc.cat
5.719: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmic.cat
5.766: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbus.cat
5.829: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbushid.cat
5.907: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmbusvideo.cat
5.954: Copied file: C:\WINDOWS\Virtualization\6.0.6001.18004\vmstorage.cat
6.016: Copied file: C:\WINDOWS\system32\DRIVERS\winhv.sys
6.079: Copied file: C:\WINDOWS\system32\DRIVERS\vmbus.sys.mui
6.125: Copied file: C:\WINDOWS\system32\DRIVERS\storflt.sys.mui
6.407: DoInstallation: Installing assemblies with source root path:
c:\windows\temp\{4844cfa6-726d-4fe5-8628-a809c5fe1c1d}\
65.719: Num Ticks for Copying files : 63203

14

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Collecting Diagnostic Data

65.750: Num Ticks for Reg update and deleting 0 size files : 31
74.204: UpdateSpUpdSvcInf: Source [ProcessesToRunAfterReboot] section is
empty; nothing to do.
74.204: DoInstallation: A reboot is required because RebootRequired=1 was
specified in the inf.
74.204: DoInstallation: A reboot is required because one or more custom
actions require it.
74.204: In Function SetVolatileFlag, line 11806, RegOpenKeyEx failed with
error 0x2
74.204: UpdateSpUpdSvcInf: Source
[ProcessesToRunAfterReboot.RebootNotRequired] section is empty; nothing to
do.
74.344: RebootNecessary = 1,WizardInput = 1 , DontReboot = 1, ForceRestart =
0

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

15

Implementing Hyper-V

FINAL

Hyper-V MSDT Information


When troubleshooting Hyper-V it will be beneficial to get an MSDT report from the
customer. The manifest that captures the Hyper-V data is the Setup Vista and Server
2008. Some of the useful files captured by the manifest are specific to Hyper-V and some
are standard troubleshooting files.
Files specific to Hyper-V include the event logs, and the virtual machine configuration xml
files.
Other useful files include the CBS log, the setupapi.app.log, and the BCD database.

Note:

16

To obtain the MSDT, direct customers to the following location:


https://supportdiagnostics.partners.extranet.microsoft.com/

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Using Reliability and Performance Monitor


This lesson provides a brief overview of Performance Monitor and shows how it can be
used to troubleshoot performance problems with a Hyper-V server or a virtual machine.
Although the Windows Reliability and Performance Monitor includes both Performance
Monitor and Reliability Monitor, this lesson focuses specifically on Performance Monitor.

What You Will Learn


After completing this lesson, you will be able to:
Describe Hyper-V Performance Monitor objects.
Monitor Hyper-V objects in Performance Monitor.
Use % Processor Time counters to monitor CPU utilization.
Use Hyper-V Disk counters to monitor disk utilization
Optimize performance when taking performance measurements

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

17

Implementing Hyper-V

FINAL

Performance Monitoring Overview


You can use Windows Reliability and Performance Monitor to examine how programs
you run affect your computer's performance, both in real time and by collecting log data
for later analysis.
Windows Reliability and Performance Monitor uses performance counters, event trace
data, and configuration information, which can be combined into Data Collector Sets.
Performance counters are measurements of system state or activity. They can be included
in the operating system or can be part of individual applications. Windows Reliability and
Performance Monitor requests the current value of performance counters at specified
time intervals.
Event trace data is collected from trace providers, which are components of the operating
system or of individual applications that report actions or events. Output from multiple
trace providers can be combined into a trace session, such as the Windows Kernel Trace
used by Resource View to show real time CPU, memory, disk, and network activity.
Configuration information is collected from key values in the Windows registry. Windows
Reliability and Performance Monitor can record the value of a registry key at a specified
time or interval as part of a log file.
More Information:

18

More information regarding Hyper-V performance is available in the following


blog: http://blogs.msdn.com/tvoellm/

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Performance Monitor and Hyper-V


The architecture of Hyper-V divides a system into distinct partitions that are logically
separated from each other even though they may physically reside on the same piece of
hardware. This can present challenges when troubleshooting or simply monitoring your
systems for performance because you cannot simply monitor the parent partition and
receive any useful data about the performance of any child partitions.
When you enable Hyper-V on a system the parent partition is essentially a virtual
machine with direct hardware access. The best way to see performance information
about the parent partition and child partitions is to use the Hyper-V performance monitor
objects.

Hypervisor Performance Monitor Objects


Microsoft Hyper-V ships with 24 performance monitor objects that can be used to
monitor the performance of the parent partition and child partitions. Using these objects
and the associated performance monitor counters, an administrator should be able to get
a much better overall picture of how their system is performing as well as narrow down
performance problems to a specific partition.
Performance monitor objects for Hyper-V are divided into the following groups:
Hypervisor

Hyper-V Virtual objects

Hyper-V Legacy Network Adapter

Hyper-V VM objects

Hyper-V Task Manager Detail

Each object is described below.

Hypervisor
Hypervisor objects are used to monitor the Hypervisor, logical and virtual processors,
and partitions. The following table lists Hyper-V Hypervisor objects with a brief
description of each object.
Table 2: Hyper-V Hypervisor Performance Monitor Objects

Performance
Monitor Object

Description

Hyper-V
Hypervisor

Hypervisor counters describe hypervisor-wide states and items. There is


only one hypervisor counter group that consists of only architectural values.
Because counters of this counter group count values of a global class,
counters of this counter group can only be accessed by the root partition.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

19

Implementing Hyper-V

FINAL

Performance
Monitor Object

Description

Hyper-V
Hypervisor Logical
Processor

Counters for logical processor objects provide information about logical


processor-related states and items. The number of logical processor objects
matches the number of logical processors in the computer. The logical
processor-related states and items consist of both architectural and releasespecific values.

Hyper-V
Hypervisor
Partition

Counters for partition instances provide information about states and items
for a particular child partition. The number of partition instances matches
the number of partitions present in the computer. Partition states and items
consist of only architectural values.

Hyper-V
Hypervisor Root
Partition

Counters for the root partition provide information about states and items
for the root (or parent) partition. Partition states and items consist of only
architectural values.

Hyper-V
Hypervisor Root
Virtual Processor

Counters for the root virtual processor object provide information about
states and items for the virtual processors that are available to the root
partition. The number of virtual processor instances matches the number of
virtual processors that are enabled and available to the root partition.
Virtual processor states and items consist of architectural values.

Hyper-V
Hypervisor Virtual
Processor

Counters for virtual processor objects provide information about states and
items for a particular virtual processor in a child partition. The number of
virtual processor objects matches the number of virtual processors that are
present in a given partition. Virtual processor states and items consist of
architectural values.

Logical Processor Counter Details


The Hyper-V Logical Processor objects are some of the most important objects in Hyper-V
and one of the few counter sets that are not impacted by clock skew. Before digging into
the counter set it is important to understand that a Logical Processor correlates directly
to the number of processors or cores that are installed. For example, if you have 2 quadcore processors, you would have 8 cores and therefore 8 logical processors.
Virtual Processors are what the virtual machines actually use, and all execution in the
root and child partitions happens on Virtual Processors. At a minimum you will see one
virtual processor for each logical processor. You will then see additional virtual
processors for each virtual processor you have configured to a guest. So if you have an 8
logical processor system with 1 guest running with 2 virtual processors, the final number
of virtual processors will be 10.

20

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Following is a list of the counters in the logical processor object as well as descriptions of
each counter.
For the following descriptions, LP denotes logical processor and VP denotes virtual processor
Note:

%Guest Run Time This is the percentage of time guest code is running on an LP, or in
the case of the _Total instance, the average percentage across all LP. For example if you
have 2LP and one VM running CPU tests you might see the value be 95% for LP(0), 0% for
LP(1) and 47.5% for the _Total instance. For this you can see you VM is running on LP(0).
%Hypervisor Run Time This is the percentage of time the Hypervisor is running on an
LP, or for the _Total instance, the average percentage across all LP. This is similar to %
Kernel Run Time in the Processor counter set.
%Idle Run Time This is the percentage of time the LP is waiting for work, or for the
_Total instance, the average percentage across all LP. This is similar to % Kernel Run
Time in the Processor counter set.
%Total Run Time This is a sum of %Guest Run Time and % Hypervisor Runtime. This
counter can go over 100% just slightly (<0.5%). This is due to how performance counters
are computed. If you take the current time then value1 and later the end time and value2,
this means value2 has the potential to increase between when the end time was read and
value2 is read. So the computation must the start time, then value1, and later value2, and
then end time. In this case the number would always be slightly less than 100.
%C1 Time C1 is a power saving mode in a CPU. This counter keeps track of how often
the process is able to enter a power saving state when idle. So %C1 Time is the
percentage of time the LP is in the C1 state and for the _Total instance, the average
percentage across all LP.
More
Information:

More information about processor C states is available at the following location:


http://www.microsoft.com/whdc/system/pnppwr/powermgmt/ProcPowerMgmt.mspx

%C2 Time Similar to %C1 Time. C2 is a deeper power state than C1.
%C3 Time Similar to %C1 Time. C3 is a deeper power state than C2.
C1 Transitions / Sec The is the number of times the LP has entered the C1 state in one
second, and for the _Total instance, the number of C1 transitions across all LP.
C2 Transitions / Sec Similar to C1 Transitions/Sec. C2 is a deeper power state than C1.
C3 Transitions / Sec Similar to C1 Transitions/Sec. C3 is a deeper power state than C2.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

21

Implementing Hyper-V

FINAL

Hardware Interrupts / Sec Number of hardware interrupts per second the LP is


processing. As with most counters in this object, the _Total instance is the total for all LP.
Hardware interrupts are delivered to the root VPs corresponding to the LP on which it
was received. For example a network card will create an interrupt when a packet is
received.
Total interrupts / sec Total number of interrupts of all kinds that the LP is processing.
The _Total instance is the total number of interrupts happening on the system per second.
Monitor Transition Cost This is a measure of the cost to enter the Hypervisor via an
Intercept on a Logical Processor (LP). For _Total it is the total cost across all processors.
Intercepts are like User mode to Kernel Mode context switches except that in Hyper-V,
the context switch is from User/Kernel Mode to the Virtual Machine Monitor (VMM),
otherwise known as Hypervisor mode. This counter should be used to figure out the
relative performance of processors, and the lower the value the better.
Context Switches / sec This counter tracks the number of times a Virtual Processor
(VP) had been scheduled to a particular Logical Processor (LP). The _Total instance is the
total number of VP to LP switches. Ideal time context switches of around 1000 with a
single guest running are not uncommon. This is due to the fact that the VP will Halt and
allow something else to run if it has no work to do.
Scheduler Interrupts / sec These interrupts are sent by the Hypervisor scheduler
from one Logical Processor (LP) to another to reevaluate their runlist. The runlist is the
list of Virtual Processors (VP) waiting to run on a given LP. This is also a wake-up
mechanism for an LP that might be sitting idle in a lower power state. The _Total instance
is the total number of scheduler interrupts per second across all LPs.
Inter-processor interrupts sent /sec These interrupts are from one processor to
another for memory coherency. This includes the TLB and processor cache. Values here
that are greater than 20 per Logical Processor (LP) can indicate high guest page
modifications (page access). The _Total instance is the total number of Inter-processor
interrupts (IPIs) set per second.
Inter-processor interrupts /sec This counter is the total number of Inter-processor
interrupts (IPI)received per second for a given Logical Processor (LP). The _Total
instance is the total number of IPIs received by all LPs.
Timer interrupts / sec The Hypervisor supports several difference timers, including
the APIC timer and the PM Timer. This counter represents the number of times an LP is
interrupted to service a timer interrupt.

Virtual Processor Counter Details


The Hyper-V Hypervisor Virtual Processor and Hyper-V Hypervisor Root Virtual
Processor counter sets have the same counters. The only difference between the two is
the Hyper-V Hypervisor Root Virtual Processor contains counters for only the Root
Virtual Processors (VPs) whereas Hyper-V Hypervisor Virtual Processor has counters for
all other partitions.

22

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

The virtual processor counters are very useful because they help you understand how
guest VMs are running and where they are running. Unfortunately, these counters do
suffer from a small amount of clock skew in Windows 2008 Hyper-V but this only slightly
reduces their usefulness. Work is being done to try and remove the clock skew in future
releases.
The clock skew becomes evident when we see that some percentage based counters can
exceed 100%. Some counters have been observed to reach as high as 110% depending on
the system load. The problem has to do with the fact this counter set uses the clock from
the root rather than from the hypervisor as a basis of time.

Tip:

For more information about the Hyper-V counters and clock skew, please see the following:
http://blogs.msdn.com/tvoellm/archive/2008/03/20/hyper-v-clocks-lie.aspx

Virtual Processors (VP) are the unit of execution for a partition and each partition
contains one guest virtual machine (VM), and for each VP there is a set of counters.
Performance Monitor will let you view the counters separately or as an average for all
VPs using the _Total instance. VP counters are prefixed with the name of the partition, for
example: WS08 Guest 1: followed by the VP id: Hv VP 0. This convention should make
it a simple matter to locate the processors and easily identify which processor is being
used by each virtual machine.
%Guest Run Time For guest VMs this is the percentage of time the guest VP is running
in non-hypervisor code on an LP or for the _Total instance the total across all guest VPs.
For the root this is the percentage of time the root VP is running in non-hypervisor code
on an LP or for _Total instance the total across all root VPs. If you sum the _Total instance
for both the guest VPs and root VPs this will equal the % Guest Run Time _Total instance
of the Logical Processor counter set.
%Hypervisor Run Time For guest VMs this is the percentage of time the guest VP is
running in hypervisor code on an LP or for the _Total instance the total across all guest
VPs. For the root this is the percentage of time the root VP is running in hypervisor code
on an LP or for _Total instance the total across all root VPs. If you sum the _Total instance
for both the guest VPs and root VPs this will equal the % Hypervisor Run Time _Total
instance of the Logical Processor counter set.
%Total Run Time This is a sum of %Guest Run Time + % Hypervisor Runtime on a per
VP basis. If you add the _Total instance from both the Root Virtual Processor and Virtual
Processor counter sets it will equal (% Total Run Time _Total - % Idle Time _Total) from
the Logical Processor counters.
Total Intercepts/sec Whenever a guest VP needs to exit its current mode of running
for servicing in the hypervisor this is called an intercept. Some common causes of
intercepts are resolving Guest Physical Address (GPA) to Server Physics Address (SPA)
translations, privileged instructions like hlt / cupid / in / out, and the end of the VPs
scheduled time slice.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

23

Implementing Hyper-V

FINAL

Total Intercepts Cost This is a relative measure of the cost of intercepts. The cost can
vary based on the types of intercepts and the machine architecture.
Hypercalls/sec Hypercalls are one form of enlightenment. Guest operating systems use
the enlightenments to more efficiently use the system via the hypervisor. TLB flush is one
example of a hypercall. If this value is zero, this is an indication that Integration Services
are not installed. New operating systems like Windows Server 2008 can use hypercalls
without enlightened drivers, so zero values here are not a guarantee that Integration
Services are not installed.
Hypercalls Cost This is a relative measure of the cost of hypercalls. The cost can vary
based on the types of calls and the machine architecture.
HLT Instructions/sec Number of CPU halts per second on the VP. A HLT will cause the
hypervisor scheduler to de-schedule the current VP and move to the next VP in the
runlist.
HLT Instructions Cost - This is a relative measure of the cost of a halt. The cost can vary
based on the machine architecture.
IO Instructions/sec Number of CPU in / out instructions executed per second. Many
older or low bandwidth devices use programmed I/O via in / out instructions.
IO Instructions Cost - This is a relative measure of cost of the in / out instructions. The
cost can vary based on the machine architecture.
Page Fault Intercepts/sec Whenever guest code accesses a page not in the CPU TLB a
page fault will occur. This counter is the number of Page Faults per second, and is closely
correlated with the Large Page TLB Fills /sec Small Page TLB Fills / sec counters.
Page Fault Intercepts Cost - This is a relative measure of the cost of a page fault. The
cost can vary based on the machine architecture.
Large Page TLB Fills/sec There are two types of TLB entries: Small TLB which
generally means a 4K page, and Large Page which generally means 2MB. There are fewer
Large TLB entries on the order of 8 32. This counter is the number of Large Page TLB
fills / second. A non-zero value indicates the guest OS is using large pages.
Small Page TLB Fills/sec There are two types of TLB entries: Small TLB which
generally means a 4K page, and Large Page which generally means 2MB. There are fewer
Large TLB entries on the order of 64 1024+. This counter is the number of Small Page
TLB fills / second.
Emulated Instructions/sec Some instructions require emulation to complete in the
Hypervisor. One such example is APIC access. This counter is the number of emulated
instructions completed per second.
Emulated Instructions Cost - This is a relative measure of the cost of emulation. The
cost can vary based on the machine architecture.

24

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

CPUID Instructions/sec The CPUID instruction is used to retrieve information on the


local CPUs capabilities. This counter is the number of CPUID instruction calls per second.
Typically CPUID is only called when the operating system or application first start so this
value most likely will be 0 most of the time.
CPUID Instructions Cost - This is a relative measure of the cost of the CPUID instruction.
The cost can vary based on the machine architecture.
MSR Accesses/sec Machine specific register instruction calls per second. There are
many types of MSRs such as C-state config, Synthetic Interrupt (Synic) Timers, and
control functions such as shutdown.
MSR Accesses Cost - This is a relative measure of the cost of the MSR instruction. The
cost can vary based on the machine architecture.
Control Register Accesses/sec Number of CPU Control Register accesses per second.
Control registers are used to set up address mapping, privilege mode, etc.
Control Register Accesses Cost - This is a relative measure of the cost of changing the
control register. The cost can vary based on the machine architecture.
MWAIT Instructions/sec Number of MWAIT Instructions per second. MWAIT is the
monitored wait instruction where the CPU waits for a memory location between a and b
to change.
MWAIT Instructions Cost - This is a relative measure of cost of the MWAIT instruction.
The cost can vary based on the machine architecture.

Hyper-V Legacy Network Adapter


The Hyper-V Legacy Network Adapter object provides counters for monitoring the
performance of any legacy network adapters installed in virtual machines. Legacy
network adapters are normally used only for guest operating systems that do not support
Integration Services or where PXE boot functionality is needed for the virtual machine.

Hyper-V Task Manager Detail


The Hyper-V Task Manager Detail object provides details and timing statistics for virtual
machine management tasks such as starting, pausing, resuming, saving, and shutting
down virtual machines, applying snapshots, exporting/importing virtual machines, etc.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

25

Implementing Hyper-V

FINAL

Hyper-V Virtual Objects


Hyper-V Virtual objects are used to monitor specific virtual devices in a partition. The
following table lists each object and provides a brief description of each object.
Table 3: Hyper-V Virtual Objects Counters

26

Performance Monitor
Object

Description

Hyper-V Virtual IDE


Controller

Counters for monitoring read and write performance for a virtual


machines IDE controller.

Hyper-V Virtual
Machine Bus

Counters for virtual machine bus properties such as channel offers,


GPADLS, and interrupts.

Hyper-V Virtual
Machine Health
Summary

Provides virtual machine health summary statistics by reporting the


number of virtual machines with either Critical or OK health states.

Hyper-V Virtual
Machine Summary

Provides state information on the number of virtual machines that are


starting, stopping, resuming, exporting, saving, etc.

Hyper-V Virtual
Network Adapter

Counters for monitoring the performance of virtual network adapters,


not including Legacy Network Adapters. Counters of this object normally
have an instance that matches to each Virtual Network.

Hyper-V Virtual
Storage Device

Counters to monitor the status and performance of virtual storage


devices such as synthetic SCSI devices.

Hyper-V Virtual
Switch

Counters to monitor the properties of Hyper-v virtual switches,


providing details on what each switch is doing and the flow of sends and
receives

Hyper-V Virtual
Switch Port

Counters to monitor the properties of specific ports within a virtual


network switch

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Hyper-V VM Objects
Hyper-V VM objects allow you to monitor specific virtualized devices within a virtual
machine such as IDE controllers, Ethernet controllers, and programmable interrupt
controllers. A good way to conceptualize the VM counters is to think of them as the virtual
motherboard. This will help with understanding the functionality that is targeted with
these counters.
The following table lists each object and provides a brief description of each object.
Table 4: Hyper-V VM Objects

Performance Monitor
Object

Description

Hyper-V VM IO APIC

Counters for monitoring a virtual machines I/O APIC device

Hyper-V VM Remoting

Counters for a virtual machines remoting system

Hyper-V VM Save,
Snapshot, and Restore

Counters for a virtual machines save and snapshot systems

Hyper-V VM VID Driver

Counters for the Virtualization Infrastructure Driver (VID) root level


and the VID control memory that is dedicated to virtual machines

Hyper-V VM VID Message


Queue

Counters for a Virtualization Infrastructure Driver (VID) message


queue object and other internal details on the VID

Hyper-V VM Numa Node

Counters for a NUMA node that contain details on how the


Virtualization Infrastructure Driver (VID) is managing NUMA
memory

Hyper-V VID Partition

Counters for a VID partition object. Similar to the Hyper-V


Hypervisor Partition States object but relative to the roots view of
the partitions

Hyper-V VM Worker
Process Memory Manager

Counters for the worker process memory manager, providing


details on the worker process view on memory

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

27

Implementing Hyper-V

FINAL

Troubleshooting High CPU Usage in Virtual Machines


Hypervisor manages two types of partitions:
Parent (Root) Partition. The parent, or root, partition manages physical devices,
child partitions, and just about everything except CPU and physical memory access,
which are managed by the Hypervisor. The root partition runs the Root OS ,
which differs architecturally from the Host OS referred to in Virtual Server.
Child Partitions. Child partitions are used to run guest virtual machines.
Neither the Root nor the Guest virtual machines control the PM Timer or APIC, which
means their concept of processor time is virtualized. In addition, both the Root and Guest
virtual processors share the physical processors in a round-robin fashion.
For these reasons, when troubleshooting virtual machines and monitoring performance
of virtual machines and the Hyper-V host server, data presented by Task Manager and
Performance Monitor can be misleading and confusing. This section discusses concepts
and strategies for CPU performance monitoring on Hyper-V virtual machines.

Using the % Processor Time Counter


The % Processor Time counter provides key information about Hyper-V performance.
This performance counter details the total amount of CPU time being used by processes,
which is the time the CPU is not idle waiting for work. Other % Processor Time counters
detail CPU process time on a process-by-process basis.

28

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Guest Run Time


The following screenshot illustrates what happens when a virtual machine has a loaded
or spinning CPU and what effect that has on the host. On the virtual machine, a CPU
spinner program is running to make the CPU 100% busy. Performance monitor running
in the Guest shows ~100% utilization but the root shows 18% utilization using the
Hyper-V Hypervisor Guest Run Time counters.
Figure 1: % Guest Run Time

The key to analyzing this data is make sure you are looking at the correct % Guest Run
Time counter that matches the virtual machine instance that you wish to monitor. The
instance name will match the name of the virtual machine in Hyper-V.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

29

Implementing Hyper-V

FINAL

Hyper-V Logical Processor


The next screenshot examines a Hyper-V logical processor. You can see that the logical
processor averages between 36% and 97% of a logical processor:
Figure 2: Hyper-V Logical Processor

30

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Virtual Machine % Processor Time


Notice in the following screenshot that actual processor utilization for the physical
machine is nowhere close to 100%:
Figure 3: % Processor Time in Virtual Machine

Determining Actual CPU Usage


So how do you know which counter to monitor and which counter shows the real CPU
time? In reality, they both show the correct CPU time. The guest is using 100% of the CPU
it has been given by the Hypervisor and the guest CPU is busy running the spinning code.
Thus the guest is using 100% of a Virtual processor.
The Hyper-V Hypervisor Logical Processor counters however are showing Logical (or
Physical) Processor utilization. This is what most users are used to when viewing
% Processor Time with Performance Monitor.
When you analyze performance using performance counters, remember that the counters
in the Guest Virtual Machine dont show actual physical processor utilization. Instead, use
Hyper-V Hypervisor Performance Counters in the root partition to monitor Physical
Processor usage.
Global Technical Readiness
Microsoft Confidential - For Internal Use Only

31

Implementing Hyper-V

FINAL

Troubleshooting Disk Usage in Virtual Machines


From the perspective of Hyper-V performance monitor counters, disks in Hyper-V can be
one of three types:
Synthetic Storage Device: A disk that is attached to a Hyper-V virtual SCSI
controller.
VM IDE Controller: A disk that is attached to an IDE controller within a virtual
machine running in Hyper-V.
Pass-through disk: A disk that is only visible to the virtual machine. Pass-through
disks will appear offline to the root partition.
Synthetic Storage Device and IDE Controller disks will display with an instance name that
matches the disk or controller from the virtual machine. Pass-through disks will not
display in the Hyper-V counters and performance data must be gathered by using the
standard Performance Monitor disk counters within the virtual machine itself.

Monitoring Disk Performance of Virtual Machines


Hyper-V contains specific performance monitor objects and counters that can be used to
help troubleshoot disk performance issues within a virtual machine. Since the disk for a
virtual machine is virtualized, but is backed by a physical disk somewhere, it is important
to understand the virtual machine disk configuration so you can determine which
Performance Monitor counters to use.

IDE Controllers
For a standard virtual machine that is using a .vhd based file as a disk that is attached to
an IDE controller, Hyper-V provides specific objects that can be used to monitor these
devices. Each disk in a virtual machine will have a separate instance that is visible under
the Hyper-V VM IDE Controller performance monitor object. The instance is named
after the virtual machine and is in the format of <VMname>:Ide Controller, where
<VMname> is the name of the virtual machine.
Each virtual machine that is using a disk attached to an IDE controller should have an
instance under the Hyper-V Virtual IDE Controller object. Using these counters, you can
monitor Bytes Read, Bytes Written, Sectors Read, and Sectors Written to the disk.

Virtual Storage Devices


For a standard virtual machine that is using a .vhd based file as a disk that is attached to a
SCSI controller, Hyper-V provides specific objects that can be used to monitor these
virtual devices. Each disk in a virtual machine will have a separate instance that is visible
under the Hyper-V Virtual Storage Device performance monitor object. The instance is

32

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

named after the .vhd filename and is in the format of vhd-<filename>, where <filename>
is the name of the .vhd file that corresponds to the virtual disk.
Each virtual machine that is using a disk attached to an SCSI controller should have an
instance under the Hyper-V Virtual Storage Device object. Using these counters, you can
monitor Read Bytes/sec, Write Bytes/sec, Error Count, Flush Count, Write Count, and
Read Count.
Important:

It is important to understand that, unlike the IDE Controller counters, the Virtual Storage
Device instances are not named after the virtual machine that they are attached to. An
administrator should have a good understanding of the configuration of all of the virtual
machines running on a Hyper-V server, including the .vhd filename of any disks that are
attached to Virtual Storage Devices.

Pass-through Disks
Pass-through disks appear offline to the parent, or root, partition, so they will not display
in a Hyper-V performance monitor object. To monitor a virtual machine that is using a
pass-through disk, you should use Performance Monitor, and the standard disk counters,
within the guest operating system. If the virtual machine is connected to the same
network as the host, Performance Monitor can remotely access the virtual machine as if
the virtual machine were a physical machine on the network.

Finding Busy Disks


One common configuration scenario is having multiple virtual machines with multiple
virtual disks that are all stored on the same physical disk. Since all of the virtual disks
share a single physical disk, excessive disk activity in one virtual machine could impact
disk performance in the other virtual machines that share the physical disk.
Using the Hyper-V performance counters, we can identify the virtual machine that is
creating a load on the physical disk by loading each Virtual IDE Controller instance into
Performance Monitor and comparing the utilization statistics. Once the virtual machine
that is creating the load on the disk has been identified, Performance Monitor may be
used to further investigate what is occurring in that virtual machine.

Step 1: Add the Virtual IDE Controller counters


Expand the Hyper-V Virtual IDE Controller Performance Monitor object to add the
counters for the IDE controller for each virtual machine. Add the Read Bytes/sec and
Write Bytes/sec counters for each virtual machines IDE controller instance. This will
provide a good overview of the disk activity and identify the activity as either read or
write I/O. Note that you should see one IDE Controller instance for each active virtual
machine, in the format of <VMname>:Ide Controller, where <VMname> is the name of the
virtual machine.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

33

Implementing Hyper-V

FINAL

Step 2: Find the busy disk


After adding the Virtual IDE Controller counters, select all of the counters in the
Reliability and Performance Monitor window using CTRL-A, then right click and select the
Scale Selected Counters context menu item. This is necessary to make the counters
easier to see within the Performance Monitor window since the values reported by these
counters are in bytes. We are interested in the value of each counter so it is not as
important to see a graphical representation of the counter value.
Looking at the counter results individually, you should see that one virtual machine is
showing higher values for Read Bytes/sec and Write Bytes/sec when compared to each of
the other virtual machines. This indicates that this virtual machine is performing the most
I/O to the .vhd file and, therefore, to the physical disk that it resides on.
The above example is simplistic but it demonstrates how to use the Hyper-V counters to
monitor virtual disk performance and find the virtual machine that is causing the most
I/O to a physical disk, since the .vhd file for the virtual machine resides on that physical
disk.

Synthetic Storage Devices


The technique for Synthetic Storage Devices and virtual machines using SCSI devices is
essentially the same as the technique for IDE controllers with one exception. For
Synthetic Storage Devices, the instance is named after the .vhd file and not the virtual
machine, so you must narrow down the I/O to a specific .vhd file on a physical disk. Once
this is done, you must use Hyper-V Manager to identify the virtual machine that is using
the SCSI disk by using the .vhd filename.
Important:

When troubleshooting disk performance issues, it is very important to identify and


understand the disk configuration. Since the root partition owns the disks in all cases
except when using a pass-through disk, monitoring the physical disk in the parent
partition will show the cumulative disk activity, including the parent partition disk activity
and the disk activity of all virtual machines that are using the disk.
When using a pass-through disk, it is important to monitor the physical disk on the server
that owns the disk.
To obtain a clear picture of performance data for a virtual machine, it may also be
necessary to use Performance Monitor within the guest operating system, or remotely,
to monitor the standard (non-Hyper-V) performance counters.

34

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Optimizing Virtual Machine Performance


When troubleshooting a performance problem with a virtual machine or just
benchmarking a virtual machine to get an idea of how it is performing, there are three
common pitfalls which prevent users from getting the most out of their virtual machines.
We will discuss the following three pitfalls and resolutions for each:
Running without Integration Services
Hyper-V Manager running during performance tests
Multiple VMConnect windows running during performance tests

Running Without Integration Services


Running a virtual machine without the Integration Services installed is the most common
reason why a virtual machine might not be performing well. This is a common issue as it
is not always clear whether the virtual machine is running with Integration Services
installed and installing them is not requirement to run a virtual machine in Hyper-V.
Another common reason is that for users of Virtual Server, the Integration Services do
much more for virtual machines running in Hyper-V than the Virtual Machine Additions
did for virtual machines running in Virtual Server.
Running the Integration Services improves overall workload performance from ranges of
10% to ranges of 100%, so this is the most important optimization for virtual machines
running in Hyper-V.

Resolution
Install the Integration Services in the virtual machine. There are two easy ways to verify
that the Integration Services are installed:
1. Connect your VHDs / Drives to the Virtual Machine using the virtual SCSI controller. If
your drive shows up in Disk Manager then you know the Integration Services are
installed. The virtual SCSI controller requires VMBus to transfer data from the guest to
the root for processing.
2. Check Device Manager within the virtual machine to see if VMBus is present and
running. The presence of VMBus does not however mean that all of your devices are
running though the Integration Services. VMBUS is a pre-requisite and all devices that
use the Integration Services must go through VMBus. For example if you attach a
Legacy Network Adapter to your VM in Hyper-V manager or via WMI you are running
your network over the emulated path, which is slower than using a Hyper-V network
adapter. Installing the Integration Services will not make a Legacy Network Adapter
perform any better.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

35

Implementing Hyper-V

FINAL

The following screenshot shows an example of where to find the Integration Services
components in Device Manager to verify that they are installed:
Figure 4: Integration Services Devices in Device Manager

Look for VMBus as well as the Hyper-V Data Exchange, Guest Shutdown, Heartbeat, Time
Synchronization, and Volume Shadow Copy devices.

Running Hyper-V Manager During Performance Tests


There is nothing inherently wrong with having Hyper-V Manager running however it
does produce some performance overhead. For example, the thumbnail view
continuously updates when the Hyper-V manager is open. The update is periodic and
requires a read of 4MB+ from the virtual graphics card. This creates a background load
on the system.
Hyper-V manager also polls for each running machines CPU utilization and uptime, also
creating background load on the system.
Both the thumbnail and machine queries are sent to the VMMS (vmms.exe) process from
the Hyper-V manager/WMI which in turn requests data from each running Virtual
Machine MotherBoard (vmwp.exe). This shows that there is a minimum of three
processes involved in getting the machine data and thus the background load.

36

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Using Reliability and Performance Monitor

Recommendation
Either close the Hyper-V manager during performance runs or at least minimize it. When
you minimize the manager it will go idle and stop querying for information. This includes
both Hyper-V managers running on the Hyper-V Server system as well as remote
managers. The best solution is to close the Hyper-V Manager unless you need to use it to
manage a virtual machine.

Running VMConnect Windows During Performance Tests


Another common performance problem is having many Virtual Machine Connection
windows open when performing performance testing. The VMConnect windows are
essentially a console to the system, and these views require painting of the screen and are
active even if you have used Remote Desktop to connect to the virtual machine. Imaging
all of the graphics for VMConnect windows without hardware support is also expensive
on the CPU and performance will be affected.

Recommendation
Close VMConnect windows when doing performance runs or when they are not
absolutely needed. You can run remote processes using psrun.exe from
http://www.sysinternals.com or if you really need interactive control it is better to
connect directly to the virtual machine with Remote Desktop. Doing so can shave a couple
of % off of CPU utilization.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

37

Implementing Hyper-V

FINAL

Examining Known Issues


This lesson describes known Hyper-V issues and discusses potential solutions.

What You Will Learn


After completing this lesson, you will be able to:
Recognize problem symptoms for known issues.
Apply recommended techniques to resolve known issues.

38

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Hypervisor or DEP disabled in BIOS


Problem
When trying to start a virtual machine with the hypervisor or data execute protection
(DEP) disabled in the BIOS you will receive the following error:
Figure 5: Hyper-V Manager Error - Hypervisor Not Running

When this error occurs you will see the following two errors in the Event Viewer in the
Hyper-V-Worker Admin log
Event ID 3040
Event ID 3112
Error details are shown in the following figures.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

39

Implementing Hyper-V

FINAL

Figure 6: Event ID 3040 - VM Failed to Initialize

Figure 7: Event ID 3112 - VM could not start because Hypervisor is not running

40

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Recommended Solution
Boot into the BIOS of the physical machine and enable Hardware Virtualization and
Data Execute Protection. After enabling these settings, power off the machine (do not
just restart), and then restart.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

41

Implementing Hyper-V

FINAL

Attaching multiple virtual machines to the same


physical CD Rom device.
Problem
If you have a VM that is configured to use the physical CD Rom device, and you try to
install another virtual machine using the same physical CD Rom device you will get the
following error message:

When this error occurs you will see the following three errors in Event Viewer in the
Hyper-V-Worker Admin log:
Event ID 12010
Event ID 12030
Event ID 12040
Error details are shown in the following figures.

42

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Figure 8: Event ID 12010 Emulated IDE Controller Failed to Power On

Figure 9: Event ID 12303 VM Failed to Start

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

43

Implementing Hyper-V

FINAL

Figure 10: Event ID 12140 VM Failed to Open Attachment

Recommended Solution
To resolve this issue, detach the physical CD Rom device from one of the virtual machines.

44

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Mouse Not Functioning Correctly During TS Access to


Parent Partition
Problem
Customer needs to access a virtual machine remotely, so they TS into the physical HyperV server, start up the Hyper-V management console, and connect to their VM. Once
connected to the VM the mouse no longer works, so they use the CTRL-ALT-Left Arrow
hotkey to release the mouse to the physical machine. That doesnt work and now they
cannot use the mouse on the physical machine anymore.

Cause
There are two modes of mouse operation when dealing with virtual machines. The two
modes are integrated and relative mode. When connecting to a physical machine in a
terminal server session, the mouse is running in integrated mode. When using a
VMConnect window to control a VM, the mouse runs in relative mode. When mixing
integrated and relative mode, the mouse will give unexpected behavior.

Workarounds
Potential workarounds include the following:
Install the Integration Components for your guest operating system. If you
have the integrated services installed and running, the mouse is running in
integrated mode, and works flawlessly over TS.
TS directly into the guest operating system. If there are no integrated services
available for your chosen guest OS, you can use TS (or any other remote control
application, really) to control the guest directly. This assumes, of course, that the
VM is exposed to the same network as the machine you're controlling it from.
Use the actual, physical console of the host machine. If you take TS out of the
picture, you won't have this problem.
Remote Administration tools for Hyper-V. This provides a way for you to install
the Hyper-V Manager tools on Windows Vista, so you won't actually have to run
them on a server.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

45

Implementing Hyper-V

FINAL

Low Free Disk Space on Physical Machine


Problem
When trying to start VMs, in the State column in the Hyper-V console, the VMs show as
Paused-Critical.

Cause
This problem is most often caused by the physical machine running low on free disk
space.

Recommended Solution
Free up disk space on physical machine hard disk(s) used for Hyper-V storage.

46

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Hyper-V and Forefront Client Security


Problem
On Hyper-V Servers that have Forefront Client Security installed, you are periodically
unable to create or start Virtual Machines.
Virtual Machines fail, during creation or during power on, with the following error :
VMName' Microsoft Synthetic Ethernet Port (Instance ID {7C0DF81A-A7A4-4CDD869F-37702C36D916}): Failed to Power On with Error 'The specified network
resource or device is no longer available.' (0x80070037). (VMID 168C85EF86BC-4AC2-A16B-D3092B99CAB2)

If you use a Legacy NIC, you will get the same error, but the error will refer to the Legacy
NIC Port.
When this error occurs you will see the following event in the Hyper-V-Config Admin log
Figure 11: Event ID 4096 VM Config File Inaccessible

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

47

Implementing Hyper-V

FINAL

You will also see the following two events in the Hyper-V-VMMS Admin log.
Figure 12: Event ID 14140 - Failure to Add Ethernet Port

Figure 13: Event ID 16410 - Cannot Access VM Data Folder

48

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Recommended Solution
Set exclusions for the following directories and files, so that they are not scanned.

Default VM Config Directory

Default VM VHD Directory

Custom VHD Directory

Snapshot Directory

Vmms.exe

Vmwp.exe

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

49

Implementing Hyper-V

FINAL

VMBus Fails to Load (Error Code 10 or 12)


Problem
The easiest way to tell if you have this problem is when you boot a virtual machine that
has the integration services installed, but you still do not have mouse integration. If you
look in device manager under system devices, the VMBus indicates a failing device.
Figure 14: VMBus Device Failure

50

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

In Vista, you will see the following in the VMBus properties.


Figure 15: Vista VMBus Device Properties

In Windows Server 2008, you will see the following in VMBus properties.
Figure 16: Windows Server 2008 VMBus Device Properties

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

51

Implementing Hyper-V

FINAL

Recommended Solution
In order for VMBus and other components necessary for synthetic device support in
Hyper-V to load correctly, the HAL running in the virtual machine must be an APIC HAL.
Windows Vista and Windows Server 2008 have a new boot option to force HAL detection
during boot; however, this option is disabled by default. The easiest way to change this
setting is through the MSCONFIG.exe tool:
1. Run MSCONFIG.exe.
2. Select the Boot tab and then click Advanced.
3. Locate and select the checkbox for Detect HAL.
4. Click OK.
5. Reboot the virtual machine to apply the new setting.

52

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

When you try to enable, disable, or update Hyper-V


technology, the process stops responding
Problem Description
After you enable, disable, or update Hyper-V technology on a Windows Server 2008based computer, the process stops responding. When you try to enable or update HyperV, the computer stalls at "Configuring Updates Stage 3 of 3." In this case, only 54 percent
of the process is completed. When you try to disable Hyper-V, the computer stalls at
"Configuring Updates Stage 3 of 3." In this case, only 75 percent of the process is
completed.
This information is in KB article 950792
Note:

Cause
This problem occurs when the following conditions are true:
You enabled, disabled, or updated Hyper-V on a Hewlett-Packard (HP) server.
The HP Network Configuration Utility was installed

Recommended Solution
To resolve this problem, follow these steps:
1. Shut down the computer.
2. Insert the installation CD for Windows Server 2008, and then start the computer
from the CD.
3. Set your language preference, and then click Next.
4. Click Repair your computer.
5. Select the operating system that you want to repair, and then click Next.

Note:

Note You may have to provide disk controller drivers at this point. Click Load Drivers, and
then enter the location for the disk controller drivers.

6. In the System Recovery Options dialog box, click the operating system that you
want to repair, and then click Next.
7. In the Choose a recovery tool screen, select Command Prompt.
8. At the command prompt, type C: , and then press ENTER.
9. Type cd Program Files\HP\NCU , and then press ENTER.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

53

Implementing Hyper-V

FINAL

10. Type ren cpqteam.dll cpqteam.dll.safe , and then press ENTER.


11. Type exit , and then press ENTER. The System Recovery Options screen is
displayed.
12. Click Restart.
13. When the server restarts, the configuration of Hyper-V automatically continues.
14. When the configuration process is completed, follow these steps: a. Open the
"C:\Program Files\HP\NCU" folder.
b. Rename the Cpqteam.dll.safe file to Cpqteam.dll.

15. Restart the computer.


To prevent this problem, uninstall the HP Network Configuration Utility before you
enable, disable, or update Hyper-V.
More Information:

54

Hyper-V updates will be distributed by using Windows Update. To help prevent


you from experiencing this problem, Windows Update will not present Hyper-V
updates to computers that have the HP Network Configuration Utility installed.
For more information about the prerequisites to install and to update Hyper-V on
HP servers, visit the following Microsoft Web site:
http://www.microsoft.com/windowsserver2008/en/us/hyperv-install.aspx

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

If you sysprep a machine running Hyper-V, the


hypervisor will not launch automatically
Problem Description
When you deploy a sysprepped image of Windows 2008 with Hyper-V, the hypervisor
will not launch automatically when you login to the machine.

Cause
When sysprep is run on a Hyper-V enabled machine, the hypervisor bcd settings get
removed.

Recommended Solution
You must run bcdedit to set the hypervisorlaunchtype to auto.
Bcdedit /set hypervisorlaunchtype AUTO

More Information:

You will also lose any pass-through disks and network switches that were created
in Hyper-V prior to running sysprep. These can be recreated after Hyper-V is
launched.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

55

Implementing Hyper-V

FINAL

Unable to create vhds


Problem Description
When trying to create a new virtual hard drive, or new virtual machine you may receive
the following error:
Figure 17 Cannot create vhd error

In the Hyper-V-Worker admin log you will see the following event:
Figure 18 Hyper-V-Worker/Admin event log entry

Cause
This could happen if the Hyper-V Image Management service is not started.

Recommended Solution
Start the Hyper-V Image Management service, and set the start value to automatic.

56

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Examining Known Issues

Managing Hyper-V using RSAT feature tools does not


work correctly
Problem description
When trying to manage a Hyper-V server from a machine using the Management feature
of the RSAT tools you get the following error message:
Access denied. Unable to establish communication between Server1 and
Server2
Other actions that require communication may appear to work correctly when this
problem exists.

Recommended Solution
1. On the client computer, click Start, click Run, type DCOMCNFG, and then click OK.
2. In the Component Services dialog box, expand Component Services, expand
Computers, and then right-click My Computer and click Properties.
3. In the My Computer Properties dialog box, click the COM Security tab.
4. Under Access Permissions, click Edit Limits.
5. In the Access Permission dialog box, select ANONYMOUS LOGON name in the Group
or user names box. In the Allow column under Permissions for User, select Remote
Access, and then click OK.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

57

Implementing Hyper-V

FINAL

Lab Exercises
There are no lab exercises associated with this module.

58

2008 Microsoft Corporation. All rights reserved.

FINAL

Troubleshooting Hyper-V - Module Review

Module Review
In this module, you learned:
Where Hyper-V logs events.
How to configure Hyper-V for tracing.
How to configure and read performance data for Hyper-V using performance
monitor.
How to recognize known issues with Hyper-V and apply recommended workarounds and
solutions.

Global Technical Readiness


Microsoft Confidential - For Internal Use Only

59

Potrebbero piacerti anche