Shared storage for KVM server cluster?

I have Dell EMC SCv3020 Storage Array and I want to create shared storage for all 3 physical servers to use the same (LVM?) for creating KVM VMs in cluster so if 1 server dies, we can move VM to another one. We have solution for HA failover but we are not sure how to do this shared storage setup.

Should we setup simple NFS on virtual machines and share? If yes, which filesystem will be on NFS, and should we make LVM on it? Does filesystem need to be cluster aware so there is no data corruption because all servers are accessing same storage?

We also have VMware on this infrastructure using Dell storage array and production VMs on it so is it possible maybe to use VMFS Vmware datastore to create Virtual machines on which we will setup this shared storage on all 3 new physical servers for deploying KVM VMs all servers on same shared storage?


I have Dell EMC SCv3020 Storage Array and I want to create shared storage for all 3 physical servers to use the same (LVM?) for creating KVM VMs in cluster so if 1 server dies, we can move VM to another one. We have solution for HA failover but we are not sure how to do this shared storage setup.

What you have is a classic so-called dual-controller SAN, depending on your connectivity (Fibre Channel Vs iSCSI) you simply create a new virtual LUN from your SAN disk pool, and expose this virtual LUN to your storage consumers. If you'll use VMware it will format it with VMFS which is cluster-aware file system and will use this new datastore for VMs.

This is some great guide you should follow:

https://www.delltechnologies.com/asset/en-us/products/storage/industry-market/h16391-dellemc-unity-storage-vmware-vsphere.pdf

If you'll use just some servers w/out hypervisor you'll have to use some cluster-aware file system or you'll trash the metadata on your virtual LUN with some non-arbitrated writes. See:

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392

Should we setup simple NFS on virtual machines and share?

You can use NFS for VMware datastore (so with KVM but not with Hyper-V), but you'll need some level of HA here as you don't want your VM datastore to become a single point of failure (SPOF).

If yes, which filesystem will be on NFS, and should we make LVM on it? Does filesystem need to be cluster aware so there is no data corruption because all servers are accessing same storage?

See above. In case you'll use VMware it will be VMFS on top of your virtual LUN and there will be VM datastore and you can expose any file system from inside of your production VMs.

We also have VMware on this infrastructure using Dell storage array and production VMs on it so is it possible maybe to use VMFS Vmware datastore to create Virtual machines on which we will setup this shared storage on all 3 new physical servers for deploying KVM VMs all servers on same shared storage?

This is a way to go actually.


Dell storage array can be connected to your hosts via iSCSI or FC. That's what you can start from. As mentioned, you will need cluster-aware filesystem to be able to use this storage simultaneously on three hosts. cLVM is one of the best options to use. However, it must be mentioned that having a single SAN creates a single point of failure for your infrastructure. Implementing software-defined storage, which is redundant ca solve this issue. Couple examples:

https://www.starwindsoftware.com/starwind-virtual-san

KVM+DRBD replicated between two active-passive servers with manual switching