Private Clouds, Hybrid Clouds & Public Clouds


Now that I’m thinking of and working more and more towards a concept that might be described as a hybrid cloud using tools and technologies that should facilitate this (Azure, Virtual Machine Manager 2012, System Center vNext, Hyper-V vNext) I get to think about what cloud means, is and could or might become. In the end it is nothing more or less than utility computing based on standard components to deliver commodity services. What you do with those and how determines the success of your endeavors. After all not all devices run by electricity where brilliant and successful. Why is this important to notice? Well people tend to get involved in silly discussion of my cloud is better than yours. And to confuse things even more in between all those discussions vendors are fighting about what constitutes the best technology (hardware & software) for building one. That can be fun, but it has little to do with the value of the cloud as a concept. Now where do private clouds a hybrid clouds fit in? Is the private cloud and the hybrid cloud something temporary, a facilitator towards a “true” public cloud? Or is this just the case for the private cloud?

If you concur that not all IT is the same, not all organizations are the same and not all IT is or will become a commodity one could state that the hybrid cloud has a more permanent character. It will aid having a unified, holistic way to manage it all. Multiple environments with separate management are less attractive as that incurs overhead in costs and perhaps even skills.

But what about that private cloud? Let’s face it. Most (none) of us will ever be able to get the share volume en thus the economy of scale for cost, pricing, redundancy or flexibility as the public cloud. If we can, that would mean the public cloud vendors are not doing their job right. On the other hand there are other needs in business than cutting costs. In the end cost cutting is a valuable tool but not a business model. You can’t run a company with as only mission statement "we’re cutting down on our costs”. So I think the private cloud might be more than just a transition model. It can live on, but probably not for most businesses. Depending on their needs I see a very bright future for hybrid cloud, both for transition and as a permanent solution. I would be hard pressed to call the choice for private or hybrid cloud wrong. It all depends if it’s a decision made for the right reasons. One should always note that choices and decisions have a limited life span. Business is very competitive and moves very fast and the very nature of cloud computing will only accelerate this.

I won’t surprise anyone that a lot of discussions around cloud are based on some assumptions. One of them is that we are discussing very well run organizations. Businesses and governments that have a clear understanding of their IT & business needs, have an IT strategy to support that and who use the best fitting management styles and methodologies as required and dictated by those needs. Sigh, perhaps it’s me but, while I so see occurrences of this at companies, I have never worked at or for one that is that well squared away. And, to me, becoming a financial sound success story with your business and IT in the cloud requires just this. Perhaps the lure or the push of the cloud will achieve for some companies and organization what nothing else has achieved, help transform them into better run entities. Some things, ugly hacks, internal IT can do (unwillingly) now are not possible in the cloud. The financial pressure will be bigger as well. It’s hard to hide or forget about certain costs in the cloud. If there is one thing, ISP, Telco’s (transforming into cloud vendors, but by origin giant “billing engines” for communications) and native cloud vendors are very good at it is sending you the monthly invoices. When things become visible they tend to attract attention. Sooner or later the bean counters will find you. A lot of the existing companies with legacy IT and politics will have a harder time dealing with all of this than the new, emerging ones that are built from the ground up using utility computing, so it’s time to step up to the plate and at least practice batting.

System Center Virtual Machine Manager 2008 R2 SP1 Upgrade Walkthrough


Some people downloading the System Center Virtual Machine Manager 2008 R2 SP1 seem to be confused that it is the entire product ISO. It’s a big download but the upgrade itself, when you have a healthy environment is fast and easy. To my knowledge there is no SP1 upgrade file only, you get one package for all needs.  I’ve provided a screenshot walk trough of the process below and it really only takes a couple of minutes on the servers deployed it on. There is both an evaluation version available or a licensed version via the licensing site or the TechNet subscribers downloads.

