Unable to power on VM with SCSI bus sharing enabled – error: "Could not open/create change tracking file"

So recently i was asked to assist with setting up a new SQL 2012 AlwaysOn Cluster for POC.
During the configuration of the VM’s we had to setup a quorom disk which is shared between both servers for MSCS.
The shared disk I configured and select virtual device node on newly created SCSI controller, LSI Logic SAS with SCSI bus sharing set to Physical.
On the 2nd VM i created the same SCSI controller as above and instead of creating new disk the existing disk was select.

With Primary powered on and trying to power on the 2nd SQL server i receive the following error:
“Could not open/create change tracking file”


The error eludes to problem with CBT on the Virtual server where i cannot access the cbt file due to the primary VM already running and locked the file.

I could not find much information in documentation regarding setting up clusters or shared vmdk disk and making use of CBT.

It does however seem that CBT has some restrictions:

  1. The virtual machine version earlier than 7
  2. The virtual machine has a Raw Device Mapping (RDM) in the physical compatibility mode.
  3. The virtual machine has a disk attached to a shared virtual SCSI bus.  Use of CBT only possible when SCSI bus sharing is set to none.

Following disk formats supported:
•Thin and Thick virtual disks
•VMDK and RDM (virtual only)

Disable CBT for VM: (this can be set for all devices or just specific devices)
  • Edit settings of virtual machine
  • Select options tab
  • Click General under advanced -> configuration parameters
  • Click Add row
  • Add “ctkEnabled and set value “false”  (this will set for all devices)
  • OR
  • Add “scsi0:0.ctkEnabled and set value “false” (this will set for specific devices)

 To prevent any third-party applications from enabling Change Tracking on the virtual machine:
  • SSH to ESXi host
  • browse the datastore where VM resides
  • Open the .vmx file of the virtual machine using a text editor. 
  • Add this entry to the file:
    • ctkDisallowed=”true”