Sign up for the quarterly Flings Newsletter here!

ESXi Compatibility Checker

The ESXi Compatibility Checker is a python script that can validate VMware hardware compatibility and upgrade issues of ESXi.

VMware hardware compatibility and product interoperability need to be validated when new hardware is installed on an existing ESXi or when a VC/ESXi version needs to be upgraded. Unfortunately, it is not a trivial task as the compatibility information is scattered in multiple web pages. The user needs to understand the data and validate them one by one manually. This process is tedious, laborious and often prone to error when done at scale.

This Fling will provide a simple and easy way to collect server and IO device details from ESXi and provide a command line interface to validate their VMware compatibility and upgrade issues. Users no longer need to understand compatibility details or manually compare the dataset to find out compatibility or upgrade issues. The Fling can generate a compatibility report for many ESXi managed by a VC with a simple command.

Installation steps on Windows

  1. Download the latest Python package from Python Download.
    Install Python Package, select the option to install "pip".
  2. Installl Pyvmoni
    python -m pip install pyvmomi
  3. Installl crypto
    python -m pip install crypto
  4. Installl pyopenssl
    python -m pip install pyopenssl

How to Run
------------
1. Install Python and required packages
2. Download compchecker.zip
3. Run the below command from extracted folder

   c:\> compchecker.py -s vc-or-esx-hostname -u username 
    c:\>compchecker.py -h
    usage: compchecker.py [-h] -s HOST [-o PORT] -u USER [-r] [-v TOVERSION]
    Standard Arguments for talking to vCenter/ESX
    optional arguments:
        -h, --help            show this help message and exit
        -s HOST, --host HOST  vSphere service to connect to
        -o PORT, --port PORT  Port to connect on
        -u USER, --user USER  User name to use when connecting to host
        -r, --report          Generate a hardware compatibility report in csv format
        -v TOVERSION, --toversion TOVERSION
                              Release version to check for the hardware compatibility report. (default is currently installed
    


Navigate Datacenters and hosts
------------

    c:\compchecker>compchecker.py -s 10.192.XX.XX -u admin
    Enter password for host "10.192.XX.XX" and user "admin":
    VMware Compatibility Checker (host:10.192.34.XX, user: admin)
    > connecting host...
    > collection host information...
    [ VMware VirtualCenter Server 6.5.0 (VMware vCenter Server 6.5.0 build-4602587) ]
    VirtualCenter> datacenters
    [1] Datacenter MaxNIC
    [2] Datacenter NextGen
    ...
    VirtualCenter> d 1
    Datacenter MaxNIC> hosts
    [1] Host 10.143.XX.XX (datacenter-001):     VMware ESX Server 6.5.0 (build:5969303)
    [2] Host 10.143.XX.XX (datacenter-001):      VMware ESX Server 6.0.0 (build:2494585)
    ...
    Datacenter MaxNIC> deselect
    VirtualCenter> hosts
    [1] Host 10.143.XX.XX (datacenter-001):     VMware ESX Server 6.5.0 (build:5969303)
    [2] Host 10.143.XX.XX (datacenter-001):      VMware ESX Server 6.0.0 (build:2494585)
    ...
    VirtualCenter> host 2        
    Host 10.143.XX.XX> hardware
    [2] Host 10.143.XX.XX9 (datacenter-001):      VMware ESX Server 6.0.0 (build:2494585)
    Server: 'PowerEdge R720' from Dell Inc.
    CPU Model: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz (Feature:0000:0000:0000:0010:0000:0110:1101:0111)
    UUID: 4c4c4544-0043-4d10-8044-cac04f425a31 (BIOS: 2.1.2)
    - Physical NICs:
        vmnic0 - 0000:01:00.0: IO Device 'NetXtreme BCM5720 Gigabit Ethernet' from Broadcom Corporation
        PCI ID: 14E4:165F:1028:1F5B        Driver: tg3 N/A
    - Storage Adapters:
        vmhba0 - 0000:00:1f.2: IO Device 'Patsburg 6 Port SATA AHCI Controller' from Intel Corporation
        PCI ID: 8086:1D02:1028:48C Driver: ahci N/A
        vmhba1 - 0000:03:00.0: IO Device 'PERC H310 Mini Monolithics' from LSI / Symbios Logic
        PCI ID: 1000:73:1028:1F51  Driver: megaraid_sas N/A
    

Validate hardware compatibility of a selected host
------------

    Host 10.143.XX.XX> comp -s
    Host 10.143.XX.XX: May Not Be Compatible
    [Server: Warnings]  Server 'PowerEdge R720' may not be compatible for ESX 6.0.0
    [IO: Warnings]  Some IO devices may not be compatible for ESX 6.0.0
    Compatibility issues:
        - Server Model 'PowerEdge R720' with Intel Xeon E5-2600-v2 Series (ID:33815) is certified
        but current CPU Series (features:0x206d7) is not supported
        Certified BIOS versions are higher than 2.1.2
        More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=server&productid=33815
        - IO Device 'PERC H310 Mini' (PCIID:1000:0073:1028:1f51) is certified
        but current driver (megaraid_sas) is not supported
        More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=io&productid=40344
        ...

    Host 10.143.XX.XX> comp -v
    Host 10.143.XX.XX: May Not Be Compatible
    [Server: Warnings]  Server 'PowerEdge R720' may not be compatible for ESX 6.0.0
    Server: 'PowerEdge R720' from Dell Inc.
    CPU Model: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz (Feature:0000:0000:0000:0010:0000:0110:1101:0111)
    UUID: 4c4c4544-0043-4d10-8044-cac04f425a31 (BIOS: 2.1.2)
        [Warning]  May Not Be Compatible: found that Server 'PowerEdge R720' is compatible but there are some mismatched compatibility details
        - Server Model 'PowerEdge R720' with Intel Xeon E5-2600-v2 Series (ID:33815) is certified
        but current CPU Series (features:0x206d7) is not supported
        Certified BIOS versions are higher than 2.1.2
        More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=server&productid=33815
    
    [IO: Warnings]  Some IO devices may not be compatible for ESX 6.0.0
    - Physical NICs:
        vmnic0 - 0000:01:00.0: IO Device 'NetXtreme BCM5720 Gigabit Ethernet' from Broadcom Corporation
        PCI ID: 14E4:165F:1028:1F5B        Driver: tg3 N/A
        [OK]  Compatible: IO Device 'NetXtreme BCM5720 Gigabit Ethernet (PCIID:14E4:165F:1028:1F5B)' is compatible for ESX 6.0.0
            - More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=io&productid=37809
    - Storage Adapters:
        vmhba0 - 0000:00:1f.2: IO Device 'Patsburg 6 Port SATA AHCI Controller' from Intel Corporation
        PCI ID: 8086:1D02:1028:48C Driver: ahci N/A
        [OK]  Compatible: IO Device 'Patsburg 6 Port SATA AHCI Controller (PCIID:8086:1D02:1028:48C)' is compatible for ESX 6.0.0
            - More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=io&productid=35697
        ...
    

Check upgradable ESXi Releases and validate hardware compatibility with a selected ESXi release
------------

    Host 10.143.XX.XX> up
    > Upgradable releases of VMware ESX Server 6.0.0
        [ID:694] VMware vSphere Hypervisor (ESXi) 6.0.0 U1
        [ID:994] VMware vSphere Hypervisor (ESXi) 6.0.0 U2
        [ID:2131] VMware vSphere Hypervisor (ESXi) 6.5.0
        [ID:2135] VMware vSphere Hypervisor (ESXi) 6.0.0 U3
        [ID:2331] VMware vSphere Hypervisor (ESXi) 6.5.0 U1
        [ID:2735] VMware vSphere Hypervisor (ESXi) 6.7.0

    Host 10.143.XX.XX> upto 6.5.0 -s
        [OK] The specified release (VMware vSphere Hypervisor (ESXi) 6.5.0) is upgradable from this VMware vSphere Hypervisor (ESXi) 6.0.0
        [Server: Warnings]  Server 'PowerEdge R720' may not be compatible for ESX 6.5.0
        [IO: Warnings]  Some IO devices may not be compatible for ESX 6.5.0
        Compatibility issues:
        - Server Model 'PowerEdge R720' with Intel Xeon E5-2600-v2 Series (ID:33815) is certified
            but current CPU Series (features:0x206d7) is not supported
            Certified BIOS versions are higher than 2.1.2
            More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=server&productid=33815
        - IO Device 'PERC H310 Mini' (PCIID:1000:0073:1028:1f51) is certified
            but current driver (megaraid_sas) is not supported
            More information: http://www.vmware.com/resources/compatibility/detail.php?deviceCategory=io&productid=40344
            
    

Generate a compatibility validation report with csv format
------------

    c:\>compchecker.py -s 10.192.XX.XX -u admin -r    
    Enter password for host "10.192.XX.XX" and user "admin":
        VMware Compatibility Checker (host:10.192.XX.XX, user: admin)
        > connecting host...
        > collection host information...
        [ VMware VirtualCenter Server 6.5.0 (VMware vCenter Server 6.5.0 build-4602587) ]
        Generating compatibility validation report for 10.192.XX.XX
        [Host 10.143.XX.XX] Collecting hardware information...
        [Host 10.143.XX.XX] Validating Compatibility...
        ...
        Report 'compreport_10.192.XX.XX.csv' has been created!    
    c:\>compchecker.py -s 10.192.XX.XX -u admin -r -v 6.7.0
        ...
        Report 'compreport_10.192.XX.XX_6.7.0.csv' has been created!    
    
https://www.youtube.com/watch?v=24VbK2e2_qY

Build 10066133

  • Fixed bugs

Build 8951845

  1. Offline case support
  2. The current script requires to be executed with access to both public internet and target hosts. The new version can separately validate compatibility from collecting hardware information. Hence, user can collect hardware information on a system without public internet access and save the information in a json file. And he can validate compatibility of collected hardware from a saved json file on a system with public internet access.

    ex)
    The ‘-g’ option will collect hardware information and generate a json file. (no need to have internet access)
    $compchecker.py -s <host> -u <user> -g <json-data-filename>

    The ‘-f’ option will validate compatibility from a json file (no need to access target hosts)
    $compchecker.py -f <json-data-filename>
  3. Multiple virtual centers support

    The host parameter with the '-s' option now accepts comma separated multiple hostnames. This feature will be useful to create a single compatibility report for multiple VCs

    example)
    $compchecker.py -s <host1>,<host2>,<host3> -u <user>(,<user>)
  4. More information in the compatibility report

    "Installed Release", "Checked Release", and hardware information have been added in the report.
  5. The "-p" option to set a proxy server
    The https proxy server can be specified with the "-p" option
Report a Bug