VMFS is a clustered file system that disables multiple Virtual Machines from opening and writing to the same virtual disk.
The reason behind this is that it helps in preventing multiple VMs accessing the same .vmdk file.
Now, there are certain scenarios where you would want to share the same disk to multiple Virtual Machines and provide access to the Virtual Disk.
This can be done when you enable Multiwriter VMDK flag for the Virtual Disks that you want to share.
The use cases for such a setting would be for instance Fault Tolerance in vSphere 5.5 and below. Multiwriter flag was enabled by default when FT was enabled.
Another instance would be third-party cluster aware applications like Microsoft Exchange VM’s or Oracle RAC Virtual Machines.
With that being said, let us move further and see how this was enabled in vSphere 5.5 and below and what was changed in vSphere 6.0 Update 1 onwards.
Enable Multiwriter VMDK flag in vSphere 5.5 and below
Let us perform this activity by taking an example of two Virtual Machines in my lab Environment.
Bear in mind, in my lab, I am running vCenter 5.5 Update 3 and my ESXi hosts are also running version 5.5 Update 3.
If you are running anything lower than vSphere 6.0 Update 1, this method should work fine.
Now the VMs that we are going to try this on are TestDSL and TestDSL1.
Add a new Hard Disk to TestDSL Virtual Machine, select the Thick Provision Eager Zeroed provisioning type.
I have selected this Hard Disk on a new SCSI controller, and will be leaving the SCSI Bus sharing to default which is None.
But be aware that there are options like Virtual and Physical which can be used on requirement basis.
When you click on Edit Settings of the Virtual Machine, it should be something like this.
Now that we have added the Disk, we need to add the advanced setting for the Disk that will enable Multiwriter VMDK flag for the Virtual Disk.
There are a couple of ways that you could perform this operation. First, you could directly edit the vmx file of the Virtual Machine.
- Power off the Virtual Machine.
- In the . vmx file that defines the virtual machine, add an entry similar to:
scsiX:Y.sharing = “multi-writer”
where X is the controller ID and Y is the disk ID on that controller. The setting screen of a virtual machine shows these values.
So in our case, it is going to be scsi1:0.sharing = “multi-writer” as seen from the above screenshots.
Save the changes made to the vmx file and power on the Virtual Machine.
The second method to do this is from vSphere Client or vSphere Web Client. We will be seeing this from vSphere Client.
- Power off the Virtual Machine.
- Click on Edit Settings on the Virtual Machine, select the Options Tab > General > Configuration Parameters
- Add Row and type scsi1:0.sharing in the Name field and multi-writer in the Value field. Click ok to save changes.
- Power On the Virtual Machine.
We have made all the changes required on the first Virtual Machine.
On the second Virtual Machine TestDSL1, we will make use of the same disk that we just created and use the methods to enable Multiwriter VMDK flag.
Once you have enabled the flag on the second VM as well, you should be able to successfully power on both the Virtual Machines and they will have access to the same disk.
Enable Multiwriter VMDK flag in vSphere 6.0 Update 1 and above
This is where the interesting part starts. Now you could imagine how difficult it was to enable Multiwriter VMDK flag in the previous sections.
You had to either edit the configuration file of the Virtual Machine or enable the option in the Advanced settings of the Virtual Machine.
Well, this has been completely removed from vSphere 6.0 Update 1 onwards. We received a lot of emails regarding this which is why I thought I will write this and make most of them aware that the above method will not work with the latest vSphere 6.0.
Althought, you could still do the above method but the changes aren’t going to stick in the latest build of the vSphere.
We brought in a much simpler user experience which I think most of you guys will love.
You can now enable Multiwriter VMDK flag right from the vSphere Web Client. It is just a matter of a selection from the dropdown that we brought in recently.
There is a new Shsring option available when you try to see the information of the Virtual Disk. There are two options that you can choose from:
- No sharing -- Will not share the disk with other Virtual Machines.
- Multi-writer -- Can share the disk with other Virtual Machines.
Note: The new Sharing property is only available in the vSphere Web Client UI and is not available in the vSphere C# Client.
Well, that is all I have today, I hope this has been informative and thank you for reading!