page hit counter
Welcome to MSDN Blogs Sign in | Join | Help

Taylor Brown's Blog

Test Lead for Windows Core OS Division on the Hyper-V Team.

Syndication

News

Welcome to the professional blog of Taylor Brown.  I am a test lead on the core virtualization team (Hyper-V) at Microsoft.

This blog will contain information about virtualization, Microsoft, Hyper-V, operating systems, testing, and whatever else I end up talking about...

 

Standard Microsoft Disclaimer:
"This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use."

-Taylor Brown


Attaching Passthough Disks Via WMI (SCSI or IDE)

So you want to use passthough disks with Hyper-V cool – but how do you script attaching them?  Well here’s your answer…  But first you need to decide if you are going to attach them to the virtual IDE controller or the virtual SCSI controller.  The IDE controller is ideal if you plan to boot from the passthough disk or if your guest doesn’t support the virtual SCSI adapter (Linux), the SCSI controller is ideal if you want to add/remove storage from the virtual machine while it’s running (feature of Hyper-V R2) or if you have more than 4 disks you want to add.  Attaching to SCSI or IDE is pretty similar – there are really only 1 difference I bolded it on both scripts below you just have to select the correct controller.  Other than that you can either use the physical disk number for disk manager (not too bad) or if you provide a LUN ID when you create the storage (in the case of a SAN) you can use that which can be a bit more deterministic.  Either way enjoy!

 

Attaching Passthrough Disk To IDE Controller

$HyperVGuest = "Passthough Demo"

$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization"
$Vm = Get-WmiObject -Namespace "root\virtualization" -Query "Select * From Msvm_ComputerSystem Where ElementName='$HyperVGuest'"

$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState"


$VmIdeController = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" |`
                       
where-object {$_.ResourceSubType -eq "Microsoft Emulated IDE Controller" -and $_.Address -eq 0
}) 
 
$DiskAllocationSetting = Get-WmiObject -Namespace "root\virtualization" -Query "SELECT * FROM Msvm_AllocationCapabilities WHERE ResourceSubType = 'Microsoft Physical Disk Drive'"
$DefaultHardDisk = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$DiskAllocationSetting} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_SettingsDefineCapabilities" | `
                       
where-object {$_.InstanceID -like "*Default"})

                       
$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where DriveNumber=2"
#$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where ElementName Like '%Lun 200%'"

$DefaultHardDisk.Parent = $VmIdeController.__Path
$DefaultHardDisk.Address = 0
$DefaultHardDisk.HostResource = $Disk.__PATH

$VMManagementService.AddVirtualSystemResources($VM, $DefaultHardDisk.PSBase.GetText(1)) | ProcessWMIJob $VMManagementService "AddVirtualSystemResources"

Attaching Passthrough Disk To SCSI Controller

$HyperVGuest = "Passthough Demo"

$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization"
$Vm = Get-WmiObject -Namespace "root\virtualization" -Query "Select * From Msvm_ComputerSystem Where ElementName='$HyperVGuest'"

$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState"


$VmScsiController = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" | `
                         where-object {$_.ElementName -eq "SCSI Controller"})

$DiskAllocationSetting = Get-WmiObject -Namespace "root\virtualization" -Query "SELECT * FROM Msvm_AllocationCapabilities WHERE ResourceSubType = 'Microsoft Physical Disk Drive'"

$DefaultHardDisk = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$DiskAllocationSetting} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_SettingsDefineCapabilities" | `
                        where-object {$_.InstanceID -like "*Default"})                   

$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where DriveNumber=2"

#$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where ElementName Like '%Lun 200%'"

$DefaultHardDisk.Parent = $VmScsiController.__Path

$DefaultHardDisk.Address = 0
$DefaultHardDisk.HostResource = $Disk.__PATH

$VMManagementService.AddVirtualSystemResources($VM, $DefaultHardDisk.PSBase.GetText(1)) | ProcessWMIJob $VMManagementService "AddVirtualSystemResources"

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Friday, October 16, 2009 1:06 PM by taylorb | 0 Comments

Recommend Hotfixes For System Center Virtual Machine Manager (SCVMM)

If your running System Center Virtual Machine Manager (SCVMM) you should take a look at KB 962941.  The KB describes and links to all of the recommended Windows hotfixes, SCVMM hotfixes and Hyper-V server hotfixes that are important for SCVMM functionality.

