Daisy Chaining VMware UMDS

For a design question I was wondering if one could daisy chain multiple VMware Update Manager Download Service (UMDS) appliances. The documentation doesn’t say a word about it. The only thing I found Googling this was one blog that say’s it can’t be done. But that blog was from 2014, now, 2018, let’s see…

I started with a Ubuntu 16.04 LTS server and used William Lam’s script to install. It needed some more config:

(I tested this in Fusion virtual machines using vSphere 6.5 Update 1 (5969303)

Open the console of the first UMDS

sudo -i
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
apt-get install openssh-server -y

This gives the IP address (Ubuntu in Fusion creates ens33 interface)

Using an SSH (Windows: PuTTY / Mac: Termius) client, connect to the UMDS:

ssh vmninja@

In the SSH session

sudo -i
wget https://github.com/lamw/vghetto-scripts/raw/master/shell/install_umds65.sh
chmod +x install_umds65.sh
./install_umds65.sh /mnt/cdrom/umds/VMware-UMDS-6.5.0-5939545.tar.gz UMDSDB UMDS_DSN umdsuser VMware1!
/usr/local/vmware-umds/bin/vmware-umds -v
/usr/local/vmware-umds/bin/vmware-umds -G
/usr/local/vmware-umds/bin/vmware-umds -S --add-url https://vibsdepot.hpe.com/index.xml --enable-host --url-type HOST
/usr/local/vmware-umds/bin/vmware-umds -D
(In the example above I’ve added the HPE VibsDepot, to see if non-firstparty updates will get downloaded.
It will now start downloading… It takes some time, at the time of writing it was about 65 GB
Per William’s suggestion for the test I used Pythons buildin webserver:
apt-get install python-minimal -y
cd /var/lib/vmware-umds
python -m SimpleHTTPServer 80
Using this as a foreground task, it shows all HTTP requests being received: - - [18/Feb/2018 05:28:19] "GET /hostupdate/HPQ/metadata-hpnmi-vmware55-bundle-2.3-6.zip HTTP/1.1" 200 - - - [18/Feb/2018 05:28:19] "GET /hostupdate/csco/__hostupdate20-consolidated-metadata-index__.xml HTTP/1.1" 200 - - - [18/Feb/2018 05:28:19] "GET /hostupdate/csco/csco-VEM-5.5.0-metadata.zip HTTP/1.1" 200 - - - [18/Feb/2018 05:28:19] "GET /hostupdate/vmw/__hostupdate20-consolidated-metadata-index__.xml HTTP/1.1" 200 - - - [18/Feb/2018 05:28:19] "GET /hostupdate/vmw/vmw-ESXi-5.5.0-metadata.zip HTTP/1.1" 200 - - - [18/Feb/2018 05:28:19] "GET /hostupdate/vmw/vmw-ESXi-6.0.0-metadata.zip HTTP/1.1" 200 - - - [18/Feb/2018 05:28:20] "GET /hostupdate/vmw/vmw-ESXi-6.5.0-metadata.zip HTTP/1.1" 200 - - - [18/Feb/2018 05:28:20] "GET /vaupgrade/bootstrap_index.xml HTTP/1.1" 200 - - - [18/Feb/2018 05:28:20] "GET /vaupgrade/__valm-consolidated-index__.xml HTTP/1.1" 200 -

But first I needed to build a second UMDS, mostly the same as above, but:

  1. I didn’t add the HPE VibsDepot
  2. I pointed hostupdate.vmware.com and vapp-updates.vmware.com to localhost, by editing the /etc/hosts file to prevent it to try to download anything directly from VMware.com’s website.
    • For some reason it is not possible to remove these entries from UMDS’s config, or to remove the older versions… I don’t need updates for any ESXi prior to 6.5….
    vmninja@ubuntu:~$ cat /etc/hosts       localhost       ubuntu       hostupdate.vmware.com       vapp-updates.vmware.com
    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
  3. Instead of the HPE VibsDepot, I added the first UMDB as source:
    /usr/local/vmware-umds/bin/vmware-umds -S --add-url --enable-host --url-type HOST
    /usr/local/vmware-umds/bin/vmware-umds -S --add-url --enable-va --url-type VA
  4. Start the download task:

    /usr/local/vmware-umds/bin/vmware-umds -D

After downloading was complete, I added the second UMDS to vCenter Update Manager:


After clicking download now, the Non VMware Patches are visible in vCenter:


So it seams to be possible to daisy chain UMDS. I have no idea about the supportability of this configuration, and if using something in production, use a real webserver!


Homelab upgrade to 10 Gbps for less than $1000 /

I’ve finally installed my new Layer 3 10Gbps switch. An Ubiquiti EdgeSwitch 16-XG. This switch with 12 SFP+ ports and 4 RJ45 ports and is capable of Layer 3 routing. This device is available around 550 – 600 euro (roughly 650-700 US dollar)



I bought some second hand Mellanox  ConnectX-2 10Gbps SFP+ cards on Ebay for around   $20 each and also found Cisco H10GB CU3M 3meter Twinax SFP+ cables costing around $7 a pop on there as well.

So what does this bring, firstly the Mellanox cards are listed as compatible with ESXi 6.5 GA and U1 so after installation, they got recognized instantly.

After configuring a VMkernel port on it to test a vMotion from a single SATA SSD from Host01 to the same SSD in Host02 I saw this troughput:

WhatsApp Image 2017-08-29 at 08.16.00

It’s maxing out at 249 Megabyte per second transfer speed.

Mind you this is done with Intel Avoton servers, and some Kingston SSDNow V300 SV300S37A/60G SSDs. I was impressed!

And as an added benifit I could say goodbye to my trusty old Vyatta VM acting as router. The Ubiquiti switch is doing the routing now.

Few remarks: The switch can out of the box only be managed using the webbrowser to its default IP address ( even the console port is disabled out of the box. But since there is no console cable included it only bothers those idiots that have Cisco DB9-RJ45 console cables laying around…

But if you are accustomed to Cisco CLI, the CLI is compatible. No webadmin, CLI FTW.

I’ve broken the LACP LAG between my two Zyxel GS1910-24 switches, and connected each to the Ubiquiti using LC-LC Fiber and 1GBps SFPs. I’m geeking out with this new setup!


When I get the time I’m gonna try to setup LACP LAG between the Ubiquiti and each of the Zyxels to get 2 GBps of uplink bandwidth to the Zyxel switches, and maybe do some cable management 🙂


I know, it should be much neater, but to be perfectly honest I didn’t even got to bolt down the Ubiquiti (this is an older picture, before I got the Ubiquiti.)