Intel 10GbE NICs missing after VMware ESXi 7 upgrade

To provide you with a quick back story on just how I got here, I purchased the first pieces of my home lab back in 2016. When building my home lab, my aim was to build an environment which was small, quiet and closely aligned to the VMware HCL. I obviously also had a budget to work with. At the time many people within the vCommunity were choosing to build their home labs using retired server hardware such as Dell PowerEdge R710s, or cheap & unsupported hardware such as Intel NUCs (remember this is 2016). Neither of these quite suited me because they were either too large & loud or unsupported, so instead I started to look at SuperMicro. These days most people would be familiar with the variety of hardware offerings SuperMicro provide in their lineup, most of which can be found on the VMware HCL. However back in 2016, the vCommunity were only just starting to explore the possibilities of building a home lab using SuperMicro. The other challenge I had was that the 5028D-T4NT server, which was the popular choice, did not come cheap, especially to those living outside the US! So I decided to build my own unique setup using the SuperMicro X10SDV-TL4NF motherboards. I assumed that by choosing a platform which was on the VMware HCL, that I would avoid all the pain and suffering of having to tinker with the hardware to get it to work. Well I assumed wrong!

When I first built my lab I was using a single physical host running VMware ESXi 6.5. I initially used this environment to deploy nested vSphere environments to develop and test AsBuiltReport against many different versions of VMware vSphere. Over the years I have gradually added more hardware to scale out my environment to provide more capacity and redundancy. However as more hardware was added, I began to encounter more issues with my setup. The first issue I encountered was when I added some Noctua cooling fans, and discovered that I needed to modify the fan thresholds. When I chose to add a second ESXi host, direct connecting the onboard Intel X552/X557-AT 10Gb network adapters for vMotion and vSAN traffic, I encountered another issue whereby the NICs would intermittently disconnect and never reconnect. Thankfully Paul Braren was able to provide a solution via his website over at TinkerTry.

And so begins this story…

Continue reading

PowerCLI: Add & remove VMs from DRS Groups based on datastore location

Update [21/02/2020] – I have updated these scripts to use the native PowerCLI commands which became available in PowerCLI 6.5.1. You can download the updated scripts from my GitHub page.

 

Lately I have been working on a number of virtualization projects which make use of VMware vSphere Metro Storage Clusters (vMSC). With most of these types of implementations, virtual machines must be pinned to a preferred site to minimise impact to virtual machines in the event of a site failure. DRS groups are the most common way to achieve this, however I was wanting to find a way to automate the add/remove of virtual machines based on each VM’s datastore location.

To begin, I configured each of the datastores with a prefix of the site which was its preferred site, e.g. DC1-VMFS-01 or DC2-VMFS-01. I then placed VMs on a datastore which corresponded to their preferred site.

With the help of DRSRule I was then able to create two PowerCLI functions to automate the process to add the VMs to a corresponding DRS VM group based on their datastore location. The function can be used with a datastore name, prefix or suffix.

