Page 1 of 1
Why is it recommended to have at least one CSV volume per cluster node?
Posted: Thu Dec 29, 2016 5:03 am
by dleblanc
I currently have a single host hyper-converged ESXi for non production, testing use (no HA). An HBA adapter is passed to the StarWind guest - which uses MS Storage Spaces to provide a 4 column mirror.
I am now looking to expand this. First by breaking down the MS Storage space mirror as it won't be necessary if the data is replicated across two hosts.
All the examples for both ESXi and Hyper-V with HA all seem to have two CSVs and a Quorum as a witness. I completely understand the purpose of the Quorum, but I don't see what the purpose is for the multiple CSVs. Am I missing something?
After reading this (
https://www.starwindsoftware.com/Starwi ... _Guide.pdf) - on page 20, there is a note that reads "Note: It is recommended to create at least one CSV volume per cluster node according to StarWind Virtual SAN best practices."
But I don't see anything that explains why two CSVs would be needed for two nodes. Can't each of the ESXi hosts access the same VMFS volume when in an HA cluster?
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Thu Dec 29, 2016 11:12 am
by anton (staff)
That's Microsoft requirement (being up to date for WS2016 as well). Good reading about CSVs are here:
https://blogs.msdn.microsoft.com/cluste ... nside-out/
dleblanc wrote:I currently have a single host hyper-converged ESXi for non production, testing use (no HA). An HBA adapter is passed to the StarWind guest - which uses MS Storage Spaces to provide a 4 column mirror.
I am now looking to expand this. First by breaking down the MS Storage space mirror as it won't be necessary if the data is replicated across two hosts.
All the examples for both ESXi and Hyper-V with HA all seem to have two CSVs and a Quorum as a witness. I completely understand the purpose of the Quorum, but I don't see what the purpose is for the multiple CSVs. Am I missing something?
After reading this (
https://www.starwindsoftware.com/Starwi ... _Guide.pdf) - on page 20, there is a note that reads "Note: It is recommended to create at least one CSV volume per cluster node according to StarWind Virtual SAN best practices."
But I don't see anything that explains why two CSVs would be needed for two nodes. Can't each of the ESXi hosts access the same VMFS volume when in an HA cluster?
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Thu Dec 29, 2016 12:09 pm
by dleblanc
Thank you for the quick reply.
I think I have a better understanding now. Please correct me if I am wrong in assuming that this is due to the NTFS file system not allowing for concurrent sessions from two separate hosts using the same iSCSI LUN. If I were to ever switch to Hyper-V (which I explored have due to the localhost option in the StarWind config), I would need to group Virtual Machines within two separate CSVs - each group could only be made active on one of the two hosts when both are running under normal conditions.
Since multiple hosts can easily connect to the same iSCSI LUN due to VMFS - for a 2 host ESXi cluster, would it be appropriate to only have two LUNs created through StarWind? One for all of the VM guests and one for the Quorum?
EDIT: (Corrections made to question due to lack of morning coffee...)
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Thu Jan 05, 2017 10:43 pm
by Michael (staff)
Hello Dleblanc,
It makes sense to create at least two Cluster Shared Volumes in Hyper-V to distribute Production workload between Cluster nodes. Then some VMs will be on one CSV and let's say on the first node while other will be on the second CSV and the second host.
Also, vSphere HA requires a minimum of two shared datastores shared between all hosts in a cluster for proper datastore heartbeat detection to function.
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Wed Jan 11, 2017 4:15 pm
by dleblanc
The last time I set up vCenter HA in production was in a Essentials Plus scenario with a Dell Equallogic SAN. Each VM (not many) were set up as their own LUN to allow automated snapshots in the SAN itself.
I never realized that there was a 2 datastore requirement because there were about 8 datastores that each host consumed (shared among three hosts). I must have had the default (Automatically select datastores accessible from the host) selected when HA was enabled for the cluster. It did work fine though. If a host failed, the guests would automatically restart on another host.
I'm trying to wrap my head around clustered storage though as I haven't really used it before and I am in the process of setting up a second hyper-converged ESXi host using StarWind as a guest. I have read up on how to set up a cluster in StarWind for synchronous replication. Seems pretty straight forward and not many extra steps than setting up a traditional StarWind LUN. However, I'm still trying to figure out how each of the hosts should consume the datastores. Maybe I am getting caught up in a misunderstanding of terminology.
Currently I am running the following (with no HA in the home lab):
Code: Select all
=================== ===================
= Host A = = Host B =
= Datastore 1 = <---- = (no local DS) =
= (All guests) = = =
=================== ===================
What I was panning on doing in the next couple of weeks is to set up:
Code: Select all
=================== ===================
= Host A = = Host B =
= Datastore 1 = <----> = Datastore 2 =
= (All guests) = = (All guests) =
=================== ===================
Both datastores are replicas of each other
What I am seeing in various examples is:
Code: Select all
=================== =================== =================== ===================
= Host A = = Host B = = Host A = = Host B =
= Datastore 1 = <----> = Datastore 2 = = Datastore 3 = <----> = Datastore 4 =
= (Some guests) = = (Some guests) = = (More guests) = = (More guests) =
= (Running on A) = = (Not Running) = = (Not Running) = = (Running on B) =
=================== =================== =================== ===================
Datastores 1 & 2 are replicas of each other. Datastores 3 & 4 are replicas of each other.
Guests located in Datastore 1 & 2 would run normally on Host A unless failure.
Guests located in Datastore 3 & 4 would run normally on Host B unless failure.
I'm not quite understanding the later scenario because if Host A goes down - both Datastore 1 & 3 would be unavailable and HA would need to restart the guest on Host B using Datastore 2 or 4 (depending on which original datastore the VM was assigned to). This would be essentially the same in the previous scenario (only having Datastore 1 & 2, each on a separate host) - where if Host A went down, the guest would restart on Host B using the replica contained in Datastore 2.
Maybe I am missing something very obvious of why the later is used.
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Fri Jan 13, 2017 5:54 pm
by Michael (staff)
Hello Dleblanc,
StarWind providing you with HA storage mirrored between two cluster hosts which means each host has exactly the same and consistent data at any moment of time. So, on your schemes Datastores on different hosts should have the same numbers:
Code: Select all
=================== ===================
= Host A = = Host B =
= Datastore 1 = <----> = Datastore 1 =
= (Guest1) = = (Guest2) =
=================== ===================
Let's imagine that you have one guest on the Host A and another one on Host B. Both guests are located on the Datastore 1. In the later scenario, if Host A goes down - the Datastore 1 would be available on Host B (because target connected locally from StarWind) and since Nodes are clustered, Guest1 will be started on Host B and Guest 2 will be not interrupted at all.
To configure StarWind Virtual SAN Hyper-Converged 2 Nodes Scenario with VMware you can follow the manual available here:
https://www.starwindsoftware.com/starwi ... re-vsphere
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Fri Jan 13, 2017 8:08 pm
by dleblanc
Thank you for the reply. This is what I thought (my middle chart).
Where two LUNs are kept in synchronous replication. Each host is linked to datastore hosted on the LUN like in the document you presented. (Btw, this is the same document that I read earlier)
However, on pages 25 - 34, titled Creating devices (DS1, DS2) - it shows going through the steps of creating DS1. On the last page, it informs you to perform the same steps for additional datastores and shows DS2 in the final list.
Does this mean that DS1 would be sufficient for a 2-node cluster and DS2 is optional? As DS1 would co-exist on both hosts just like in the mini-diagram you posted in your reply above. If so, then I completely understand now and was overthinking things.
Re: Why is it recommended to have at least one CSV volume per cluster node?
Posted: Tue Jan 17, 2017 4:11 pm
by Michael (staff)
It will be sufficient to have one datastore to run the VMs. But once you turn on vSphere HA, you will get a configuration issue message: "The number of vSphere HA heartbeat datastores for this host is 1, which is less that required: 2".
The resolution is simple - add one more datastore or suppress the message:
https://kb.vmware.com/selfservice/micro ... Id=2004739