KB Article Link:  http://support.microsoft.com/kb/962941

 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, April 13, 2009 2:00 PM by taylorb | 0 Comments

Hyper-V: Background Merging of AVHD’s… When’s it done?

image

I think it might be best to start at ground zero with this topic and explain what a snapshot really is and how it work’s (if you already know skip a head…).  Hyper-V introduced a new feature called a snapshot – snapshots allow you to capture and save the point in time state of a running or saved virtual machine and then go back to that state at a latter point in time.  For example you can have a Windows XP RTM virtual machine running take a snapshot, install SP1, take a snapshot and install SP2 and then latter revert back to the SP1 snapshot and either discard the SP2 installation or keep it around so you can apply that state latter.  Snapshot’s are pretty handing in this regard – you can create pretty extensive tree’s of snapshots and you can rapidly apply specific states to virtual machines.  Under the covers snapshots primarily use a technology that was implemented back in the pre-Microsoft days of Virtual PC called differencing VHD’s.  What a differencing VHD effectively does is point back to a parent VHD for it’s data but any updates made to the VHD reside in the new differencing VHD and subsequent requests for that same data will be overridden by the child differencing VHD.  These parent child relationships can get many levels deep and a parent can have many children – however if a parent is ever modified it’s children's state is now invalid since the child was unaware of the changes.  So back to snapshots – when a snapshot is taken we create a new differencing disk to point the virtual machine to and we call it an AVHD or automatic VHD since it was created automatically by requesting the snapshot – at the same time we will save off the virtual machines running state if it’s running including it’s memory state and it’s device state (network adapter IP etc…).  When you revert back to a previous snapshot you reload the memory and device state and the VM is pointed at a new AVHD from the parent of that time.  And that’s snapshots in a nut shell…

OK now back to topic at hand – when you delete a snapshot the next time the virtual machine is off or saved we will merge the AVHD created by the snapshot back into it’s respective parent…  We do this automatically and in the background – so lets say you wanted to know when it’s was done programmatically…  It’s not too hard just run the following query to see if any merges are going on presently - PS C:\> Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_ConcreteJob" | Where {$_.ElementName - eq 'Merge in Progress'}.  Below you can see the full output of that query when a merge is occurring.  Hope this helps!

 

PS C:\> Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_ConcreteJob" | Where {$_.ElementName -eq 'Merge in Progress'}

__GENUS                 : 2
__CLASS                 : Msvm_ConcreteJob
__SUPERCLASS            : CIM_ConcreteJob
__DYNASTY               : CIM_ManagedElement
__RELPATH               : Msvm_ConcreteJob.InstanceID="E3675DEB-A13C-440D-AEAD-B6CEB5ADF1D7"
__PROPERTY_COUNT        : 36
__DERIVATION            : {CIM_ConcreteJob, CIM_Job, CIM_LogicalElement, CIM_ManagedSystemElement...}
__SERVER                : TAYLORB
__NAMESPACE             : root\virtualization
__PATH                  : \\TAYLORB\root\virtualization:Msvm_ConcreteJob.InstanceID="E3675DEB-A13C-440D-AEAD-B6CEB5ADF1D7"
Cancellable             : True
Caption                 : Merge in Progress
DeleteOnCompletion      : False
Description             : Merge in Progress
ElapsedTime             : 00000000000000.000000:000
ElementName             : Merge in Progress
ErrorCode               : 0
ErrorDescription        :
ErrorSummaryDescription :
HealthState             : 0
InstallDate             : 16010101000000.000000-000
InstanceID              : E3675DEB-A13C-440D-AEAD-B6CEB5ADF1D7
JobRunTimes             : 1
JobState                : 4
JobStatus               :
LocalOrUtcTime          : 2
Name                    : Merge in Progress
Notify                  :
OperationalStatus       : {0, 0, 0}
OtherRecoveryAction     :
Owner                   :
PercentComplete         : 13                          <----Percent Complete
Priority                : 0
RecoveryAction          : 0
RunDay                  : 0
RunDayOfWeek            : 0
RunMonth                : 0
RunStartInterval        : 00000000000000.000000:000
ScheduledStartTime      : 16010101000000.000000-000
StartTime               : 16010101000000.000000-000
Status                  :
StatusDescriptions      : {, , }
TimeBeforeRemoval       : 00000000000500.000000:000
TimeOfLastStateChange   : 20090309234922.000000-000
TimeSubmitted           : 16010101000000.000000-000
UntilTime               : 16010101000000.000000-000

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Tuesday, March 10, 2009 6:10 PM by taylorb | 1 Comments