Do note that the below process is for those who are upgrading from  System Center Virtual Machine Manager 2008 R2  to System Center Virtual Machine Manager 2008 R2 SP1. If you have the RC installed take a look at following blog post by  Maarten Wijsman to see how to upgrade the SQL database used by SCVMM2008R2 SP1 Release Candidate with the UpgradeVMMR2SP1RC.exe tool. The download is here at the Microsoft Connect site  (Live ID).

Run the setup.exe and click setup VMM Server or any other component you need to upgrade. If you click VMM server it will detect other components as well.

1

 

The installation files are extracted …

3

 

Accept the license agreement and click next

2

 

As you can see it detected that I’m also running the Virtual Machine Manager Administration Console. Click on ‘Upgrade” to continue.

5

 

If the account you’re using doesn’t have the needed SQL Server permissions you can provide alternate credentials that do have those. Click “Next” to continue.

6

 

It will then upgrade all detected components one by one ….

7

 

11

… until you reach the Completion form. That’s it you’re done.

 

12

 

You have to go through this process for all servers where you have Virtual Machine Manager components installed to complete the entire upgrade. When you have you can now configure Dynamic Memory from your SCVNN administrator Console.  Nice Smile

image

My First Hands On Experience With The System Center Virtual Machine Manager 2012 Beta


Today I made some time to take System Center Virtual Machine Manager 2012 (SCVMM2012) Beta for a little test drive. Nothing fancy yet. Just some first impressions and experiences. Is already had to VMs standing by. One running SQL Server 2008 R2 to take care of the database needs and one for installing SCVMM2012 on to. Normally, in further testing I will install the self service Portal on a separate machine for more flexibility but for now it’s one host deal with a separate database server.

The documentation is already available on TechNet. I’m pretty sure this will grow a lot but the Installation guidelines are already pretty good. But as this is a test drive and I want to see how it behaves I didn’t get all the prerequisites ready from the start just to get a feel how the install behaves.

From the start we run into a symptom you need to take into consideration when using Dynamic Memory in a VM guest that was already discussed by Aidan Finn in Software Setup Does Not Meet Memory Requirements with Dynamic Memory Enabled. Just make sure you have plenty of memory during install time and afterwards you can tweak it a bit to get some more breathing room on for the lab hosts.

The VMM 2012 setup wizard adds one prerequisite automatically for you if it isn’t installed and that’s the .NET Framework 3.5.1 feature is not installed (it is not installed by default).

Ok people, this is a bit rough and way pack with screen shots but here we go Smile

Start the setup and accept the License Agreement.

image

 

I opt to install on the roles on a single host

image

 

I provide the needed information, the key can wait, don’t worry about that here.

image

 

I’m opting into the Microsoft Update to keep my lab server running healthy & protected

image

 

I’m happy with the default installation location

image

It’s checking the prerequisites

image

 

And it complains. I’ve been to cheap on memory and the Dynamic Memory settings are not bailing me out as already indicated above.

image

 

So I fix both issues by installing more memory and installing IIS. Make sure your read the TechNet documentation for all the IIS components you need.

  • .NET Extensibility
  • ASP.NET
  • Default Document
  • Directory Browsing
  • HTTP Errors
  • IIS 6 Metabase Compatibility
  • IIS 6 WMI Compatibility
  • ISAPI Extensions
  • ISAPI Filters
  • Request Filtering
  • Static Content

Then we rerun the prerequisites checks and we get another issue. We need the WAIK. You can avoid all these warnings or errors by reading the docs and preparing the server but as stated I wanted to get a look at how the process behaves. So we get the WAIK downloaded en install it.

The installer still thinks I’m to cheap. But it’s only a warning now. I did end up giving the VM 4GB with a limit of 5 GB of RAM.

image

 

The next error is just because I was to fast to launch the setup, we need to give the winRM service some time to start. It’s a service that as a delayed start

image

 

We didn’t do our prerequisites homework so we get nagged  about the SQL Command Line Utilities. We can continue without them but when you do install these you’ll need to get the SQL Native Client installed on which the SQL Command Line Utilities depend.

