Welcome to TechNet Blogs Sign in | Join | Help

Windows Virtualization Team Blog

The Microsoft Windows Virtualization Product Group Team Blog

Unattended Installation of Windows Server 2008 with Hyper-V RC0

I am taking a quick break from the WMI PowerShell scripts while I take a short Mothers Day vacation, more WMI scripts when I get back! Unattended Hyper-V installation has been one of the most read TechNet forum posts I wrote and it also seems that a lot of people where doing the installation wrong.  This sample was generated using Windows Automated Installation Kit (AIK), this is a tool that allows you to build unattened xml files for Windows 6.0 OS’s (Vista and Server).

Make sure you update the path to the update cab file.  To extract the cab file download the RC0 update from the Microsoft Download Center then run expand -f:* Windows6.0-KB949219-x64.msu <folderToExtractTo>.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <servicing>
        <package action="install" permanence="permanent">
            <assemblyIdentity name="Package_for_KB949219" version="6.0.1.2" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" />
<source location="<PathToUpdateCab>\Windows6.0-KB949219-x64.cab" />
        </package>
        <package action="configure">
            <assemblyIdentity name="Microsoft-Windows-Foundation-Package" version="6.0.6001.18000" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="" />
            <selection name="Microsoft-Hyper-V" state="true" />
            <selection name="Microsoft-Hyper-V-Management-Clients" state="true" />
        </package>
    </servicing>
</unattend>

 

Have a great Mothers Day weekend!!!  And remember every mom needs a copy of Windows Server with Hyper-V RC0 pre-installed, seriously odds are pretty good flowers are a better Mothers Day gift. :-)

-Taylor Brown
-Hyper-V Test Lead

by Taylorb | 1 Comments

Filed under:

Hyper-V WMI Using PowerShell Scripts – Part 3

In part 1 we went over basic scripts and tools for gathering some generic information about virtual machines and in part 2 we went over VHD creation and WMI job’s.  In part 3 I am going to cover getting more detailed information about a guest operating system by using the KVP Exchange integration component.  KVP stands for Key Value Pair this is a service that runs in the guest operating system and allows some limited information to be passed from the guest to the host or parent and vice-verse.  For now we are going to focus only on the intrinsic KVP’s these are provided by default on virtual machines that have the integration components installed.  The intrinsic KVP’s include: FullyQualifiedDomainName, OsName, OsVersion, CSDVersion, OsMajorVersion, OsMinorVersion, OsBuildNumber, OsPlatformID, ServicePackMajor, SuiteMask, ProductType, ProcessorArhitecture.

I’ll start with the PowerShell script and results and then explain how to decipher each of the KVP’s values but first I want to thank Ed one of our top notch developers that provided me this script...

In the gray box is the body of the script, it’s a bit different then what we have seen in the past primarily because is what looks like a function at the top.  This function looking thing is a PowerShell filter, what the filter does is take a bunch of XML known in WMI as an “embedded instance" and converts it into objects.  If you want to see the XML in it’s raw form remove the "|Import-CimXml” from the last line of the script and you’ll see how handy this little filter is.

So what’s happening in this script?  I will ignore the filter for a moment so the first line is the the $Vm = Get-Wmi… So the first line should look pretty common now, we are getting a Msvm_ComputerSystem WMI object for a given virtual machine “Server 2008 – Test1".  The second line is new, we are running an Association query to get a Msvm_KvpExchangeCompoents WMI object for this VM, associations are an optimization in WMI you can think of them like a SQL join statement “Please give me all of the X that corresponds to Y”.  The third line is just taking the GuestIntrinsicExchangeItems property of the Msvm_KvpExchangeCompoents and piping or sending it (that’s the | character) to the Import-CimXml filter that’s written above.  Now for the filter, so all this filter is doing is using an XML xpath query to go over each “Instance/Property” node and adding it’s name and value to this CimObj object and then returning that object…

WMIKVP.ps1 PowerShell Script

filter Import-CimXml
{
    $CimXml = [Xml]$_
    $CimObj = New-Object -TypeName System.Object
    foreach ($CimProperty in $CimXml.SelectNodes("/INSTANCE/PROPERTY"))
    {
        $CimObj | Add-Member -MemberType NoteProperty -Name $CimProperty.NAME -Value $CimProperty.VALUE
    }
    $CimObj
}

$Vm = Get-WmiObject -Namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='Server 2008 - Test1'"
$Kvp = Get-WmiObject -Namespace root\virtualization -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_KvpExchangeComponent"


$Kvp.GuestIntrinsicExchangeItems | Import-CimXml

 

Output of the WMIKVP.ps1 Script

PS C:\> . 'D:\BlogsDemo\powerShell\Demo\WMIKVP.ps1'

Caption     :
Data        : AUTOBVT-M02LJSS
Description :
ElementName :
Name        : FullyQualifiedDomainName
Source      : 2

Caption     :
Data        : Windows Server (R) 2008 Enterprise
Description :
ElementName :
Name        : OSName
Source      : 2

Caption     :
Data        : 6.0.6001
Description :
ElementName :
Name        : OSVersion
Source      : 2

Caption     :
Data        : Service Pack 1
Description :
ElementName :
Name        : CSDVersion
Source      : 2

Caption     :
Data        : 6
Description :
ElementName :
Name        : OSMajorVersion
Source      : 2