Filed under: ,

Performance Smack Down - Hyper-V vs. VMware vs. Citrix

Virtualization Review posted the results of a performance shootout between Microsoft Hyper-V, VMware ESX, and Citrix XenServer…  The launched three tests against the various platforms.  First was a small number of heavy workload systems,  one database server running a midsize database and six VMs with heavy workload of CPU and memory.  Second - was a large number of heavy workload systems, with one database server running a midsize database and twelve VMs with heavy workload of CPU, memory and disk IO.  Third – was a large number of light workload systems, with one database server running a midsize database and twelve VMs running a light CPU, memory and disk IO.

Take a look at the full article – it has a bunch of raw performance data and is definitely worth at least a quick read.  Full Article: http://virtualizationreview.com/features/article.aspx?editorialsid=2641

Quotes:
Hyper-V was the first product compared, and it performed quite differently from expectations. Hyper-V has been a focus of Microsoft dev efforts, and it shows. Overall, Hyper-V did well in this comparison and proved itself a worthy product.”

“In our tests, Hyper-V did well in all categories-it's a real, viable competitor for the competition. Table 2 shows Hyper-V's comparative performance.”

“After doing these comparisons of ESX to Hyper-V and XenServer, it's clear that at the hypervisor level, ESX is optimized for a large number of less-intensive workload VMs. For intensive workloads that may not be optimized for memory overcommit apps, Hyper-V and XenServer should definitely be considered-even if that means adding another hypervisor into the data center.

 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, March 09, 2009 3:35 PM by taylorb | 1 Comments

Filed under: ,

Hyper-V VMMS Certificate Expiration Problem and Resolution

In the coming days/weeks some of you may see some new errors from Hyper-V.  The first is an error when you try and use VMConnect or SCVMM to connect to a running virtual machine – the error is “Cannot connect to the virtual machine because the authentication certificate is expired or invalid. Would you like to try connecting again?”.  The second is an error when trying to start or resume saved virtual machine – the error is “'VMName' failed to initialize. Could not initialize machine remoting system. Error: ‘Unspecified error’ (0x80004005). Could not find a usable certificate. Error: ‘Unspecified error’ (0x80004005).

This issue is fully described in KB967902 as well as a link to the HotFix. Bryon Surace also posted this on the Windows Server Blog.

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Tuesday, March 03, 2009 10:30 PM by taylorb | 1 Comments

Filed under: , ,

How Are My VHD’s/Passthough Disk’s Connected To My Virtual Machine?

Updated 2/23 – Added VHD File Size and Fixed a Few Bugs.

This is a follow up on my previous post on Hyper-V WMI: What VHD’s/Physical Disks Are Associated With a Virtual Machine?.  I had been getting questions about how to better identify what disks are connected to what bus location/controller.  Specifically I have been getting a lot of questions about how back up or copy just the VHD that the guest sees as drive letter C or D etc… I wrote a revised script that gives a bit more information specifically the controller addresses and the Instance ID of the controller.  The reason that’s interesting is that you can determine that the C volume is on Disk Number 1 and that Disk Number 1 is connected to IDE Port 0/1 and on the parent you know that IDE Port 0/1 is backed by S:\vhds\foo.vhd well then you know what to backup…  So what about SCSI controller’s?  Well they are a bit more challenging but not to much – if you look at the PNP ID of the controller its VMBUS\<GUID> where the GUID is the same as the first GUID in the WMI instance id for the controller on the management OS (take a look at the screen capture below).  Hopefully this is helpful – Enjoy!

Here’s the Script:

$HyperVParent = "localhost" 
$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization" -ComputerName $HyperVParent

