We have a configuration where VMware virtual machines (VM) hosted on an ESX server form a cluster. Disks from Fiber Channel storage are presented to the guest VMs as VMFS virtual disks. An application is running on the VM and issues I/Os to this virtual disk. Under this scenario, we wanted to know following things:
a. If there is an uncompleted I/O request to the shared disk from an application running on the virtual machine, we want to make sure that ongoing I/O request is completed in a timely manner.
Is there any parameter using which we can timeout the I/O request? If yes, what is the timeout value for latest ESX server versions(ESXi 5.1 and ESXi 5.5)? What is the effect with or without installing VMware tools on timeout parameter values?
b. We need to ensure that the application issues I/O only from one node (VM) in a cluster. If more than one application in a cluster try to issue an I/O to a shared storage, we should be able to prevent them and ensure only one node in the cluster be able to issue the I/O to a shared storage disk.
Is there any ESX Server API or commands available to control I/Os to the shared disk? If yes, how?
Any help will be appreciated. Thanks in advance.
[Note: Here "Cluster" refers to high availability cluster which provides high availability for application services. It is not VMware HA cluster.]