Caption     :
Data        : 0
Description :
ElementName :
Name        : OSMinorVersion
Source      : 2

Caption     :
Data        : 6001
Description :
ElementName :
Name        : OSBuildNumber
Source      : 2

Caption     :
Data        : 2
Description :
ElementName :
Name        : OSPlatformId
Source      : 2

Caption     :
Data        : 1
Description :
ElementName :
Name        : ServicePackMajor
Source      : 2

Caption     :
Data        : 0
Description :
ElementName :
Name        : ServicePackMinor
Source      : 2

Caption     :
Data        : 274
Description :
ElementName :
Name        : SuiteMask
Source      : 2

Caption     :
Data        : 3
Description :
ElementName :
Name        : ProductType
Source      : 2

Caption     :
Data        : 9
Description :
ElementName :
Name        : ProcessorArchitecture
Source      : 2

Ok now how do you decipher all of these values like SuiteMask?   All of this data except the fully qualified domain name come from a Windows API GetVersionEx but what you really want to look at is the OSVERSIONINFOEX structure.  That documents each of these values, for example SuiteMask has a value of 274 above that's 0x112 and according to the documents that means this guest has: Remote Desktop support, Terminal Services is installed, and it's running an Enterprise SKU of Windows... 

There's a lot more you can do with the KVP's such as pushing custom data into the guest from the parent partition/host or providing data from the guest so that the parent partition/host can query it.  I can provide samples for this in a future post but only if you want me to - so tell me, actually tell me what posts you want maybe networking or offline vhd servicing or maybe import/export?

--Taylor Brown
--Hyper-V test team

by Taylorb | 2 Comments

Filed under: ,

Hyper-V WMI Using PowerShell Scripts – Part 2

In part 1 we went over some basic scripts and tools for gathering information about running virtual machines.  In part 2 I am going to cover two things, first basic VHD creation and second determining if Hyper-V WMI methods are succeeding or failing and what the error message is.

PowerShellPlus

Last time I showed the PowerShell 2.0CTP which includes the Graphical PowerShell interface… Those of you that plan to do a lot PowerShell development might want to check out PowerShellPlus (http://www.powershell.com/index.html).  It’s a $79 investment if you are using it for commercial use, but there is a 30 day trial – 1 day down and so far I think it’s worth $79…  As you can see from the screen capture below the editor offers auto-complete as well as a pretty good debugger.

PowerShellPlus

Creating a VHD Using PowerShell WMI

Creating a VHD using the Hyper-V WMI is pretty easy… And once again PowerShell makes it even easier… 

The first command retrieves a WMI object for Msvm_ImageManagmentService

The second command executes the CreateDynamicVirtualHardDisk method to create a new dynamic VHD.  PowerShell is smart enough to know that 20GB = 20 * 1073741824... That’s so COOL!.

PS D:\> $VHDService = get-wmiobject -class "Msvm_ImageManagementService" -namespace "root\virtualization"
PS D:\> $VHDService.CreateDynamicVirtualHardDisk("D:\vhds\TestVhd1.vhd", 20GB)

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
Job              : \\TAYLORB-DP490\root\virtualization:Msvm_StorageJob.InstanceID='Microsoft:Msvm_{B5A1A0EC-6A86-4CB0-AF7A-B336CBA2DCFF}'
ReturnValue      : 4096

Finding Out If Your VHD Creation Succeeded Or Not…

Let’s say you actually want to know if the VHD was created successfully or not (crazy I know…).  Well normally you would just check ReturnValue, but what the heck does 4096 mean?  4096 means that the method is executing asynchronously (in the background) and you need to check it’s Job object to see when it’s finished and if it was successful…

As you can see from the ErrorDescription below my job actually failed since I didn’t delete the VHD between the first and second sample…  Most of the Hyper-V WMI uses these Job objects so this is a pretty handy bit of code to know…

Again the first command just retrieves a WMI object for Msvm_ImageManagmentService.

The second command is mostly the same except for three key parts, first you can see it stores the return object in $Job but the real magic is the [WMI] before the $VHDSer…  What’s happening is your telling PowerShell to make you a PowerShell WMI object for the Job path stored in the Job field. Look at the output from the sample above the Job field is a path to a WMI job object...

The third command is just showing the output of the $Job… You could do $Job.ErrorDesciption if you wanted to just get the ErrorDescription..

PS D:\> $VHDService = get-wmiobject -class "Msvm_ImageManagementService" -namespace "root\virtualization"
PS D:\> $Job = [WMI]$VHDService.CreateDynamicVirtualHardDisk("D:\Users\Public\Documents\Hyper-V\Virtual hard disks\TestVhd1.vhd", 20GB).Job
PS D:\> $Job

__GENUS                 : 2
__CLASS                 : Msvm_StorageJob
__SUPERCLASS            : CIM_ConcreteJob
__DYNASTY               : CIM_ManagedElement
__RELPATH               : Msvm_StorageJob.InstanceID="Microsoft:Msvm_{22FE6994-4CD8-4D06-9F3D-906A23A4BB09}"
__PROPERTY_COUNT        : 43
__DERIVATION            : {CIM_ConcreteJob, CIM_Job, CIM_LogicalElement, CIM_ManagedSystemElement...}
__SERVER                : TAYLORB-DP490
__NAMESPACE             : root\virtualization
__PATH                  : \\TAYLORB-DP490\root\virtualization:Msvm_StorageJob.InstanceID="Microsoft:Msvm_{22FE6994-4CD8-4D06-9F3D-906A23A4B
                          B09}"