foreach ($vm in Get-WmiObject -Namespace root\virtualization -Query "Select * From Msvm_ComputerSystem where Description='Microsoft Virtual Machine'" -ComputerName $HyperVParent)
{    
$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState" -ComputerName $HyperVParent 
   
$VirtualDiskResource = Get-WmiObject -Namespace "root\virtualization" `
       
-Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" `
       
-ComputerName $HyperVParent | Where-Object { $_.ResourceSubType -match "Microsoft Virtual Hard Disk" }
   
   
$PhysicalDiskResource = Get-WmiObject -Namespace "root\virtualization" `
       
-Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" `
       
-ComputerName $HyperVParent | Where-Object { $_.ResourceSubType -match "Microsoft Physical Disk Drive" }
       
   
if ($VirtualDiskResource -ne $null)
    {
       
Write-Host "VHD Connections: "
       
foreach ($i in $VirtualDiskResource)
        {
           
Write-Host " Virtual Hard Disk At: " ([WMI]$i).Connection[0]
           
Write-Host " Virtual Hard Disk VHD Size: " (get-item ([WMI]$i).Connection[0]).Length
           
Write-Host " Virtual Hard Disk Connected To: " ([WMI]([WMI]$i.Parent).Parent).ElementName
           
Write-Host " Controller Index: " ([WMI]([WMI]$i.Parent).Parent).Address
           
Write-Host " Controller Instance ID: " ([WMI]([WMI]$i.Parent).Parent).InstanceID
           
Write-Host " Disk Location On Controller: " ([WMI]$i.Parent).Address
           
Write-Host    
        }
    }
   
   
if ($PhysicalDiskResource -ne $null)
    {
       
Write-Host "Physical Disk Connections: "
       
foreach ($i in $PhysicalDiskResource)
        {
           
Write-Host " Passthrough Disk At:" ([WMI]$i.HostResource[0]).ElementName
           
Write-Host " Passthrough Disk Drive Number: " ([WMI]$i.HostResource[0]).DriveNumber
           
Write-Host " Virtual Hard Disk Connected To: " ([WMI]$i.Parent).ElementName
           
Write-Host " Controller Index: " ([WMI]$i.Parent).Address
           
Write-Host " Controller Instance ID: " ([WMI]$i.Parent).InstanceID
           
Write-Host " Disk Location On Controller: " ([WMI]$i).Address
           
Write-Host
        }
    }
}

 

Here’s the Output of the Script:

PS D:\> .\DiskAttachment2.ps1
VHD Connections:
  Virtual Hard Disk At: C:\Users\Public\Documents\Hyper-V\Virtual hard disks\SERVER2008-ENT-64-6001.18000.080118-1840_amd64fre_ServerEnterprise_en-us_VL.vhd
  Virtual Hard Disk Connected To:  IDE Controller 0
  Controller Index:  0
  Controller Instance ID:  Microsoft:4DA5F246-7501-49B3-AE41-B1B5B4FCF57F\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\0
  Disk Location On Controller:  0

  Virtual Hard Disk At: C:\vhd\VHD on Local Storage.vhd
  Virtual Hard Disk Connected To:  IDE Controller 0
  Controller Index:  0
  Controller Instance ID:  Microsoft:4DA5F246-7501-49B3-AE41-B1B5B4FCF57F\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\0
  Disk Location On Controller:  1

  Virtual Hard Disk At: S:\Vhds\VHD on LUN.vhd
  Virtual Hard Disk Connected To:  SCSI Controller
  Controller Index:
  Controller Instance ID:  Microsoft:4DA5F246-7501-49B3-AE41-B1B5B4FCF57F\B090A115-B8E6-4706-BE6C-C8ECDDC4A90B\0
  Disk Location On Controller:  1

  Virtual Hard Disk At: S:\Vhds\Disk on SCSI 2.vhd
  Virtual Hard Disk Connected To:  SCSI Controller
  Controller Index:
  Controller Instance ID:  Microsoft:4DA5F246-7501-49B3-AE41-B1B5B4FCF57F\87617569-E20C-4982-AC44-04A4251C82BA\0
  Disk Location On Controller:  0

Physical Disk Connections:
  Passthrough Disk At: Disk 3
  Passthrough Disk Drive Number:   3
  Virtual Hard Disk Connected To:  SCSI Controller
  Controller Index:
  Controller Instance ID:  Microsoft:4DA5F246-7501-49B3-AE41-B1B5B4FCF57F\B090A115-B8E6-4706-BE6C-C8ECDDC4A90B\0
  Disk Location On Controller:  0

 

Here’s a Screen Capture Of the PNP ID in the Guest:

image

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, February 16, 2009 5:03 PM by taylorb | 1 Comments

Red Hat Support Coming To Hyper-V

