Friday, 10 February 2012

Slow boot of ESXi running virtual MS Failover Сluster is finally solved in vSphere 5

We have quite a few virtual MS Failover Clusters in our vSphere farm. Usually these are File&Print and SQL clusters. Some people say MS clustering is old fashioned way of providing HA for most important users' services.  Having them in virtual environment makes vSphere maintenance possible only during non-working hours for the simple reason that you can't vmotion cluster nodes off the ESXi hosts while they are powered on. Another big is a slow boot time of ESXi hosts that have presented shared RDM disks for MS Failover cluster. During boot process ESXi host tries to claim all disks it can see, but since shared cluster RDM disks have Persistent SCSI reservation placed by active MS Cluster node, such claim request will eventually time out. If you have a lot of such disks you can easily send your ESXi host for reboot and take a 40 mins nap. Maintenance of vSphere farm with 10-20 host turns out into a boring weekend.
VMware acknowledged this problem quite a long time ago, but all suggested workarounds were not efficient. The boot time was still slow.  

Yesterday, I finally tested upgrade to vSphere 5 and documented all the steps I will need to take for the upgrade of production environment.The first thing after upgrade I noticed was even longer boot time that quite disappointed me. I was inclined to think there would be built-in improvement in vSphere 5 for such a long lasting problem, but I was wrong. So, again I quickly googled and found the old VMware KB about this issue, but now it was updated with vSphere 5 information.
Now there is absolutely different solution for ESXi 5. With ESXi 4.1 you have to decrease Reservation Conflict Value Timeout (Scsi.CRTimeoutDuringBoot). With ESX 5.0 you manually tell ESXi hosts which LUNs are constantly reserved. Thus, ESXi will not even try to claim these disks. 

VMware used a word perennially, which I have never heard before :)

You will need to SSH into each ESXi host and run the following command 

esxcli storage core device setconfig -d <naa.id> --perennially-reserved=true 

where naa.id is RDM disk id that is used by MS Failover cluster.

Once I have everything properly configured it took my ESXi server less than 2 minutes to boot. Amazing improvement.

Here is the VMware KB with full information about this issue - KB Article 1016106.

PS  I am still looking for alternative solutions to fully get rid of virtual MS Failover clusters :)



If you find this post useful please share it with any of the buttons below. 

No comments:

Post a Comment