Caption                 : Storage Job
Child                   :
DeleteOnCompletion      : True
Description             : Disk Creation Job.
ElapsedTime             : 00000000000000.000000:000
ElementName             : Storage Job
ErrorCode               : 32768
ErrorDescription        : The system failed to create 'D:\Users\Public\Documents\Hyper-V\Virtual hard disks\TestVhd1.vhd' with error 'The f
                          ile exists..' (0x80070050)
ErrorSummaryDescription :
HealthState             : 5
InstallDate             : 00000000000000.000000+000
InstanceID              : Microsoft:Msvm_{22FE6994-4CD8-4D06-9F3D-906A23A4BB09}
JobCompletionStatusCode : 2147942480
JobRunTimes             : 1
JobState                : 10
JobStatus               : Error
LocalOrUtcTime          : 2
Lun                     : 0
Name                    : Msvm_StorageJob
Notify                  :
OperationalStatus       : {2}
OtherRecoveryAction     :
Owner                   :
Parent                  :
PathId                  : 0
PercentComplete         : 0
PortNumber              : 0
Priority                : 0
RecoveryAction          : 3
RunDay                  :
RunDayOfWeek            :
RunMonth                :
RunStartInterval        :
ScheduledStartTime      :
StartTime               :
Status                  : Error
StatusDescriptions      : {Error}
TargetId                : 0
TimeBeforeRemoval       : 00000000000000.000000:000
TimeOfLastStateChange   : 00000000000000.000000+000
TimeSubmitted           :
Type                    : 1
UntilTime               :

 

Well I think that's going to have to do it for tonight… Stay tuned I have A LOT more to show. 

If you prefer the examples in this format tell me, if you prefer the format from yesterday tell me, if you want a different format altogether tell me…

-Good Night and Good Weekend
-Taylor Brown

by Taylorb | 3 Comments

Filed under: ,

Analyst perspectives on Microsoft's Integrated Virtualization strategy & System Center evolution, from MMS 2008

Greetings! My name is Robb Mapp and I’m the analyst relations manager in Server & Tools focused on System Center management tools and Integrated Virtualization. This week at MMS, we had nearly 60 industry analysts participate in a summit focused on strategies for systems management and virtualization. These summits are great for Microsoft, as it gives us an opportunity to truly engage in a productive dialogue with the infrastructure pundits. Two of the attending analysts – Neil Macehiter from Macehiter Ward-Dutton and Mark Bowker from Enterprise Strategy Group – were kind enough to sit down with me to discuss the role of an IT analyst and thoughts around our Integrated Virtualization strategy and our move to manage heterogeneous platforms. Enjoy the videos!

 

by porourke | 1 Comments

Hyper-V WMI Using PowerShell Scripts – Part 1

Hello out there in blog land… This is Taylor Brown some of you may know me from the Virtualization Deployment Summit or from my posts on the TechNet Forums, for those who don’t know me I am a test lead on the Hyper-V team.  One of my team’s responsibilities is validating end-to-end integration of all the different parts of Hyper-V such as networking, storage, user-interface or installation.  We are also responsible for the relationship between you the customer and the rest of the Hyper-V test team. 

Last week I did a demo of some Hyper-V WMI scripts in Powershell and enough people asked for them I figured I'll just post them for everyone…  So without further delay here's part 1.

PowerShell 2.0 CTP – Graphical PowerShell Interface

I highly recommend the PowerShell Graphical Interface that is included in the PowerShell 2.0 CTP. 

You can read more about it and download the installation package at http://www.microsoft.com/technet/scriptcenter/topics/msh/download2.mspx.

It offers a nice tabbed interface and color coding, its a CTP build so it’s far from bug-free but the benefits out way the pitfalls.  You have to uninstall the PowerShell 1.0 Windows update before you can install the CTP build.  I don't think I would install the CTP on your production servers, but the PowerShell scripts are generally compatible.

The biggest downside to this interface for me is that it makes me want more features like auto-complete.

PowerShell20CTP

 

Mapping Worker Process ID's to Virtual Machines

Each virtual machine has it's own worker process (vmwp.exe) instance when it's running.  Some people have asked how they can map worker process to a specific virtual machine so here's the answer... This is also a great example of the power that WMI and PowerShell have with Hyper-V. 

   1: $Vm = Get-WmiObject -Namespace root\virtualization -ComputerName "." `
   2: -Query "Select * From Msvm_ComputerSystem Where ElementName='Server 2008 - Test1'"
   3: $Vm.ProcessID
   4:  
   5: $Vm = Get-WmiObject -Namespace root\virtualization -ComputerName "." `
   6:    -Query "Select * From Msvm_ComputerSystem Where ProcessID=4044"
   7: $Vm.ElementName

Lines 1 and 2 retrieves a WMI object for the virtual machine with the friendly name of 'Server 2008 - Test1'.  Then line 4 outputs the value in the ProcessID field to the console.

Lines 5 and 6 retrieves the same WMI object as lines 1 and 2 did but retrieves it via the process id.  Then line 7 outputs the value in the ElementName (friendly name) of the virtual machine to the console.

Other WMI Properties Of the Msvm_ComputerSystem

msvm_computersystem