Last night Mike Neil posted to the Virtualization Team Blog regarding a new agreement between Microsoft and Red Hat to bring Red Hat guest support to Hyper-V.  Take a look at Mike’s full blog post Microsoft and Red Hat Cooperative Technical Support and/or the Red Hat press release Red Hat Moves to Expand Server Virtualization Interoperability.  Happy day to all..

 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, February 16, 2009 11:43 AM by taylorb | 2 Comments

Microsoft Hyper-V Server 2008 R2 Beta Released

The Microsoft Hyper-V Server 2008 R2 Beta has been posted on the download center along with an overview document and a setup and configuration guide.  Please note that all features, support, configuration etc… is subject to change as this is a beta

image
image

Download Links

Microsoft Hyper-V Server 2008 R2 Beta Download
Microsoft Hyper-V Server 2008 R2 Beta Overview
Microsoft Hyper-V Server 2008 R2 Beta Setup and Configuration Guide

New Features In R2

Failover Clustering: The initial release of Microsoft Hyper-V Server 2008 did not include support for failover clustering.  However, with Microsoft Hyper-V Server 2008 R2 Beta, host clustering technology is included to enable support for unplanned downtime.

Live migration: Microsoft Hyper-V Server 2008 R2 includes support for live migration. Live migration enables customers to move running applications between servers without service interruptions.

Processor and memory support: Microsoft Hyper-V Server 2008 R2 Beta now supports up to 8-socket physical systems and provides support for up to 32-cores.  In addition, Microsoft Hyper-V Server 2008 R2 Beta supports up to 1TB of RAM on a physical system.

Updated Hyper-V Configuration Utility: The Hyper-V Configuration utility is designed to simplify the most common initial configuration tasks.  It helps you configure the initial configuration settings without having to type long command-line strings.  New configuration options have been added for R2 Beta including:
-Remote Management Configuration
-Failover Clustering Configuration
-Additional options for Updates

Virtualization Platform Comparison

The following is an overview comparison of the feature and support set for:
-Microsoft Hyper-V Server 2008
-Microsoft Hyper-V Server 2008 R2 Beta
-Windows Server 2008 R2 Beta (Enterprise and Datacenter Editions)

Capabilities

Microsoft Hyper-V Server 2008

Microsoft Hyper-V Server 2008 R2

Windows Server 2008 R2 EE, DC

Processor Architecture x64 only

Yes

Yes

Yes

Hypervisor-based

Yes

Yes

Yes

Product Type

Standalone product

Standalone product

Operating System

Number of Sockets (Licensing)

Up to 4

Up to 8

Up to 8 = EE | Up to 64 = DC

Number of cores supported by the hypervisor

24 (with QFE)

32

32

Memory

Up to 32 GB

Up to 1 TB

Up to 1TB

VM Migration

None

Quick and live migration

Quick and live  migration (EE & DC)

Administrative UI

Command line, text based configuration utility  and remote GUI management

Command line, text based configuration utility  and remote GUI management

Command line, remote management, and local GUI  (Hyper-V Manager MMC)

Management Existing management tools
Virtualization Rights for Windows Server guests 0 0

EE = 4 VM

DC Edition = unlimited VM per proc

Number of running VM Guests Up to 192, or as many as physical resources allow Up to 256, or as many as physical resources allow Up to 256, or as many as physical resources allow
Storage Direct Attach Storage (DAS): SATA, eSATA, PATA, SAS, SCSI, Firewire, Storage Area Networks (SANs): iSCSI, Fiber Channel, SAS
Planned Guest OS support Windows Server 2008 R2, Windows Server 2008, Windows Server 2003 SP2, Windows 2000 Server, Novell SUSE Linux Enterprise Server 10, Windows 7, Windows Vista SP1 & Windows XP SP3/SP2

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, January 26, 2009 2:53 PM by taylorb | 2 Comments

Hyper-V Backup/Restore QFE Released

If you are backing up your Hyper-V virtual machines using our VSS writer (backing up the physical server) you should be aware of a new Hotfix (KB959962) we released today that addresses three issues. 

Issue 1
If you back up a Hyper-V virtual machine that has multiple volumes, the backup may fail. If you check the VMMS event log after the backup failure occurs, the following event is logged:

Log Name: Microsoft-Windows-Hyper-V-VMMS-Admin
Source: Microsoft-Windows-Hyper-V-VMMS
Event ID: 10104
Level: Error
Description:
Failed to revert to VSS snapshot on one or more virtual hard disks of the virtual machine '%1'. (Virtual machine ID %2)

