Uncategorized

Quick Tip: vSphere Auto Deploy Reverse Web Proxy Caching

By Ryan Johnson, Staff Technical Account Manager, VMware Professional Services
Ryan JohnsonLately, 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 Deployserver.

Configure the hosts to boot off the reverse proxy by modifying the Trivial FTP tramp file. When you click Download Trivial FTP 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 following these steps at setup, you’ll ensure caching will work as expected.

Ryan Johnson, an avid husband, father, runner and technologist, is based in Orlando, Florida USA. Ryan is also a Staff Technical Account Manager in the Professional Services Organization at VMware. As an accomplished enterprise architect and technologist, he enables VMware’s largest customers and VMUG community members in Central and North Florida to accelerate and simplify their infrastructures services and organizations through VMware’s software defined data center and hybrid cloud solutions.
Follow him on Twitter at @tenthirtyam. This post originally appeared on his blog, tenthirtyam.org.