function Add-DrsVMToDrsVMGroup{
#Requires -Modules VMware.VimAutomation.Core, DRSRule
#region script help
<#
.SYNOPSIS  
    Adds virtual machines to a DRS VM group based on datastore location
.DESCRIPTION
    Adds virtual machines to a DRS VM group based on datastore location
.NOTES
    Version:        1.0
    Author:         Tim Carman
    Twitter:        @tpcarman
    Github:         tpcarman
.LINK
    https://github.com/tpcarman/PowerCLI-Scripts	
.PARAMETER DrsVMGroup
    Specifies the DRS VM Group
    This parameter is mandatory but does not have a default value.
.PARAMETER Cluster
    Specifies the cluster which contains the DRS VM Group
    This parameter is mandatory but does not have a default value.
.PARAMETER Prefix
    Specifies a prefix string for the datastore name
    This parameter is optional and does not have a default value.
.PARAMETER Suffix
    Specifies a suffix string for the datastore name
    This parameter is optional and does not have a default value.
.PARAMETER Datastore
    Specifies a datastore name
    This parameter is optional and does not have a default value.
.EXAMPLE
    Add-DrsVMtoDrsVMGroup -DRSVMGroup 'SiteA-VMs' -Cluster 'Production' -Prefix 'SiteA-'
.EXAMPLE
    Add-DrsVMtoDrsVMGroup -DRSVMGroup 'SiteA-VMs' -Cluster 'Production' -Suffix '-02'
.EXAMPLE
    Add-DrsVMtoDrsVMGroup -DRSVMGroup 'SiteB-VMs' -Cluster 'Production' -Datastore 'VMFS-01'
#>
#endregion script help
#region script parameters
[CmdletBinding()]
Param(
    [Parameter(Mandatory=$True,HelpMessage='Specify the name of the DRS VM Group')]
    [ValidateNotNullOrEmpty()]
    [String]$DrsVMGroup='',
    [Parameter(Mandatory=$True,HelpMessage='Specify the cluster name')]
    [ValidateNotNullOrEmpty()] 
    [String]$Cluster='',  
    [Parameter(Mandatory=$False,ParameterSetName=’Prefix’,HelpMessage='Specify the prefix string for the datastore name')]
    [ValidateNotNullOrEmpty()]
    [String]$Prefix='',
    [Parameter(Mandatory=$False,ParameterSetName=’Suffix’,HelpMessage='Specify the suffix string for the datastore name')]
    [ValidateNotNullOrEmpty()]
    [String]$Suffix='',      
    [Parameter(Mandatory=$False,ParameterSetName=’Datastore’,HelpMessage='Specify the datastore name')]
    [ValidateNotNullOrEmpty()]
    [String]$Datastore=''
	)
#endregion script parameters
#region script body
if($Prefix){
    $VMs = Get-Datastore | where{($_.name).StartsWith($Prefix)} | Get-VM
    }
if($Datastore){
    $VMs = Get-Datastore | where{($_.name) -eq $Datastore} | Get-VM
    }
if($Suffix){
    $VMs = Get-Datastore | where{($_.name).EndsWith($Suffix)} | Get-VM
    }
$objDrsVMGroup = Get-DrsVMGroup -Name $DrsVMGroup -Cluster $Cluster
foreach($VM in $VMs){
    if(($objDrsVMGroup).VM -notcontains $VM){
    	Write-Host "Adding virtual machine $VM to DRS VM Group $DrsVMGroup"
        try{
            Set-DrsVMGroup -Name $DrsVMGroup -Cluster $Cluster -Append -VM $VM
        }
        catch{
            Write-Error "Error adding virtual machine $VM to DRS VM Group $DrsVMGroup"
        } 
    }
}
#endregion script body
}

Continue reading

VMware Update Manager is not displayed in the vSphere 6.0 U1 Web Client

With the release of VMware vSphere 6.0 Update 1, VMware Update Manager capabilities are now available from within the vSphere web client, or so I thought. After deploying the new vCenter 6.0 U1 Server Appliance and a separate Microsoft Windows server for VMware Update Manager 6.0 U1, I found that the VUM icon was missing from the vSphere web client. After numerous reboots of both the vCSA and VUM server, a reinstall of VUM, and a quick read of the Update Manager 6.0 U1 release notes, I finally managed to resolve the issue by simply re-registering the web client using the VMware vSphere Update Manager Utility.

Continue reading

VMware Converter: “The operation experienced a network error”

Last week I encountered some issues with converting a Hyper-V 2008 R2 virtual machine to VMware vSphere 5.5 using VMware Converter 6.0.

Before attempting the conversion I first disabled SSL encryption within VMware Converter (kb.vmware.com/kb/2020517) to help improve the conversion speed. I then proceeded to configure VMware Converter using the default settings for the source and destination VMs.

The converter process started OK however at 33% completion the job had failed with the following error: “An error occurred during the conversion: ‘The operation experienced a network error’“.

At this point I had also noticed that my destination ESXi host had also disconnected from vCenter. After a few minutes the host began to respond and I had noticed it too had an error, “/sbin/hostd crashed (1 time(s) so far) and a core file might been create at /var/core/hostd-worker-zdump.000. This might have caused connections to the host to be dropped.

Continue reading