Issue 2
The Microsoft Hyper-V VSS Writer may enter an unstable state if a backup of the Hyper-V virtual machine fails. If you run the vssadmin list writers command, the Microsoft Hyper-V VSS Writer is not listed. To return the Microsoft Hyper-V VSS Writer to a stable state, the Hyper-V Virtual Machine Management service must be restarted.

Issue 3
You cannot restore a Hyper-V virtual machine if the virtual machine was configured to use a legacy network adapter.

You can review the KB article and download the fix at http://support.microsoft.com/default.aspx?scid=kb;EN-US;959962.

 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Friday, January 16, 2009 1:02 PM by taylorb | 2 Comments

Filed under:

Hyper-V V2: Guest Only External Networks + Add Roles Wizard Changes

The Hyper-V best practice in traditional production environments is that any physical network interface used by guest virtual machines is dedicated and isolated to guest only traffic and not shared with the management operating system (host).  This recommendation was made for several reasons – security is the primary reason since virtual machines are considered less trusted than the management partition isolating the network traffic reduces the risk that a malicious guest could take advantage of a remote security exploit to take over the physical machine.  Following this practice also reduces the risk of a guest virtual machine saturating the network preventing the server administrator from being able to log onto the physical machine and take appropriate action.  In Server 2008 (Hyper-V V1) you accomplished this by unbinding TCP (as well as any other network protocol) on the virtual adapter exposed by Hyper-V – in Server 2008 R2 we have added a new feature which be default does not create the virtual adapter on the management partition (of course there’s an option to have it the old way).  In addition this functionality was pushed into the Add Roles Wizard when you create your first virtual network.  Here’s some screen captures to illustrate.

Server 2008 (V1) Server 2008 R2 (V2)
One Physical Interface
Server 2008 R2 (V2)
Two Physical Interfaces
Add Role Wizard – Virtual Network Page
image
Add Role Wizard – Virtual Network Page
image
Add Role Wizard – Virtual Network Page
image
Allows the creation of a new virtual network at install time even if the server has only one network interface.
When there is only one physical interface the ability to create a new virtual network at install time is disabled – you can create a new network post install.
When there are two or more interfaces you can select the interface(s) for which you want virtual networks created – you must leave at least one interface unchecked.
Hyper-V Virtual Network Manager Post Role Install
image
Hyper-V Virtual Network Manager Post Role Install
image
Hyper-V Virtual Network Manager Post Role Install
image
Post install the virtual network is created and bound to the physical interface.
No virtual network is created – however you can now create an interface which can/should be shared with the management partition/operating system.
Post install a new virtual network is created and bound to the physical interface but no virtual interface is exposed to the management partition/operating system.
Network Connections On The Host
image
Network Connections On The Host
image
Network Connections On The Host
image
You can see both the physical and virtual adapters are available – the physical interface will only have the Microsoft Virtual Network Switch Protocol bound to it and the virtual interface will have TCP and other network services bound. Since there are no virtual networks created by default you don’t have any virtual interfaces exposed and the physical interface is not bound to the Microsoft Virtual Network Switch Protocol. There are still just two interfaces on the management partition/operating system both are physical (the fact that one is disconnected is because it really is disconnected on my server).
  Hyper-V Virtual Network Manager Creating a New Shared Virtual Network
image
 
  When creating a new virtual network checking the “Allow management operating system to share this network adapter” checkbox will create a new virtual interface on the management partition/operating system.  
  Network Connections On The Host
image
 
A new virtual interface is created - the physical interface will only have the Microsoft Virtual Network Switch Protocol bound to it and the virtual interface will have TCP and other network services bound.  

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, January 12, 2009 5:29 PM by taylorb | 2 Comments

Windows Server 2008 R2 Beta Download Public

Ok the Windows Server 2008 R2 Beta is now available for public download…

Take a look at http://www.microsoft.com/windowsserver2008/en/us/R2-Beta.aspx for all of the information.  Or here’s the direct link to the download: http://www.microsoft.com/downloads/details.aspx?FamilyID=85cfe4c9-34de-477c-b5ca-75edae3d57c5&DisplayLang=en.

 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Friday, January 09, 2009 3:40 PM by taylorb | 1 Comments

Performance Issues With Some Graphic Cards and Hyper-V

