How to Bare Metal Deploy a Hyper-V server via VMM2012 and HP iLO

Some time ago I did a series on Bare Metal Deployment of Hyper-V servers with Virtual Machine Manager 2012 Beta. Back in March I tested with HP BL460 G6 servers which have an Insight Lights-Out (iLO2) Baseboard Management Controller (BMC). This time I was able to test with the RC build and HP BL490 G6 blades as well as DL360 G7 rack servers (which have a newer iLO3 onboard).

For beta there was a possibility to generate a customized Out-of-Band (OOB) protocol for HP iLO. Unfortunately that is not supported anymore and Microsoft advised me to use the IPMI protocol. After some experiments I figured out that this required a recent firmware (v2.07 of iLO2 to be precise). So after updating the firmware I was able to discover my physical servers via their iLO IP address combined with the right account/password combination which I saved as a Run As Account.

image

As you can see –  when using IPMI with iLO2 (in this case) — there is a limited set of information returned. It lacks Manufacturer, Model, Serial Number, etc. What is worse … it returns an SMBIOS ID that is different from the one VMM2012 expects when you perform a Bare Metal Deployment of one or more Hyper-V R2 servers.

image

When you continue the Add Resource Wizard, the bare metal server will boot from the PXE server. This is where things go wrong.

clip_image001

During Network Boot, the server gets a proper IP address and it downloads the boot file WDSNBP.COM.

clip_image001[5]

Seconds later you end up with an annoying 0xc0000098 error telling you there is something wrong with your Windows boot configuration file.

When you study the VMM log there are several suggestions you could look at. Because there are so many options it is easy to miss the culprit.

image

The best advice I can give you is to study the VM Manager event log as it exactly tells you what is wrong. Look for an event 21179

Event ID Error message
21179 Virtual Machine Manager will not deploy an OS to computer with SMBIOS GUID: DD60E07B-57B4-438E-9324-2F3A37B341E7 MAC: 00:17:A4:77:00:70 because the GUID does not match any that have pending OS deployments in VMM. The PXE request is being passed on to the next WDS PXE provider.

Apparently the VMM Server is rejecting the request due to the SMBIOS not matching the one it is expecting. Now how can you tell what the VMM Server is expecting?

If you issue the following VMM PowerShell command:

    PS C: > $raa = get-scrunasaccount <BMC_RAA Name>
    PS C: > Find-SCComputer -BMCAddress <BMC_IP> -BMCProtocol IPMI -BMCRunAsAccount $raa

It will show you this:

image

As you can see the iLO returns a different SMBIOSGUID.

If you then compare the iLO information screen you see that HP makes a distinction between the UUID and the UUID (Logical). Is it logical? I should say NOT!

image

Since I have not found a way to configure the UUID to the value that VMM expects, the only way around is:

  1. Buy another vendor’s server
  2. Wait till HP and Microsoft have found a solution
  3. Use PowerShell to Bare Metal Deploy your Hyper-V servers.

Hey I thought. That’s a cool way too!

So assuming you have made all other preparations (Host Profile, Run As Account, WDS Server, Sysprepped Boot from VHD file in your library), this is the way to go:

PS C: > $BMCRAA = Get-SCRunAsAccount -Name "Run_As_BMC"
PS C: > $BMCRAA

image

PS C: > $NewPhysicalComputer1 = Find-SCComputer -BMCAddress "172.16.3.22" -BMCRunAsAccount $BMCRAA 
            -BMCProtocol "IPMI"
PS C: > $NewPhysicalComputer1

image

PS C: > $HostGroup = Get-SCVMHostGroup | where { $_.Path -eq "All Hosts"}
PS C: > $HostGroup

image

PS C: > $HostProfile = Get-SCVMHostProfile -Name "Host_Profile_HV_v1"
PS C: > $HostProfile

image

The glorious final command actually does all the work:

  1. Switch on the server (Reboot if it is turned on)
  2. Partition the disks
  3. Copy the prepared VHD to the newly partitioned and formatted disk
  4. Change Boot Configuration to boot from VHD
  5. Configure the OS (Domain, Local Admin, Identity, Product Key, Time Zone, Answer File, GUIRunOnce)
  6. Set IP address for matching MAC address (for the management adapter)
  7. Set the hostname
  8. Set a fixed IP from the Static IP Pool which is configured on the logical network (Backend in our case)
  9. Make host member of the domain
  10. Enable the Hyper-V Role
  11. Reboot and get on with other tasks such as automatically creating a Hyper-V cluster

PS C: > New-SCVMHost -VMHostGroup $HostGroup -VMHostProfile $HostProfile -BMCAddress $NewPhysicalComputer1.BMCAddress -BMCRunAsAccount $BMCRAA -BMCProtocol "IPMI" -SMBIOSGUID "41AF9DB5-1AF3-4369-9805-60F8EDE56C51" -BypassADMachineAccountCheck -ComputerName "HV1" -ManagementAdapterMACAddress "00-17-A4-77-00-60" -LogicalNetwork "Backend" -Subnet "192.168.1.0/24" -IPAddress "192.168.1.51"

The result is very rewarding:

image
Hope you enjoyed it!
Hans

PS I also tried with iLO3 but the results were the same

Credits go to Greg Cusanza from the Virtual Machine Manager product team who helped me solving this nasty problem. Thanks Greg!!!

5 Comments

  1. November 8, 2011    

    hans for the uuid did you also use the MAC of the server ? you can use this also in my case I use a static mac all Zeros only the last bit was a number.
    in the Prestage area I used this 00000000-0000-0000-0000-000000000001 atleast it worked for me in windows 8 but my time is limited and the resources also.

    • adminHans's Gravatar adminHans
      November 8, 2011    

      Hi Robert,
      If you use DHCP you don’t need the MAC address. If you use the Logical Network and Static IP you are asked for a MAC address in the version I am working with ;-)
      Cheers, Hans

  2. December 2, 2011    

    I used this recently for BMR of a Hyperv VM to a new Dell server. Worked first time.
    http://www.cofio.com/Virtual-Machines/Section/Hyper-V-Backup-and-Replication/

    These were the restore instructions on their wiki:
    http://wiki.cofio.com/index.php?title=Restoring_Hyper-V_Virtual_Machines

  3. January 2, 2012    

    Hi Hans,
    I’ve recently written an article with some additional observations and testing on this issue, as well as some other general VMM bare metal deployment information. http://www.thecloudbuilderblog.com/blog/2011/12/30/scvmm-2012-bare-metal-provisioning-tips.html

    • adminHans's Gravatar adminHans
      January 17, 2012    

      Thanks for the link Mike.
      The issue I talked about is caused by virtualizing the server’s serial in the Virtual Connect configuration.

      Cheers,
      Hans

  1. Vserver | Web Hosting Information and Tips on November 13, 2011 at 15:35

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>