I05 HyperV TShoot
I05 HyperV TShoot
I05 HyperV TShoot
Troubleshooting Hyper-V
FINAL
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.
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
Lab Exercises......................................................................................................................................... 58
Module Review ..................................................................................................................................... 59
FINAL
Module Overview
This module discusses methods for monitoring Hyper-V operations and performance. It
also provides information for troubleshooting known issues.
Implementing Hyper-V
FINAL
FINAL
Implementing Hyper-V
FINAL
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.
FINAL
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.
Implementing Hyper-V
FINAL
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>
Tracing cannot be enabled on dynamically. After enabling tracing, you must restart the UI
to begin collecting trace data.
FINAL
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
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)
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.
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.
Implementing Hyper-V
FINAL
Parameter
Descxription
<session_name>
<log_file>
<provider>
<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
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
To display tracing messages from an ETL file, run the following command:
FINAL
Note:
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
10
FINAL
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
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
FINAL
13
Implementing Hyper-V
FINAL
14
FINAL
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
15
Implementing Hyper-V
FINAL
Note:
16
FINAL
17
Implementing Hyper-V
FINAL
18
FINAL
Hyper-V VM objects
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
19
Implementing Hyper-V
FINAL
Performance
Monitor Object
Description
Hyper-V
Hypervisor Logical
Processor
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.
20
FINAL
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:
%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.
21
Implementing Hyper-V
FINAL
22
FINAL
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.
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
FINAL
25
Implementing Hyper-V
FINAL
26
Performance Monitor
Object
Description
Hyper-V Virtual
Machine Bus
Hyper-V Virtual
Machine Health
Summary
Hyper-V Virtual
Machine Summary
Hyper-V Virtual
Network Adapter
Hyper-V Virtual
Storage Device
Hyper-V Virtual
Switch
Hyper-V Virtual
Switch Port
FINAL
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
Hyper-V VM Remoting
Hyper-V VM Save,
Snapshot, and Restore
Hyper-V VM Worker
Process Memory Manager
27
Implementing Hyper-V
FINAL
28
FINAL
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.
29
Implementing Hyper-V
FINAL
30
FINAL
31
Implementing Hyper-V
FINAL
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.
32
FINAL
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.
33
Implementing Hyper-V
FINAL
34
FINAL
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.
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.
36
FINAL
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.
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.
37
Implementing Hyper-V
FINAL
38
FINAL
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.
39
Implementing Hyper-V
FINAL
Figure 7: Event ID 3112 - VM could not start because Hypervisor is not running
40
FINAL
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.
41
Implementing Hyper-V
FINAL
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
FINAL
43
Implementing Hyper-V
FINAL
Recommended Solution
To resolve this issue, detach the physical CD Rom device from one of the virtual machines.
44
FINAL
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.
45
Implementing Hyper-V
FINAL
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
FINAL
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
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
48
FINAL
Recommended Solution
Set exclusions for the following directories and files, so that they are not scanned.
Snapshot Directory
Vmms.exe
Vmwp.exe
49
Implementing Hyper-V
FINAL
50
FINAL
In Windows Server 2008, you will see the following in VMBus properties.
Figure 16: Windows Server 2008 VMBus Device Properties
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
FINAL
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.
53
Implementing Hyper-V
FINAL
54
FINAL
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.
55
Implementing Hyper-V
FINAL
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
FINAL
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.
57
Implementing Hyper-V
FINAL
Lab Exercises
There are no lab exercises associated with this module.
58
FINAL
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.
59