If you are using Hyper-V on a workstation machine with a high-end or consumer graphics card you may have noticed some performance problems such as short hangs or glitches especially when running graphically intense workloads.  The reason for this comes down to part of how high end graphic cards accomplish there performance conflicting with part of how Hyper-V accomplishes our performance – it’s comes down to high TLB (translation lookaside buffer) flushes

There is a KB published regarding this issue at http://support.microsoft.com/kb/961661 if you want to read more about it.

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Friday, January 09, 2009 12:17 AM by taylorb | 1 Comments

Filed under:

Windows Server 2008 R2 Beta… Ohh and Windows 7 too…

imageUnless you’ve been under a rock all day you know that Windows 7 Beta was announced and released last night – along with Windows 7 Beta we also announced and released Server 2008 R2 (formally known as Windows 7 Server).  If you have an MSDN subscription you can download the new hotness right now – just go to the subscriber downloads section.  Apparently the build will be available to everyone as early as tomorrow – however I haven’t heard for sure yet…

 

New Hyper-V features include (not limited to): Live Migration, Improved Power Management (Core Parking/Timer Coalescing), Hot-Add/Remove of SCSI Disks, Native VHD Integration (Diskmgr/Diskpart can create/mount VHDs), Jumbo Frame Support, Performance Improvements, Deducted Guest External Networks, 32 Core Support and there are more that I am forgetting I am sure…  I should say this is beta – these features are subject to change.  Over the next month of so I as well as many others around the team will be posting information about new features and how they are used so look forward to that… For now I am just happy that you all get to play with Windows 7 (which btw ROCKs – I love it) and Server 2008 R2 w/Hyper-V…

 

image 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Thursday, January 08, 2009 11:58 AM by taylorb | 2 Comments

VHD Servicing Tool 2.0

About a month ago I posted about the VHD Servicing tool (Offline Virtual Machine Servicing Tool).  Version 2.0 of that tool was made available on December 5th – among other things this version adds support for Hyper-V (a definite plus).

 

Offline Virtual Machine Servicing Tool 2.0

Brief Description

This Solution Accelerator provides automated tools and guidance that IT professionals can use to update offline virtual machines efficiently and without exposing them to security risks.

Overview

The Offline Virtual Machine Servicing Tool 2.0 helps organizations maintain virtual machines that are stored offline in a Microsoft® System Center Virtual Machine Manager library. While stored, virtual machines do not receive operating system updates. The tool provides a way to keep offline virtual machines up-to-date so that bringing a virtual machine online does not introduce vulnerabilities into the organization’s IT infrastructure.
The Offline Virtual Machine Servicing Tool combines the Windows Workflow programming model with the Windows PowerShell™ interface to bring groups of virtual machines online just long enough for them to receive updates from either System Center Configuration Manager 2007 or Windows Server Update Services. As soon as the virtual machines are up-to-date, the tool returns them to the offline state in the Virtual Machine Manager library.
This Solution Accelerator includes the following components:

  • Brief Overview. Available online only on Microsoft TechNet. Summary for business and technical managers that briefly explains how this Solution Accelerator can fit into an organization’s IT infrastructure management strategy.
  • OfflineVMServicing_x64 and OfflineVMServicing_x86. Setup files for the tool, for 64 bit and 32 bit versions on Microsoft® System Center Virtual Machine Manager (VMM) 2007 or 2008.
  • Offline Virtual Machine Servicing Tool Getting Started Guide. Provides information about how the tool works, explains prerequisites for the tool, and describes how to install and configure the tool.
  • Offline_VM_Servicing_Tool_2.0_Release_Notes.rtf. Notes provide information about this release, describe known issues in the tool, and include feedback instructions.
  • Offline_Virtual_Machine_Servicing_Tool_Help. Help file for the tool. Provides instructions for using the tool.

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Tuesday, January 06, 2009 9:00 AM by taylorb | 1 Comments

VBScript Versions of The KVP Scripts

Ben Armstrong (aka Virtual PC Guy) posted some great VBScript and PowerShell KVP scripts.  These are a great edition to some of my earlier scripts (Adding Host KVP's, Adding Guest KVP's, Modifying KVP’s).  Check them out if your looking for more samples.

Sending data from parent to virtual machine via KVP

Enumerating parent KVP data

 

Taylor Brown
Hyper-V Integration Test Lead
http://blogs.msdn.com/taylorb

clip_image001

Posted Monday, January 05, 2009 10:00 AM by taylorb | 0 Comments

Filed under: ,

More Posts Next page »
Page view tracker