image

 

I have my database already up and running so I have no worries there. The account here needs to have permissions to install and configure the database. It ‘s used for that purpose only. As you can see I use the default instance and create a new database. Make sure your SQL Server is set up right for remote access , the firewall is configured, etc.

image

 

I’ve prepared a nice and shiny new domain account for the SCVMM2012 service to run under. I don’t use a manage service account because I’m not sure whether I might use this account on multiple machines in more elaborate fault tolerant installations.

image

 

As I’m not very creative and don’t want to use non default ports I’ll forget is elect to keep all the default ports.

image

 

I also leave the default settings for the self service portal.

image

 

But I do change the location of the library share to a separate large disk Smile

image

 

OK the installer is ready to rock.

image

 

The install goes very fast by the way. Went get some coffee, called a colleague  and voila …

image

 

In my environment it took about 6 minutes

image

 

And after all that I got my reward SCVLL 2012 up and running

image

 

To which I add my test cluster

image

 

I need to provide some credentials that can discover the hosts and install the agents

image

 

I add some cluster hosts

image

 

SCVMM2012 picks up that it’s a cluster

image

 

And I add it to my host group I created. neatly organizing already (neurotic behavior is wide spread in the IT world)

image

 

The cluster and hosts are added to SCVMM 2012

image

 

For fun I put a host into maintenance mode.  It offers to use live migration as that is available

image

 

And that went just fine.

image

 

Well there you have it, a first rough hands on experience with SCVMM2012 Beta.  We’re of to a very good start with this. More to follow later without any doubt.

System Center Virtual Machine Manager 2008 R2 SP1 & 2012 Béta Available


Good news, today March 22nd 2011 System Center Virtual Machine Manager 2008 R2 SP1 went RTM. I’ll update this short post with the download link when it becomes available ==> UPDATE: download it here from Microsoft (Evaluation) or from your TechNet subscription or licensing site . Seems like we got  all host & guest updates to W2K8R2SP1 done exactly on time to get this one installed and have a state of the art  up to date infrastructure Smile. Today the 2012 Beta version became available for download (here) and the documentation site went life (here). Things are moving in the system center space. Busy times ahead! Yet 2 more  VMs to test with I the lab … and than Denali is coming Open-mouthed smile.

No TechEd Europe 2011


Well it’s official. There will be no TechEd Europe in 2011. A quote from a Microsoft mail for Tech Days Belgium “… Since you have been attending TechEd Europe previously we wanted to inform you in person that Tech∙Ed Europe will not return in autumn 2011, but later in 2012.  …“

We’ve lost IT Forum a couple of years back and with no TechEd Europe in 2011 this means a barren landscape void of any major international Microsoft technical events in Europe. I think that’s a shame. The opportunities to network & interact with Microsoft employees, engage in passionate interactive discussion about technologies, solutions and  possibilities  with colleagues and peers from around the continent are sadly missing from my agenda this year. I always enjoyed to learn about their creative solutions to similar problems in an environment that is focused on what we love to do, where learning opportunities are abundant and the atmosphere is all about technology. I haven’t missed one in 10 years, sometimes against the odds.

To me TechEd is a key moment in the year. I use it to check my compass and adjust my bearings when needed. A good technical conference is a great place for both advancing what your are doing and reflecting on what can be done and remains to be done. Communication of visions, roadmaps and technology are paramount and I feel that I have lost the one event left we had as technologists in the Microsoft ecosystem in Europe that was our place to go and do that. As a good colleague touched upon. What’s Microsoft’s strategy and approach to what & when to communicate with it’s European audience? Local Events only? They are good, needed and of high quality but no substitute.  I’ll need to find another way to zero in my course this year.

Kick Starting Your Windows 7 Deployments With Mastering Windows 7 Deployment