One of the best parts about writing scripts in PowerShell over VBScript or JScript is that like a command or batch script you can run commands in the shell window and see the results right away...

In this screen capture I just ran the command from line 1 and 2 above (hint remove the ` and carriage return from the end of line 1 to make the command a single line).

Then I ran $Vm, which is the WMI object I retrieved.  This will output all of the properties that object contains.  Here's the list - stay tuned for later posts and I will talk about what these properties mean.

PS C:\> $Vm = Get-WmiObject -Namespace root\virtualization -ComputerName "." -Query "Select * From Msvm_ComputerSystem Where ElementName='Server 2008 - Test1'"
PS C:\> $Vm

__GENUS                       : 2
__CLASS                       : Msvm_ComputerSystem
__SUPERCLASS                  : CIM_ComputerSystem
__DYNASTY                     : CIM_ManagedElement
__RELPATH                     : Msvm_ComputerSystem.CreationClassName="Msvm_ComputerSystem",Name="A1223A4B-887D-4F01-895E-FBFB636F76D8"
__PROPERTY_COUNT              : 29
__DERIVATION                  : {CIM_ComputerSystem, CIM_System, CIM_EnabledLogicalElement, CIM_LogicalElement...}
__SERVER                      : TAYLORB-DP490
__NAMESPACE                   : root\virtualization
__PATH                        :
\\localhost\root\virtualization:Msvm_ComputerSystem.CreationClassName="Msvm_ComputerSystem",Name="A1223A4B-887D-4F01-895E-FBFB636F76D8"

AssignedNumaNodeList          : {0}
Caption                       : Virtual Machine
CreationClassName             : Msvm_ComputerSystem
Dedicated                     :
Description                   : Microsoft Virtual Machine
ElementName                   : Server 2008 - Test1
EnabledDefault                : 2
EnabledState                  : 2
HealthState                   : 5
IdentifyingDescriptions       :
InstallDate                   : 20080502051703.000000-000
Name                          : A1223A4B-887D-4F01-895E-FBFB636F76D8
NameFormat                    :
OnTimeInMilliseconds          : 3783756
OperationalStatus             : {2}
OtherDedicatedDescriptions    :
OtherEnabledState             :
OtherIdentifyingInfo          :
PowerManagementCapabilities   :
PrimaryOwnerContact           :
PrimaryOwnerName              :
ProcessID                     : 4044
RequestedState                : 12
ResetCapability               : 1
Roles                         :
Status                        :
StatusDescriptions            :
TimeOfLastConfigurationChange : 20080502051707.000000-000
TimeOfLastStateChange         : 20080502051707.000000-000

 

by Taylorb | 1 Comments

Filed under: ,

Rationalizing a Virtual Desktop Architecture

Hi, my name is Manlio Vecchiet, and I am a group product manager in the Windows Server marketing group at Microsoft.

I am on my way back from Interop where I participated in an industry panel about Virtual Desktop Architecture. I was joined by VMware, Citrix and Qumranet. I enjoyed discussing Microsoft’s approach and all the great work we are doing on this scenario.

Just as a level-setting since the taxonomy and terminology is still emerging in the space, Virtual Desktop Architecture was defined as the storage and execution of a desktop workload (OS, apps, data) on a virtual machine in the datacenter and the presentation of the UI via a remote desktop protocol (such as RDP) to user devices such as thin and rich clients. Other terms used in the industry are VDI, server-hosted desktop virtualization and desktop delivery. Yes… we really need to come to some agreement in the industryJ.

First of all, server-based client computing and centralized desktops are of course not new to Microsoft – Windows Terminal Services has been delivering centralized desktops and applications for more than twelve years, and many IT departments today are enjoying the proven benefits of this mature technology.

What is new, however, is the unprecedented interest in server-based client computing, and the availability of a new virtualization infrastructure that creates different technical implementation possibilities. Advances in all forms of virtualization as well as specific business problems, such as ensuring greater levels of data privacy, reducing the cost of desktop management and improving disaster recovery processes, are driving the interest in new models of client computing within the enterprise.

Deciding on the right desktop delivery strategy and the right technologies and tools to implement is not an easy task. Enterprise IT departments need to be able to respond to the various computing needs of their entire user base, and so they have to be able to choose from a full spectrum of client computing options from full rich PCs to thin clients and centralized Windows Vista/XP, and everything in between. There is no “one size fits all” model for optimizing the delivery of a modern enterprise desktop to a broad variety of information workers.

Companies with a centralized desktop strategy effectively have a choice between a terminal server-based architecture and a hypervisor-based (VDI) architecture to deliver data center-hosted enterprise desktops. Terminal services is an integrated part of Windows Server that takes advantage of the multi-user capabilities of the OS allowing IT to create multiple, locked-down user sessions sharing a single image of the server OS. VDI is actually quite similar to terminal services except that a full client environment is virtualized within a server-based hypervisor instead of a light-weight session. In either case, the desktop is accessed by the end user via a remote desktop protocol such as RDP.

While the terminal services model is proven, mature, extremely scalable and cost-effective, not all applications are compatible with the session concept. Furthermore, many users demand higher levels of desktop customizability than terminal services supports. In contrast, with VDI users are able to get a complete desktop experience (including full admin rights), and applications will run just fine as they are running on top of a standard client OS. However, VDI is still an emerging technology which is less scalable, requires more server hardware resources and introduces additional management complexity compared with a terminal services approach.

I should point out here that Microsoft’s offering for VDI includes a management solution with System Center Virtual Machine Manager, which complements Hyper-V as the hypervisor and RDP as the remoting technology for VDI. And for optimal manageability of a virtual desktop, applications can be provisioned and updated either by streaming applications to the virtual desktop on-demand (with Microsoft Application Virtualization), or with the Terminal Services RemoteApp feature which remotes specific applications to the virtual desktop via RDP.

Partners are also building on this infrastructure delivering end to end customer value. While I was speaking in the Interop panel, on the other side of the Las Vegas strip at Microsoft Management Summit, Citrix demoed a version of XenDesktop (their VDI product) running on Hyper-V and SCVMM. I am very excited that, with our Citrix partnership, we can offer a leading end-to-end VDI solution based on the Microsoft Hyper-V infrastructure, with common management for physical and virtual environments alike through the System Center line of products.

Centralized desktops, including virtual desktop architectures have a firm place in the ‘arsenal of weapons’ enterprise IT can choose from to best respond to the needs of specific users. At the same time we probably won’t see large production deployments of virtual desktops until some of the hard problems such as the provisioning of personalized virtual desktop images and the user experience over a remote protocol are addressed. In fact, I believe that Microsoft’s recent acquisition of Calista Technologies is proof that investments into areas such as improving the remote user experience are both necessary and instrumental in accelerating broad adoption of virtual desktops.

Virtual desktop architectures have caught the eye of corporate IT, and for a good reason. The technology is only emerging, and there are still many challenges around implementing and managing a virtual desktop environment. But the promise of VDI is real, and the payoffs of a rationalized implementation are potentially huge. So let’s enjoy the ride!

-Manlio Vecchiet

by porourke | 1 Comments

Application Virtualization and Streaming

I am Gavriella Schuster and I am responsible for the Microsoft Desktop Optimization Pack (MDOP) within the Windows team.  This week I was fortunate enough to participate in a panel discussion at Interop with my peers at Symantec, Citrix, and VMWare discussing the benefits to be gained and pitfalls to be avoided with application virtualization and streaming.

 

It was great to have the opportunity to speak with our industry peers about the technology and to get to know each of them better on a more personal level.  The discussion was focused on driving category awareness to the customers.  Application Virtualization is a fairly new concept and many of the customers came just to understand what it is.  By the show of hands in the audience, about 40% of the customers had plans to do some application virtualization within their environments but only three actually had any level of deployment already. 

 

What was apparent in that session is that our technologies have more similarities than differences  - and the approaches are converging.  I think the panel was a more effective way to highlight the primary uses for application virtualization within an organization and where the customers might find the most benefits of the technology than if we had each given an hour long presentation on our own technologies.  That might be a controversial thing to say – but I think when we each reinforced each others answers it provided a higher level of comfort to our customers that this was not a sales pitch – that it was just a great new technology that solves some of their most common and potentially hairy problems. 

 

That said, I do think Microsoft Application Virtualization (formerly SoftGrid) stands out from the crowd because it offers a full solution.  Our advantage lies in the breadth of the offering we have available.  As part of the Microsoft Desktop Optimization Pack and as part of the System Center family, it offers both the application virtualization, multiple application delivery options inclusive of on-demand delivery via application streaming and a level of integration that makes this experience both seamless to the user and easier for the administrator.  Microsoft Application Virtualization is a clear part of the desktop management story overall within MDOP and it is part of the broader infrastructure optimization solution that Microsoft provides. 

 

Microsoft Application Virtualization offers customers the potential for complete application isolation from both other applications and from the OS, and then through dynamic suite composition also enables the administrator to configure some intercommunications between applications offering the administrator the best of both worlds.  It also offers multiple delivery methods of which application streaming is a component of that capability.  Administrators can choose to distribute the application via application streaming which provides dynamic, on demand delivery in a fraction of the time that it might take to download or even start, in many cases, a traditional application.  Microsoft Application Virtualization also enables a distributed application delivery model that provides both centralized management and policy control as well as local distribution points to stream the applications to the desktops so that it minimizes the user impact in a distributed or branch office architecture.  In addition to streaming delivery Microsoft Application Virtualization also offers the opportunity for the administrator to wrap the virtual application package within an MSI and pre-cache it onto the desktop.  This enables either standalone delivery or delivery through a traditional software distribution (ESD) system.  For customers that are using System Center Configuration Manager for delivery of their physical applications, Microsoft has also enabled the administrator to replace the Microsoft Application Virtualization server with Config Manager and enabled the same level of management and control to deliver an MSI or deliver the application on demand through streaming to the desktops. 

 

Many of our Microsoft customers such as Swedish Medical Center, State of Indiana, Clarian Health Partners, BASF and others have realized the value of this technology in their increased agility, enhanced responsiveness to business needs, enhanced user experience and lower cost of ownership in delivering applications.  Microsoft Application Virtualization is delivered as an integral component of the Microsoft Desktop Optimization Pack, which delivers dynamic desktop solutions: Microsoft® Diagnostics and Recovery Toolset provides tools that help administrators recover PCs that have become unusable and easily identify root causes of system and network issues; Microsoft Asset Inventory Service, translates software inventory into business intelligence; Microsoft Advanced Group Policy Management, enhances Group Policy through governance and change management tools; and Microsoft System Center Desktop Error Monitoring enables proactive problem management by analyzing and reporting on application and system crashes.

 

After this experience, I will seek out more opportunities to continue this type of discussion because I think it provides a lot of value to our customers and is more effective at building our credibility with them when we all sit down together in an open, unscripted discussion. 

 

Gavriella Schuster, senior director, Windows Product Management Group

by porourke | 0 Comments

System Center Virtual Machine Manager 2008 beta has arrived

Hi - this is Hector Linares, I am a Program Manager on the team that built System Center Virtual Machine Manager. I'm happy to report that we released the feature complete public beta of System Center Virtual Machine Manager 2008 (formerly known as vNext) today!

We've heard a lot of great feedback from customers and partners since SCVMM 2007 was released last September which we took into account for this beta release. Let's just say, the product has come a long way.

With this release, Virtual Machine Manager (VMM) 2008 supports managing Virtual Server 2005 R2, Hyper-V and VMware ESX from a single console. Rakesh hit on a few other features and key themes for VMM 2008 here.

Along with Hyper-V and Windows Server 2008 Cluster support, management of VMware ESX environments is an important theme in VMM 2008. VMM enables administrators to manage their virtual environment from a single GUI console and PowerShell interface, including multiple Virtual Center instances and/or multiple hypervisors including ESX, Hyper-V, and Virtual Server. To provide VMware support directly in the console, VMM connects to Virtual Center's public web service APIs to provide support for most day-to-day administrative tasks on VMware, including VMotion. Certain tasks like creating a VMware cluster are still done through Virtual Center directly. Since VMM is designed to co-exist with Virtual Center, any changes performed on Virtual Center will get automatically propagated to VMM, and vice-versa.

Here are two photos sent to me from the Microsoft Management Summit exhibit floor:

But, upon closer inspection it really says...

One of my favorite features in the VMM 2008 release is Performance and Resource Optimization (PRO), which provides integration with System Center Operations Manager 2007 to address alerts from hardware, operating systems and applications allowing for dynamic rebalancing of virtual machine resources using knowledge-based policies and rules.

With deep knowledge of the environment including operating systems, applications and hardware, PRO Packs automatically identifies opportunities for more efficient physical and virtual resource allocation and generates tips within the Virtual Machine Manager 2008 console called PRO Tips.

PRO leverages the Operations Manager framework enabling partners to create products/solutions for our mutual customers by creating specific policies that Virtual Machine Manger, in concert with Operations Manager, is called to act upon, minimizing downtime and accelerating time to resolution.

Partners build a specific management pack that monitors thresholds pertinent to the health of VMs as they relate to their product. Should a threshold be exceeded then the agent reports an alert to Operations Manager. VMM polls Operations Manager for alerts specific to it and, should it find them, imports them as a TIP. Admin then has the option to implement the tip or ignore. In either case the action is sent back to Operations Manager so the console can update the alert.

Example: Operations Manager gets an alert that the CPU on an HP physical host is exceeding utilization threshold. The HP PRO Pack generates a PRO Tip based on that alert and sends it to VMM. Based on HP policies specified in the PRO Pack, the recommended action is to migrate VM workloads to another host to free up resources. The administrator implements the PRO Tip and VMM uses Intelligent Placement to determine the best destination for the virtual machines in the cluster. The VM is migrated to another host and Operations Manager is alerted of the fix and the status returns to green.

  

What’s even better is what customers can do in ESX with SCVMM 2008 that you can’t do with Virtual Center. Included with VMM is a Library that stores all the building blocks of a VM, including ISOs, Virtual Disk files, answer files for sysprep, virtual floppy files, PowerShell scripts, and VM templates. Unlike Virtual Center that requires users to pick a host first before defining the workload, VMM is not limited by the host chosen. VMM on the other hand, allows users to define the workload first (processor count, memory, virtual disks, high availability) and based on those characteristics and performance requirements uses Intelligent Placement to determine the host that is well suited to handle the workload. This feature works across all three supported hypervisors and can be used throughout the lifecycle of the VM, not just during initial placement.  Automation is critical for many administrators to reduce costs in their environments. The VMM GUI console is built completely on PowerShell. Everything a user can do in the UI can be done from the command line. In fact, users only have to know a single set of PowerShell commands for all three hypervisors managed by VMM. No need for pesky “if () else if ()” blocks of code.

 

One key thing to noteMicrosoft offers an incredible value proposition. For a third the cost of VMware, we provide a complete platform and management solution. The System Center suite that includes Operations Manager, Configuration Manager, Data Protection Manager and Virtual Machine Manager to provide a unified management solution for your infrastructure: physical, virtual and from desktop to datacenter.

 

 For more on System Center and virtualization products please visit these sites www.microsoft.com/scvmm and http://www.microsoft.com/virtualization

by porourke | 8 Comments

MS Management Summit sightings - VMware and Kidaro

I arrived into Vegas (baby!) today for 3 days spread across Microsoft Management Summit and Interop Las Vegas 2008. And the conferences couldn't have been timed better as it was pooring rain when I left SeaTac and sunny and hot (for me) upon arrival in Vegas.

The highlight so far (the night is young as they say) was the show floor in which I ran into a couple guys from Kidaro working in the Microsoft booth. That's a good sign and hope the acquisition will close soon. I really think Microsoft's desktop presence and understanding, along with SoftGrid, TS with Calista Technologies' built in and the Kidaro technology will really help reshape the desktop virtualization landscape. It'll be interesting to see how it develops. Anyway, here's a shot of the two gents from Kidaro. Welcome aboard!

 

Also on the show floor, and I think this is a first, I saw VMware. I don't recall ever seeing them at a Microsoft show. I'll have to stop by tomorrow as I'm interested to hear more about the Thinstall acquisition and Lifecycle Manager. I didn't have a chance today. Here's a photo.

But before I leave, I've been meaning to point out two items. First, there's a good article on MSDN about setting up Hyper-V for performance comparisons. And second last week we published a new ROI tool for virtualization. I spent 30 mins reviewing it last week and it's pretty complete. It'll help you quantify the value of virtualization scenarios like consolidation, dev/test and desktop application virtualization.

More tomorrow.

Patrick O'Rourke

by porourke | 2 Comments

HYPER-V QUICK MIGRATION & VMWARE LIVE MIGRATION PART 3...

Virtualization Nation,

In the last two blogs, I discussed the importance of HA for unplanned host downtime. Today, let’s talk about planned downtime, Quick Migration and Live Migration. Let’s start by understanding the primary usage scenario. Specifically, why do customers require migration capability?

For planned downtime, there are two primary reasons:

1. Hardware servicing. The underlying hardware needs additional storage, memory, or a BIOS update. The server needs to be taken offline and customers want to quickly move virtual workloads off the server for this scheduled maintenance.

2. Patching the Root/Host operating system. If the root partition needs to be patched and that patch requires a reboot, then customers want to quickly move virtual machines off the server for this scheduled maintenance. (This is a good time to point out that the best practice for running Hyper-V will be to do so with a Server Core installation which will reduce the need to patch Windows because it’s running a minimal footprint.)

We’ve drilled into these scenarios further and asked customers, who have currently have Live Migration capabilities, if they have changed their servicing process. In particular, when do they perform their hardware servicing. Is it during business hours 9-5? The overwhelming answer is, “No, we still schedule server downtime and notify folks of the scheduled downtime.”

Even customers with Live Migration still wait until off hours to service the hardware.

What’s my point?

My point is that if you’re scheduling downtime to service the virtualization server and you’re doing it off hours, the difference between sub-second downtime (Live Migration) and even 5, 10, 20 seconds of downtime (Quick Migration) is less of an issue than you might think at a fraction of the cost.

My suggestion: just try it. :-)

One last benefit with HA/Quick Migration capability is that when you set up this configuration, you’re actually setting up solutions for both planned and unplanned downtime at the same time because they use the same underlying Failover Clustering technology.

BTW: Many of us will be at Microsoft Management Summit (MMS) next week in Las Vegas and hope to see you there.

Cheers, -Jeff

====================================================================

Q: What are the system requirements for High Availability/Quick Migration?

A: Hyper-V High Availability/Quick Migration requires:

1. Windows Server 2008 Enterprise or Datacenter x64 Editions. High Availability/Quick Migration requires Windows Failover Clustering which is available in Windows Server 2008 Enterprise and Datacenter Editions.

2. Shared Storage. Failover clustering requires shared storage in the form of a SAN (iSCSI, Fiber Channel or SAS).

by WSV_GUY | 4 Comments

Hosting Virtualization MVPs

This week, Microsoft hosted 1,800 tech professionals here in Redmond for the annual MVP Global Summit, and I was fortunate enough to have the opportunity to chat with a number of Virtualization MVPs from the community.  Since you might not be familiar with the Microsoft MVP Awards, let me give a quick description...

 

The Microsoft Most Valuable Professional (MVP) Award is given annually to exceptional technical community leaders from around the world based on contributions made during the previous year to offline and online technical communities.  These awards are one way Microsoft shows support for communities that foster the free and objective exchange of independent, real-world knowledge.  There are over 4,000 MVPs worldwide that cover 90 different Microsoft technologies, everything from virtualization to gaming.  If you are interested in learning more about MVP nomination and award process, check out here.

 

This year’s summit featured 600+ technical sessions and concluded with closing remarks from Steve Ballmer and Ray Ozzie (who, as Alessandro Perilli over at vitualization.info points out, highlighted virtualization’s fundamental importance in the overall company vision). 

 

For virtualization, we hosted 15+ MVPs and had a flood of interest from MVPs from other product/technology areas.  Over the three days, these Virtualization MVPs had the opportunity to network with each other, learn more about Microsoft’s virtualization offerings, and engage with product teams directly.  Breakout sessions included Managing Hyper-V with WMI and PowerShell, Using Static VHD’s to Increase Test Efficiency, The Future of System Center Virtual Machine Manager, and a hands-on lab with Quick Migration, WMI, and Authorization Manager.

 

I definitely enjoyed having the chance to talk with everyone, hearing their excitement for virtualization and learning about all that they do in the community.  Two things really stood out to me from my conversations.  One was the considerable differences in the stage (for lack of a better word) of adoption for virtualization by geography.  The second theme that rang loud and clear was the importance of management with virtualization.  Whether it was the importance of being able to manage both physical and virtual environments or look within a virtual machine, there’s no question that management is and will continue to be at the forefront of everyone’s mind when it comes to virtualization.

 

I hope that the MVPs enjoyed their visit as much as we did hosting them.  I can’t wait to see how many more Virtualization MVPs we have next year!


-Brett Shoemaker

by porourke | 0 Comments

HYPER-V QUICK MIGRATION & VMWARE LIVE MIGRATION PART 2...

Virtualization Nation,

Last week, I blogged about the importance of HA for unplanned host downtime. By the number of responses, this is clearly a hot topic. Today, I was going to discuss planned downtime, specifically, the differences between Quick Migration and Live Migration; however, after sifting through all that feedback last week I realized that we need to dispel some myths first...

After my last blog I received almost two dozen email telling me that VMotion was far superior for unplanned host downtime and that it was a much better HA solution because it could live migrate virtual machines. I’ve heard this fallacy espoused for many years and, folks, this simply isn’t the case.

In the case of unplanned downtime, VMotion can’t live migrate because there is no warning. Instead you must have VMware HA configured and the best it can do is restart the affected virtual machines on other nodes which is the same as what is provided with Windows Server 2008 Hyper-V and Failover Clustering.

Here are a couple of quotes from VMware’s own document, Automating High Availability (HA) Services with VMware HA.

Page 1 paragraph 2 states:

Using VMware HA, virtual machines are automatically restarted in the event of hardware failure…

Page 8 states:

How does VMware HA work?

VMware HA continuously monitors all ESX Server hosts in a cluster and detects failures. An agent placed on each host maintains a “heartbeat” with the other hosts in the cluster and loss of a heartbeat with the other hosts in the cluster and loss of a heartbeat initiates the process of restarting all affected virtual machines on other hosts.

HA monitors whether sufficient resources are available in the cluster at all times in order to be able to restart virtual machines on different physical host machines in the event of host failure.

The point being VMware HA and Hyper-V with failover clustering accomplish the same thing: virtual machines are RESTARTED on another node. No better, no worse. If you still don’t believe me, find one of your ESX Servers and go pull out the power plug. (Just don’t say I didn’t warn you.)

Cheers, -Jeff

by WSV_GUY | 5 Comments

HYPER-V QUICK MIGRATION & VMWARE LIVE MIGRATION PART 1...

Virtualization Nation,

Generally speaking, I like to focus my blogs on what we’re doing at Microsoft regarding Hyper-V virtualization and pretend the rest of the Internet doesn't exist. However, there’s some buzz on the web about a topic that I feel I need to address. Today, this blog is the first of a multi-part blog on the topic of Hyper-V’s High Availability/Quick Migration capabilities compared to VMware’s VMotion (Live Migration) capabilities.

Before I dive into details, let me take a step back and discuss why high availability is absolutely CRITICAL to virtualization.

Virtualization is an awesome technology. It provides numerous benefits for reducing overall TCO, one of the most obvious benefits being power consumption savings. If you have a data center with 10,000 servers and you cut that number in half with virtualization (2:1 consolidation) you will achieve very tangible power and cost savings by retiring those 5,000 servers. Just look at your monthly power bill. Honestly, 2:1 consolidation is dead simple. (In fact, our own internal IT has been using Virtual Server for years now IN PRODUCTION with over 2,500 virtual machines and easily achieves 8:1 consolidation with four 9’s uptime. With Hyper-V, we see those consolidation ratios climbing in a big way.)

However, virtualization isn’t perfect. Virtualization actually creates a major problem: single point of failure. Think about it. In the past, you may have been running 20 workloads each on their own physical server. When one of those servers goes down it’s bad, but probably not the end of the world. In a virtualized environment, suppose you have 20 workloads running a top a single server. What happens when that physical server goes down? All 20 workloads go down. That’s not bad, that’s catastrophic. In fact, I’ve talked to numerous virtualization customers that have told me point blank:

Virtualization is great in test and dev, but there’s no way I’m deploying virtualization in production without a high availability solution. If that virtualization server goes down and I don’t have a HA solution in place, I will lose my job.

That sums up the importance of high availability with virtualization pretty well.

With this in mind, we knew we had to provide solutions for both planned and unplanned downtime. Planned downtime is the easier of the two (because it's scheduled, not a surprise) and the most common. Generally, planned downtime is for hardware servicing (adding additional memory, storage or updating a BIOS) or software patching. Most people schedule this work off hours (early mornings or on weekends).

Unplanned downtime is the more difficult one, where a server is unexpectedly powered off and you want the virtual machines running on that server to automatically restart on another server without user intervention. This is the scenario that IT told us we have to solve first and that’s exactly what we did. Hyper-V integrates with Windows Server 2008 Failover Clustering so that if you pull out the power plug, all of the virtual machines will automatically restart to another node without user intervention. Furthermore, this capability is simply included (at no extra $$$) with Windows Server 2008 Enterprise and Datacenter Editions.

So, if there are a few points I want to make today:

  • Virtualization & HA go hand in hand; If you’re virtualizing today without HA, you should re-evaluate that strategy.
  • Windows Server 2008 Enterprise and Datacenter editions provide Hyper-V and integrated HA support at no additional charge.

In my next blog, I’ll discuss planned downtime and go into detail on Quick Migration and how it compares with Live Migration.

Cheers, -Jeff

SIDE NOTE: For those of you who haven’t had the opportunity to checkout Windows Server 2008 new failover clustering, you should. It’s incredibly intuitive and easy-to-setup. You can setup a 16 node cluster in four steps. I kid you not.

by WSV_GUY | 8 Comments