{"id":682,"date":"2011-09-29T08:43:16","date_gmt":"2011-09-29T12:43:16","guid":{"rendered":"http:\/\/chriscolotti.us\/?p=682"},"modified":"2014-08-22T14:02:58","modified_gmt":"2014-08-22T18:02:58","slug":"how-to-configure-vcloud-director-load-balancing","status":"publish","type":"post","link":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/","title":{"rendered":"How To: Configure vCloud Director Load Balancing"},"content":{"rendered":"

I\u00a0realized\u00a0yesterday in talking to a friend and\u00a0colleague\u00a0of mine that there is a lot of confusion about load balancing vCloud Director cells. \u00a0I had written a detailed post about considerations<\/a> and many of these were also incorporated into the new vCAT 2.0<\/a>. \u00a0However it seems there is still something lost in\u00a0translation\u00a0so I wanted to break it down to very some very simple\u00a0requirements\u00a0that are easy to follow. \u00a0Below is the requirements needed to get load balancing working. \u00a0Assuming you have a network admin to work with this will NOT be the\u00a0instructions\u00a0on configuring a specific load balancer, but these are the requirements you can give to your engineer. \u00a0You can change the hostnames of course these are just for illustration and to get the point\u00a0across.<\/p>\n

Let’s start first by defining the DNS and IP address that are needed to make the configuration work, then we will go into the other items you need to get the network team rolling. \u00a0You need to have a little understanding of SSL\u00a0certificates\u00a0and client termination to understand this as well.<\/p>\n

Transfer Storage<\/strong><\/h2>\n

Be sure you setup the shared transfer storage per the documentation. \u00a0A key component of the multi-cell setup is that you have the transfer directory mapped to a shared location on each cell. \u00a0This is done by editing FSTAB to alter the mount point on the cells for \/opt\/vmware\/vcloud-director\/data\/transfer.<\/p>\n

IP Addresses and Host Names<\/strong><\/h2>\n

vCloud Director Cell HTTP DNS:\u00a0<\/strong><\/p>\n

host1.companyname.com = HTTP IP address
\nhost2.companyname.com\u00a0= HTTP IP address<\/p>\n

vCloud Director Cell Remote Console DNS:\u00a0<\/strong><\/p>\n

host1-con.companyname.com = Console IP address
\nhost2-con.companyname.com\u00a0= Console IP address<\/p>\n

Load Balancer DNS Entries<\/strong><\/p>\n

vcloud.companyname.com = HTTP VIP IP address
\nvcloud-con.companyname.com = \u00a0Console VIP IP address<\/p>\n

Now that we have defined the basic IP addresses we need, we need to also make sure the certificates are setup properly. \u00a0Assuming you want to use signed certificates here is what I have found works best for assigning the certificates.<\/p>\n

SSL\u00a0Certificates<\/strong><\/h2>\n

HTTP Certificates (With SSL Offload for HTTP):<\/strong><\/p>\n

For the individual Cells you want to issue a certificate that MATCHES the hostname above. \u00a0This will be used by the load balancer to connect via SSL to the hosts in the pool. \u00a0Also this will allow people to connect directly to a cell without a certificate error. \u00a0Then you can obtain a\u00a0certificate\u00a0for the Load Balancer VIP address to install directly onto the load balancer. \u00a0This will be the secure connection the clients use when connecting through the load balancer. \u00a0This setup ensures client to load balancer and load balancer to cell is encrypted.<\/p>\n

Console Certificates (THIS CANNOT USE SSL OFFLOAD!!!):<\/strong><\/p>\n

This is where people break things. \u00a0The Console Proxy port although on PORT 443 is NOT in fact an HTTPS web connection. \u00a0It is a pure socket connection. \u00a0For this reason you cannot do SSL offload and this VIP\/pool needs to be passthrough to work. \u00a0Therefore to avoid SSL certificate errors you do NOT want to issue the console proxy certificates\u00a0to the hostnames listed above. \u00a0You actually want BOTH console proxy ports to use the SAME certificate hostname of ‘vcloud-con.companyname.com<\/strong><\/em>‘. \u00a0This way when passthrough happens the clients will see the same certificate name presented to them.<\/p>\n

HTTP Certificates (WITHOUT SSL Offload for HTTP):<\/strong><\/p>\n

If for some reason you cannot or do not want to terminate client SSL on the load balancer and leverage SSL offload, then you can setup the HTTP certificates like the console proxy and do pass through. \u00a0Just like with the console proxy though you will need to install a certificate with the SAME hostname if you do not wat the clients to get browser errors. \u00a0However if you browse to a server directly you will get the name mismatch error.<\/p>\n

Important NOTE:<\/strong> \u00a0These must be named EXACTLY as ‘http’ and ‘consoleproxy’, (Without the quotes), when you create the requests or if you use self signed. \u00a0vCloud Director is coded to only look for those certificate names. \u00a0Shout out to\u00a0Rajeev Karamchedu<\/a>\u00a0for pointing that out.<\/p>\n

vCloud Director Configuration<\/strong><\/h2>\n

Lastly, for all this to work there is a requirement to update the administration settings for the Public Address URL’s. \u00a0This can be found under the Administration section. \u00a0However each of the three has a different syntax in order to work properly, and you can see the addresses are based on the above original configurations. \u00a0These need to be exact and you will notice the console proxy does NOT use “HTTP”<\/p>\n

\"\"<\/a><\/p>\n

VCD Public URL = <\/em> (Notice HTTPS)<\/p>\n

VCD Public Console Proxy Address = vcloud-con.companyname.com<\/span><\/em> (NO HTTPS!!)<\/p>\n

VCD Public REST API Base URL =\u00a0<\/em>\u00a0(Notice NO \/cloud)<\/p>\n

These are EXTREMELY important\u00a0because\u00a0they will redirect the client requests always back to these addresses. \u00a0If you do not set these you will remain on the same server and your console proxy connection will also be directed to that same server and not be load balanced. \u00a0Bottom line is if you have a load balancer you WANT to set these URL’s.<\/p>\n

Final Load Balancer Requirements<\/strong><\/h2>\n

There is a few other requirements most load balancer configurations should have and that is the Health Monitors and SSL redirects. \u00a0For the health monitors there is one that will check the HTTP side of things, but it is important to also monitor the Console Proxy for various reasons. \u00a0The two services are not “Dependent” on each other and you COULD have Cells that are in a load balance pool JUST for console connections in a high traffic environment. \u00a0Then you may have cells that only handle HTTP\/API traffic. \u00a0This is completely doable from a design use case so below are the two monitor addresses. \u00a0The key below is each one is looking to the DIFFERENT configured IP addresses<\/p>\n

HTTP Health Monitor =\u00a0http:\/\/<Cell_Hostname>\/cloud\/server_status<\/strong><\/em><\/span><\/p>\n

Console Proxy Health Monitor =\u00a0http:\/\/\/sdk\/vimServiceVersions.xml<\/strong><\/span><\/em><\/p>\n

I am pretty sure the vCAT document mentions this but it is worth repeating that you want to set SSL persistance as well. \u00a0This will ensure the Portal connections and console proxy connections are at least persistant for the duration of the SSL connection. \u00a0Source IP persistance can be used but, it may not expire as quickly as SSL persistance.<\/p>\n

Lastly you will want your load balancer to redirect HTTP connections to both VIP pools to HTTPS. \u00a0This is just good load balancer web practice than if the VIP gets an HTTP request it redirects the client to the HTTPS version.<\/p>\n","protected":false},"excerpt":{"rendered":"

I\u00a0realized\u00a0yesterday in talking to a friend and\u00a0colleague\u00a0of mine that there is a lot of confusion about load balancing vCloud Director cells. \u00a0I had written a detailed post about considerations and many of these were also incorporated into the new vCAT 2.0. \u00a0However it seems there is still something lost in\u00a0translation\u00a0so I wanted to break it …<\/p>\n","protected":false},"author":2,"featured_media":704,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[19,9],"tags":[81,92,93,163,195],"jetpack_publicize_connections":[],"yoast_head":"\nHow To: Configure vCloud Director Load Balancing \u2022 Chris Colotti's Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How To: Configure vCloud Director Load Balancing \u2022 Chris Colotti's Blog\" \/>\n<meta property=\"og:description\" content=\"I\u00a0realized\u00a0yesterday in talking to a friend and\u00a0colleague\u00a0of mine that there is a lot of confusion about load balancing vCloud Director cells. \u00a0I had written a detailed post about considerations and many of these were also incorporated into the new vCAT 2.0. \u00a0However it seems there is still something lost in\u00a0translation\u00a0so I wanted to break it …\" \/>\n<meta property=\"og:url\" content=\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/\" \/>\n<meta property=\"og:site_name\" content=\"Chris Colotti's Blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-09-29T12:43:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-08-22T18:02:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif?fit=473%2C480&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"473\" \/>\n\t<meta property=\"og:image:height\" content=\"480\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Chris Colotti\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ccolotti\" \/>\n<meta name=\"twitter:site\" content=\"@ccolotti\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chris Colotti\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/\",\"url\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/\",\"name\":\"How To: Configure vCloud Director Load Balancing \u2022 Chris Colotti's Blog\",\"isPartOf\":{\"@id\":\"https:\/\/chriscolotti.us\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif\",\"datePublished\":\"2011-09-29T12:43:16+00:00\",\"dateModified\":\"2014-08-22T18:02:58+00:00\",\"author\":{\"@id\":\"https:\/\/chriscolotti.us\/#\/schema\/person\/7dd10fd3d400b31cbb9a4a4a14adb0c7\"},\"breadcrumb\":{\"@id\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#primaryimage\",\"url\":\"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif\",\"contentUrl\":\"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif\",\"width\":\"473\",\"height\":\"480\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/chriscolotti.us\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How To: Configure vCloud Director Load Balancing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/chriscolotti.us\/#website\",\"url\":\"https:\/\/chriscolotti.us\/\",\"name\":\"Chris Colotti's Blog\",\"description\":\"Thoughts and Theories About...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/chriscolotti.us\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/chriscolotti.us\/#\/schema\/person\/7dd10fd3d400b31cbb9a4a4a14adb0c7\",\"name\":\"Chris Colotti\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/chriscolotti.us\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c93553a4a3e76f774ead33ebad5dbc1e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c93553a4a3e76f774ead33ebad5dbc1e?s=96&d=mm&r=g\",\"caption\":\"Chris Colotti\"},\"description\":\"Chris is active on the VMUG and event speaking circuit and is available for many events if you want to reach out and ask. Previously to this he spent close to a decade working for VMware as a Principal Architect. Previous to his nine plus years at VMware, Chris was a System Administrator that evolved his career into a data center architect. Chris spends a lot of time mentoring co-workers and friends on the benefits of personal growth and professional development. Chris is also amongst the first VMware Certified Design Experts (VCDX#37), and author of multiple white papers. In his spare time he helps his wife Julie run her promotional products as the accountant, book keeper, and IT Support. Chris also believes in both a healthy body and healthy mind, and has become heavily involved with fitness as a Diamond Team Beachbody Coach using P90X and other Beachbody Programs. Although Technology is his day job, Chris is passionate about fitness after losing 60 pounds himself in the last few years.\",\"sameAs\":[\"http:\/\/chriscolotti.us\"],\"url\":\"https:\/\/chriscolotti.us\/author\/ccolotti\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How To: Configure vCloud Director Load Balancing \u2022 Chris Colotti's Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/","og_locale":"en_US","og_type":"article","og_title":"How To: Configure vCloud Director Load Balancing \u2022 Chris Colotti's Blog","og_description":"I\u00a0realized\u00a0yesterday in talking to a friend and\u00a0colleague\u00a0of mine that there is a lot of confusion about load balancing vCloud Director cells. \u00a0I had written a detailed post about considerations and many of these were also incorporated into the new vCAT 2.0. \u00a0However it seems there is still something lost in\u00a0translation\u00a0so I wanted to break it …","og_url":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/","og_site_name":"Chris Colotti's Blog","article_published_time":"2011-09-29T12:43:16+00:00","article_modified_time":"2014-08-22T18:02:58+00:00","og_image":[{"width":"473","height":"480","url":"https:\/\/i2.wp.com\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif?fit=473%2C480&ssl=1","type":"image\/gif"}],"author":"Chris Colotti","twitter_card":"summary_large_image","twitter_creator":"@ccolotti","twitter_site":"@ccolotti","twitter_misc":{"Written by":"Chris Colotti","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/","url":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/","name":"How To: Configure vCloud Director Load Balancing \u2022 Chris Colotti's Blog","isPartOf":{"@id":"https:\/\/chriscolotti.us\/#website"},"primaryImageOfPage":{"@id":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#primaryimage"},"image":{"@id":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#primaryimage"},"thumbnailUrl":"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif","datePublished":"2011-09-29T12:43:16+00:00","dateModified":"2014-08-22T18:02:58+00:00","author":{"@id":"https:\/\/chriscolotti.us\/#\/schema\/person\/7dd10fd3d400b31cbb9a4a4a14adb0c7"},"breadcrumb":{"@id":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#primaryimage","url":"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif","contentUrl":"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif","width":"473","height":"480"},{"@type":"BreadcrumbList","@id":"https:\/\/chriscolotti.us\/vmware\/how-to-configure-vcloud-director-load-balancing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/chriscolotti.us\/"},{"@type":"ListItem","position":2,"name":"How To: Configure vCloud Director Load Balancing"}]},{"@type":"WebSite","@id":"https:\/\/chriscolotti.us\/#website","url":"https:\/\/chriscolotti.us\/","name":"Chris Colotti's Blog","description":"Thoughts and Theories About...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/chriscolotti.us\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/chriscolotti.us\/#\/schema\/person\/7dd10fd3d400b31cbb9a4a4a14adb0c7","name":"Chris Colotti","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/chriscolotti.us\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c93553a4a3e76f774ead33ebad5dbc1e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c93553a4a3e76f774ead33ebad5dbc1e?s=96&d=mm&r=g","caption":"Chris Colotti"},"description":"Chris is active on the VMUG and event speaking circuit and is available for many events if you want to reach out and ask. Previously to this he spent close to a decade working for VMware as a Principal Architect. Previous to his nine plus years at VMware, Chris was a System Administrator that evolved his career into a data center architect. Chris spends a lot of time mentoring co-workers and friends on the benefits of personal growth and professional development. Chris is also amongst the first VMware Certified Design Experts (VCDX#37), and author of multiple white papers. In his spare time he helps his wife Julie run her promotional products as the accountant, book keeper, and IT Support. Chris also believes in both a healthy body and healthy mind, and has become heavily involved with fitness as a Diamond Team Beachbody Coach using P90X and other Beachbody Programs. Although Technology is his day job, Chris is passionate about fitness after losing 60 pounds himself in the last few years.","sameAs":["http:\/\/chriscolotti.us"],"url":"https:\/\/chriscolotti.us\/author\/ccolotti\/"}]}},"jetpack_featured_media_url":"https:\/\/chriscolotti.us\/wp-content\/uploads\/2011\/09\/how-to.gif","jetpack_shortlink":"https:\/\/wp.me\/p1K3dw-b0","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/posts\/682"}],"collection":[{"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/comments?post=682"}],"version-history":[{"count":0,"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/posts\/682\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/media\/704"}],"wp:attachment":[{"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/media?parent=682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/categories?post=682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chriscolotti.us\/wp-json\/wp\/v2\/tags?post=682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}