I have to hand it to Aidan Finn, he doesn’t stop at sharing information via his blogs or the community. He joined forces with Darril Gibson & Kenneth van Surksum went the extra mile. The wrote a readable, useful book Mastering Windows 7 Deployment about a subject on which consolidated documentation is scarce, scattered around the internet or written badly so you still can’t figure it out or is to boring you just don’t read it. If I need to define the goal of this book: get people a good head start for Windows 7 deployments in a planned and organized fashion.

This is not a book for the absolute newbie who doesn’t know the difference between a local and a domain account. It isn’t targeted at the WDS/MDT experts who’ve solved, fixed and worked around any and all PXE boot, network errors, cryptic WDS or MDT deployment errors & configuration challenges known to man kind. In that case this stuff is known to you (or should be). The point is those experts have already learnt a lot the hard way and they put in a considerable effort to do so. But knowledge needs to be transferred and spread around and to do that you need to cover the basics and work up from there, showing progress and results. The progress and results motivate people.

In that respect, this books get’s you started on that path from chapter one and by page 5 you’re already being guided into auditing & reporting via MAPS to prepare a roll out proposal. The effort put into discussing the Application Compatibility Toolkit (ACT) is important. I remember the work that we needed to do for Vista x64 bit and how that paid off when deploying Windows 7. What surprises me it that a lot of IT Pro’s don’t even know about the ACT, file and registry virtualization or shims. I recommend another blog on this subject http://blogs.msdn.com/b/cjacks/ , Chris Jackson, the “App Compat Guy” and a very good conference speaker on the subject. The scenarios with the User State Migration Tool will benefit system administrators who dread touching end users their PC and the precious data it might contain. If so, I hope you are backing up the data on those workstations, if not than that is really scary.

Perhaps some readers will already be using certain tools touched upon in the book but not others. In that case this is a great way to start with them and see where they fit in and what they can do for you. We did Vista x64 bit deployments in 2008 with WDS; rolled out Windows 7 x64 in 2010 using WDS/MDT and I still found this book interesting enough to buy some copies and add it to the toolkit of my team. What I’d like to add as a useful hint: look into disable rearming by using <SkipRearm>1</SkipRearm> in the unattended XML file you can pass to sysprep as in “/generalize /quiet /unattend:<file_name.xml” so you don’t run into a when you do it more than 4 times on the same image (An error message occurs when you run "Sysprep /generalize" in Windows Vista or Windows 7: "A fatal error occurred while trying to Sysprep the machine").

The Microsoft Deployment Toolkit (MDT) sections point you directly to some gems we found very useful in our deployments. That you can pre stage computers in the MDT database to help make the roll outs as “light touch” as possible is cool, but that you can automate that with the MDT PowerShell module makes it really very valuable. See http://blogs.technet.com/b/mniehaus/archive/2009/05/15/manipulating-the-microsoft-deployment-toolkit-database-using-powershell.aspx for more details. Michael Niehaus is to MDT what Chris Jason is to ACT. As identifier we use the MAC address as we get that on a label on the PC and we can easily get a list of those to mass import them together with creating the computer objects in Active Directory. We also added driver profiles depending on the client make & model. When you combine this with boot from PXE provided by WDS to boot to an MDT WinPE, and remember WDS also gives you multicast, you have a real sweet solution going. This is the route we went last year and has served us well (we came from a pure WDS solutions, and RIS before that when we still did XP rollouts but that was more than 4 years ago Open-mouthed smile … time flies.

Task sequencer is a gem that we indeed also use to roll out certain default software like 7zip, a pdf reader, ISO burner, anti malware, etc. The fact that these are not in the image makes it very easy to deploy newer versions as they come available.

The chapter on KMS, VAMT, volume licensing will be of use to people who have never dealt with it coming from Windows 2003/XP

