{"id":3350,"date":"2015-10-22T11:49:41","date_gmt":"2015-10-22T16:49:41","guid":{"rendered":"http:\/\/www.jasemccarty.com\/blog\/?p=3350"},"modified":"2015-11-18T09:05:22","modified_gmt":"2015-11-18T15:05:22","slug":"vsan-health-check-vib-installation-vsphere-roboessentials-plus","status":"publish","type":"post","link":"https:\/\/www.jasemccarty.com\/blog\/vsan-health-check-vib-installation-vsphere-roboessentials-plus\/","title":{"rendered":"VSAN Health Check VIB Installation &#038; vSphere ROBO\/Essentials Plus"},"content":{"rendered":"<p>I was talking with a fellow VMware guy, <a href=\"https:\/\/twitter.com\/mlydy\" target=\"_blank\">Matt Lydy<\/a>, at VMworld Barcelona and he brought something to my attention around the Virtual SAN 6.x Health Check Plug-in. Matt is a Technical Account Manager in Ohio. I had the pleasure of working the VMware booth with him at VMworld US. He mentioned that the Health Check plugin requires Dynamic Resource Scheduling (DRS). I was pretty sure this wasn&#8217;t correct, but upon further conversation, he specified that DRS is required for the automatic installation. At that point a lightbulb went off. It certainly does.<!--more--><\/p>\n<p><strong>Health Check Plug-in<\/strong><br \/>\nVirtual SAN licensing\/use isn&#8217;t limited by any supported edition of VMware vSphere (vSphere Hypervisor free isn&#8217;t supported for obvious reasons). Pre vSphere 6.0 Update 1, the Health Check plug-in had to be manually installed in vCenter. With 6.0 Update 1, it is automatically included. \u00a0If the Health Check VIB is already installed on a host, the service is automatically enabled. If the VIB isn&#8217;t installed, to\u00a0enable this service, hosts must be put in maintenance mode\/VMs evacuated, VIB installed, each\u00a0host rebooted and taken out of maintenance mode in a sequential fashion. Again, this is an automatic process. When maintenance mode is initiated for a host, DRS migrates workloads off of the host.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/HC-PreCheck.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-3352\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/HC-PreCheck.png\" alt=\"HC-PreCheck\" width=\"182\" height=\"108\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/HC-PreCheck.png 364w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/HC-PreCheck-300x178.png 300w\" sizes=\"auto, (max-width: 182px) 100vw, 182px\" \/><\/a>What happens if DRS (with automated movement) isn&#8217;t enabled? An error is thrown, as hosts can&#8217;t be automatically evacuated. For customers that have licensing that includes DRS, simply enabling the service takes care of this requirement. But what about those that have all of the other features, but don&#8217;t have DRS? I&#8217;m specifically thinking about those with vSphere ROBO (Standard\/Advanced) and Essentials Plus. \u00a0The Health Check gui will handle the automated process of installing the VIB, but only if DRS is licensed. If it isn&#8217;t licensed, it won&#8217;t install the VIB.<br \/>\n<strong>How to install the Health Check VIB<\/strong><br \/>\nThe Health Check VIB can be installed manually a couple different ways. Update Manager is one, but isn&#8217;t included in these editions. It can be installed by enabling SSH to a host, and manually installing the vib from either a URL or by a local\/shared path. That&#8217;s easy, but manual, and requires enabling SSH, installing the vib from the command line, then disabling SSH.<\/p>\n<p>To overcome some of this, I took Brian Graf&#8217;s Host Client script, and modified it for my needs. You can find that script here:<br \/>\n<a href=\"https:\/\/github.com\/jasemccarty\/Scripts\/blob\/master\/HeathCheckVIB.psm1\">https:\/\/github.com\/jasemccarty\/Scripts\/blob\/master\/HeathCheckVIB.psm1<br \/>\n<\/a><em>*Remember, this is just me hacking around, and this script is not supported by myself or VMware<\/em><\/p>\n<p>I chose to put\u00a0both of the Install and Remove actions into a single module, rather than having to execute this as a script. A couple differences (and bear with me, my PowerShell is rusty over the past 5 years) are:<\/p>\n<ul>\n<li>I create a &#8220;vibs&#8221; folder on the vsanDatastore &#8211; Had trouble uploading directly to the root of the Virtual SAN datastore<\/li>\n<li>I changed the PowerCLI command that performs the action of &#8220;esxcli software vib install&#8221; &#8211; This is because I&#8217;m using a .zip and not a .vib\n<ul>\n<li>Brian&#8217;s code:\u00a0$action = $ESXCLI.software.vib.install($null,$null,$null,$null,$null,$null,$null,$null,<strong>$VIBPATH<\/strong>)<\/li>\n<li>My code:\u00a0<span class=\"pl-k\">$<\/span><span class=\"pl-smi\">action<\/span> <span class=\"pl-k\">=<\/span> <span class=\"pl-k\">$<\/span><span class=\"pl-smi\">ESXCLI<\/span><span class=\"pl-en\">.software.vib.install<\/span><span class=\"pl-k\">(<\/span><strong><span class=\"pl-k\">$<\/span><span class=\"pl-smi\">VIBPATH<\/span><\/strong><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">,<\/span><span class=\"pl-k\">$<\/span><span class=\"pl-c1\">null<\/span><span class=\"pl-k\">)<\/span><\/li>\n<\/ul>\n<\/li>\n<li>Renamed instances of Install-HostClient to Install-HealthCheck\/Remove-HostClient to Remove-HealthCheck<\/li>\n<\/ul>\n<p>Save the PowerShell Module to c:\\users\\username\\Documents\\WindowsPowerShell\\Module\\HealthCheckVIB\\HealthCheckVIB.psm1<\/p>\n<p>You&#8217;ll also have to go download the vib, which you can find on the vSphere Download page, under VMware Virtual SAN Tools, Plug-ins and Appliances.<br \/>\n<a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/GetTheVIB.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3355\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/GetTheVIB.png\" alt=\"GetTheVIB\" width=\"547\" height=\"285\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/GetTheVIB.png 1094w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/GetTheVIB-300x156.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/GetTheVIB-1024x533.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/GetTheVIB-900x468.png 900w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><\/a><\/p>\n<p>To install the vib via PowerCLI, launch PowerCLI, Connect to vCenter, and then run the following command:<\/p>\n<p>Install-HealthCheck -Datastore (Get-Datastore vsanDatastoreName) -Cluster (Get-Cluster ClusterName) -vibfullpath c:\\path\\to\\vib\\healthcheckvib.zip<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/Install-HealthCheck.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3362\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/Install-HealthCheck.png\" alt=\"Install-HealthCheck\" width=\"497\" height=\"205\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/Install-HealthCheck.png 994w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/Install-HealthCheck-300x124.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/Install-HealthCheck-900x371.png 900w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Now manually evacuate VMs from hosts with your own manual rolling upgrade. Once all hosts have been rebooted, the Health Check service will be enabled.<\/p>\n<p><a href=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/EPwHC.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3365\" src=\"http:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/EPwHC.png\" alt=\"EPwHC\" width=\"681\" height=\"378\" srcset=\"https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/EPwHC.png 1362w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/EPwHC-300x167.png 300w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/EPwHC-1024x568.png 1024w, https:\/\/www.jasemccarty.com\/blog\/wp-content\/uploads\/2015\/10\/EPwHC-900x500.png 900w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><\/a><\/p>\n<p>I attempted to enable DRS to illustrate that I don&#8217;t have it as an available feature, and I still have the Health Check service enabled.<\/p>\n<p>To remove the vib from each host in the cluster, simply run Remove-HealthCheck -Cluster (Get-Cluster ClusterName).<\/p>\n<p>Hopefully this will help those customers who wish to use the Health Check service, but aren&#8217;t licensed for DRS.<\/p>\n<p>Thanks for bringing this to my attention Matt!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was talking with a fellow VMware guy, Matt Lydy, at VMworld Barcelona and he brought something to my attention around the Virtual SAN 6.x &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[135,10,12],"tags":[161,163,62,65,162,160,151,152],"class_list":["post-3350","post","type-post","status-publish","format-standard","hentry","category-software-defined","category-storage-2","category-virtualization","tag-drs","tag-essentials-plus","tag-plug-in","tag-powercli","tag-robo","tag-vib","tag-virtual-san","tag-vsan"],"_links":{"self":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/3350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/comments?post=3350"}],"version-history":[{"count":18,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/3350\/revisions"}],"predecessor-version":[{"id":3383,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/posts\/3350\/revisions\/3383"}],"wp:attachment":[{"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/media?parent=3350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/categories?post=3350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jasemccarty.com\/blog\/wp-json\/wp\/v2\/tags?post=3350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}