VMware HA script in Zimbra Collaboration
- 1 VMware HA script in Zimbra Collaboration
VMware HA script in Zimbra Collaboration
Technical explanation of the VMware HA, Network Edition Feature of Zimbra Collaboration.
Zimbra introduce VMware HA scripts in Zimbra 8. This feature is only available in Network Edition, so Open Source users can't use it. This vmware-ha service works combine with VMware vSphere HA VM Monitoring and offer us the possibility to restart our Zimbra VM when any Zimbra service was down during the heartbeat defined time. The zmhactl script starts /opt/zimbra/libexec/vmware-heartbeat, which runs as a service (continuously), and interacts with VMware HA by running /opt/zimbra/libexec/vmware-appmonitor with different arguments (so zmhactl -> vmware-heartbeat -> vmware-appmonitor -> VMware HA).
- A. When the vmware-heartbeat script starts, it sends a vmware-appmonitor "enable" signal
- B. While running it does the following on a set schedule (every 15 seconds). This is supposedly configurable with localconfig vmware_heartbeat_interval, but it doesn't look like zmhactl actually uses that.
- i. runs vmware-appmonitor "isEnabled" to verify that application monitoring is enabled
- ii. runs "zmcontrol status" and checks the return code
- iii. if the status is OK then it sends vmware-appmonitor "markActive"
- C. When vmware-heartbeat is stopped, it sends a vmware-appmonitor "disable" signal
VMware vSphere HA VM Monitoring
Let's go to some basic information about VMware vSphere HA VM Monitoring, based in the official information. What is vSphere HA VM monitoring? HA VM monitoring will restart a VM if:
- That VMs VMware Tools heartbeats are not received in a set period of time (see below for details) and
- The VM isn't generating any storage or network IO (for 120 seconds by default, though this can be changed using the following advanced cluster level setting: das.iostatsInterval)
When exactly will the VM be reset? There are 3 built in presets (Low, Medium & High) and the option to select custom settings for any of these options.
|Failure Interval||Minimum uptime||Maximum per-VM resets||Maximum resets time window|
|Low||120 secs||480 secs||3||7 days|
|Medium||60 secs||240 secs||3||24 hours|
|High||30 secs||120 secs||3||1 hour|
What do the different options mean?
- Failure interval: HA will restart the VM if the VM heartbeat has not been received in this interval
- Minimum uptime: HA will wait this long after a VM is started to begin monitoring for VM tools heartbeats, storage and network IO
- Maximum per-VM resets: HA will restart the VM a maximum of this many times within the “Maximum resets time window”
- Maximum resets time window: (see “Maximum per-VM resets” above)
How to activate it in Zimbra Collaboration
The first step after the theory is activate it in our Zimbra different VM, we can check first if it's activated
[zimbra@archiving ~]$ zmprov gs `zmhostname` zimbraServiceInstalled | grep vmware-ha
If not we can enable it with trough CLI
[zimbra@mail ~]$ zmprov ms `zmhostname` +zimbraServiceEnabled vmware-ha [zimbra@mail ~]$ zmhactl start
Also we can enable it trough Admin Console Home>Configure>Servers (select the server that we want to activate the vmware-ha) and then click in Services>VMware HA Heartbeat
How to activate vSphere HA VM Monitoring
We can follow two ways to activate it in VMware vSphere; vSphere Client or vSphere web Client.
In our VMware vSphere Cluster and right-click>Edit Settings:
We need to have activated VMware vSphere HA functionality, and go to VM Monitoring, mark the option VM and Application Monitoring for be able to activate the Application Monitoring. In this moment, select the best Monitoring sensitivity for your environment is out of the Scope of the Zimbra Wiki and you need to have deep understand in VMware for select the best option for your Infrastructure. We are selecting the Low Monitoring sensitivity, but in the VM, or VMs that we want to activate the Zimbra vmware-ha, will select VM Monitoring High, with Application Monitoring also activated.
Also we can personalize and configure the best time for our Zimbra VM, if we select Custom VM Monitoring Settings.
vSphere web Client
We can follow the same steps but in the new vSphere Web client, following these steps.
Testing the Zimbra vmware-ha script
We've selected High option, is time to test it in our Zimbra VM, we will stop one Zimbra service intentionally, for test it.
[zimbra@mail~]$ zmmailboxdctl stop
And when the time conditions happen, vSphere HA will restart the VM and we will have a Log action into our vSphere Server
The Zimbra vmware-ha script log everything in the next log
root@mail:/home/oper# tail -f /opt/zimbra/log/vmware-heartbeat.log
And the result of the Log File will be like this:
Fri Oct 24 17:59:49 2014: Checking ZCS status Fri Oct 24 17:59:51 2014: Sending heartbeat to VM
- No related content