This book will come into its own for any SME or enterprise departmental system administrator with who needs to be launched swiftly and on his or her way to their targets, which are smooth Windows 7 deployments. A lot of production system administrators are in the progress of looking at Windows 7 and might have a lot of experience with Windows XP and Windows 2003 but not with Windows 2008(R2) and Vista/Windows 7. If you’re in that bracket you’re definitely going to get a kick start with this book and it contains some neat tips and tricks to get over some initial gotchas. Don’t think that this is for big enterprises only. Apart from the system center products most tools are free downloads or a part of the Windows server license you already own.

As always, the only way to understand technologies is to work with them, use them. That’s the way to gain insight, experience, and context. So play with this stuff in a lab. Run into a bunch issues and fix them. If you need to get up to speed with all this stuff then you should dig into this book with a hands on approach. The book will also help you make more sense of other information out there and you’ll be able to put that into context better. As a bonus, I’m pretty sure that anything you learn from it will help you with deploying Windows vNext as well.

Key Value Pair Exchange WMI Component Property GuestIntrinsicExchangeItems & Assumptions


Now that Windows 2008 R2 SP1 is being deployed some scripts to check whether the Integration Components (IC) in Hyper-V VM guests are upgraded came back on the radar screen. Host are being upgraded and thus the clients need upgraded IC as well. Now to check this for hundreds or thousands of guest we need some automation. PowerShell comes in handy for this and some neat scripts can be found around the internet. The most concise PowerShell code to do this, that I know of, is the one Peter Noorderijk (great Dutch IT Pro)  uses in his  PowerShell function Get-IntegrationServicesVersion on his blog How to check the version of the Integration Components.  As he provided this script just when I needed one I used it. This worked fine until I ran into an issue with it on some clusters. On two test cluster and two production clusters it did the job as expected. On one test cluster and one production cluster we ran into the situation where the output seemed wrong. The screenshot below is an example of this.

image

The red arrows indicate wrong data for the VMname and ICVersion. What happened here?  Well when we read out the  GuestIntrinsicExchangeItems property from the WMI object Msvm_KvpExchangeComponent we get back XML. That XML needs to be parsed to display it for human consumption. The  function depends on fixed positions containing the correct data. I’ve marked the relevant portions with a red arrow above, they come from$vmkvp[0] en $vmkvp[14] in the script below.

function Get-Integ.rationServicesVersion ($HVhost = $(throw “HVHost required”))
    {
    $kvps = Get-WmiObject -Namespace root\virtualization -ComputerName $HVHost -Query “Select GuestIntrinsicExchangeItems From Msvm_KvpExchangeComponent”
        foreach ($kvp in $kvps)
         {
         $vmkvp = $Kvp.GuestIntrinsicExchangeItems
         $vmkvp | select-object @{Label=”VMHost”;Expression={$hvhost}},
                                @{Label=”VMName”;Expression={([xml]$vmkvp[0]).instance.property[1].value}},        
                                @{Label=”ICVersion”;Expression={([xml]$vmkvp[14]).instance.property[1].value}} -first 1
         }    
    }
  
foreach ($hvhost in get-content servers.txt) {Get-IntegrationServicesVersion $hvhost}

And indeed, when we dump the XML for two of the affected servers out to text files you can see the order is indeed different so counting on the exact location in an array is what tripped us up here.

image

Should this ever happen? Am I making a scripting mistake somewhere? Running a check with a VBScript that parses the XML  using XDOM (just in case my PowerShell skills are the cause of this) confirms the order is different but that the key pairs match up and are correct

D:\SysAdmin\PowerShellScripts>cscript.exe test.vbs

Microsoft (R) Windows Script Host Version 5.8

Copyright (C) Microsoft Corporation. All rights reserved.

Guest OS information for server01

CSDVersion : Service Pack 1

FullyQualifiedDomainName : server01.lab.test

IntegrationServicesVersion : 6.1.7601.17514

NetworkAddressIPv4 : 10.10.100.118

NetworkAddressIPv6 : fe80::a177:729:8840:250%9

