Dispatch /

VMware vSphere Auto Deploy Reverse Web Proxy Caching

11 Apr 2014

Lately, I’ve been working with a customer on a vSphere 5.1 and 5.5 Auto Deploy environment. The environment is rather large, and each pod of compute/storage requires localized access to the ESXi VIBs during the boot process. This falls in line with the best practice outlined in the VMware vSphere Installation and Setup Guide.

Auto Deploy Load Management Best Practice

Simultaneously booting large numbers of hosts places a significant load on the Auto Deploy server. Because Auto Deploy is a web server at its core, you can use existing web server scaling technologies to help distribute the load. For example, one or more caching reverse proxies can be used with Auto Deploy to serve up the static files that make up the majority of an ESXi boot image. Configure the reverse proxy to cache static content and pass requests through to the Auto Deploy server.

Configure the hosts to boot off the reverse proxy by modifying the TFTP tramp file. When you click Download TFTP ZIP in the vSphere Client, the system downloads the ZIP file that contains the tramp file. See Prepare Your System and Install the Auto Deploy Server. Change the URLs in that file to refer to the address of the reverse proxy.

Kyle Gleed has written a terrific article on how to set up an Apache HTTP reverse web proxy to cache the content from the Auto Deploy server. However, I noticed that he mistakenly did not mention that some additional Apache modules are needed to enable the disk caching directives within Apache HTTP Server. Otherwise, Apache will not cache the content from the Auto Deploy server and the reverse web proxy will only act as a web proxy – with no caching.

Load the Necessary Modules

Specifically, the mod_cache and mod_disk_cache Apache modules need to be loaded to enable these caching directives. Kyle covers these directives in the article.

You might be wondering where the proxy stores the cached content. This is defined in the CacheRoot directive in the Apache HTTP Serverhttpd.conf.

For example: CacheRoot /var/cache/AutoDeploy/

Set Cache Timing

In addition, the CacheDefaultExpire directive specifies a default time, in seconds, to cache a piece of content (“document”) if neither an expiry date nor last-modified date is provided with the document. The value specified with the CacheMaxExpire directive does not override this setting.

For example: CacheDefaultExpire 86400

NOTE: The CacheMaxExpire directive specifies the maximum number of seconds for which cachable HTTP documents will be retained without checking the origin server. Thus, documents cached from the Auto Deploy server will be out of date in, at most, this number of seconds. This maximum value is enforced even if an expiry date was supplied.

Verify VIBs are Loading

Lastly, if you need to verify that an ESXi host is loading VIBs from a reverse web proxy, you will need to either review the Apache logs (eg. /var/log/httpd/access_log) on the reverse web proxy for “Get” requests from the ESXi host IP address or quickly catch the address during the boot process (which moves pretty fast).

By ensuring you follow these steps at setup, you’ll ensure caching will work as expected.

Twitter Facebook