OSBuildNumber : 7601

OSEditionId : 7

OSMajorVersion : 6

OSMinorVersion : 1

OSName : Windows Server 2008 R2 Standard

OSPlatformId : 2

OSVersion : 6.1.7601

ProcessorArchitecture : 9

ProductType : 3

RDPAddressIPv4 : 10.10.100.118

RDPAddressIPv6 : fe80::a177:729:8840:250%9

ServicePackMajor : 1

ServicePackMinor : 0

SuiteMask : 272

D:\SysAdmin\PowerShellScripts>cscript.exe test.vbs

Microsoft (R) Windows Script Host Version 5.8

Copyright (C) Microsoft Corporation. All rights reserved.

Guest OS information for server13

FullyQualifiedDomainName : server13.lab.test

OSName : Windows Server 2008 R2 Standard

OSVersion : 6.1.7601

CSDVersion : Service Pack 1

OSMajorVersion : 6

OSMinorVersion : 1

OSBuildNumber : 7601

OSPlatformId : 2

ServicePackMajor : 1

ServicePackMinor : 0

SuiteMask : 272

ProductType : 3

OSEditionId : 7

ProcessorArchitecture : 9

IntegrationServicesVersion : 6.1.7601.17514

NetworkAddressIPv4 : 10.10.100.112

NetworkAddressIPv6 : fe80::c18b:e3f2:7f05:31e4%12

RDPAddressIPv4 : 10.10.100.112

RDPAddressIPv6 : fe80::c18b:e3f2:7f05:31e4%12

When I look at where that data lives in the registry on those servers it all looks exactly the same, neatly ordered buy the regedit GUI:

image
image

So when getting that data from the Key Value Pair Exchange WMI component with the property GuestIntrinsicExchangeItems you get a bunch of XML. That has to be parsed to be displayed in a readable fashion. The problem we are seeing is due to the fact that the items in the XML file are not in the same order. Peter’s function assumes it is. However this does not happen to be the case for most virtual machines, the majority is in the expected order. I don’t know why that is or if this is supposed to happen but it doesn’t seem to cause any harm. All is fully functional and operational in Hyper-V Manager, SCVMM 2008R2 … etc. Perhaps an MVP or Microsoft guru can shed some light on this. It seems like a bug waiting to happen if a developer of Hyper-V management software makes the same assumption. Of is this never suppose to happen and do I need to worry? I don’t know Smile I reinstalled the IC on the guests that have a different ordering and live migrated them, but that didn’t change anything

Anyway if you want to make sure you get the correct output we’ll need another approach that doesn’t make assumptions.You can roll your own and get the output customized to your needs but you need to parse the XML using a filter.  An example of which is listed below.

# Filter for parsing XML data
filter Import-CimXml 
{    
# Create new XML object from input  
$CimXml = [Xml]$_    
$CimObj = New-Object -TypeName System.Object     

# Iterate over the data and pull out just the value name and data for each entry   
foreach ($CimProperty in $CimXml.SelectNodes("/INSTANCE/PROPERTY[@NAME='Name']"))      
 {          
     $CimObj | Add-Member -MemberType NoteProperty -Name $CimProperty.NAME -Value $CimProperty.VALUE       
 }  
    
 foreach ($CimProperty in $CimXml.SelectNodes("/INSTANCE/PROPERTY[@NAME='Data']"))     
   
 {         
     $CimObj | Add-Member -MemberType NoteProperty -Name $CimProperty.NAME -Value $CimProperty.VALUE      
 }    


# you send the output from the property to the filter via a pipe
$KvpComponentVMGuest.GuestIntrinsicExchangeItems $vmkvp |Import-CimXml 

Maarten Wijsman (a fellow blogger at http://www.hyper-v.nu like Peter)  has a nice example script here that also uses a filter Import-CimXML. Do note that there are  variants on this filter depending on what output you desire that explains the difference between the filters.