One of my all time favorite features of VSAN is still the ability to be able to "bootstrap" a VSAN Datastore starting with just a single ESXi node. This is especially useful if you would like to bootstrap vCenter Server on top of VSAN out of the box without having to require additional VMFS/NFS storage. This bootstrap method has been possible and supported since the very first release of VSAN which I have written in great detail here and here.
With the release of VSAN 6.1 (vSphere 6.0 Update 1), an all-flash VSAN configuration was also now possible in addition to a hybrid configuration which uses a combination of SSDs and MDs. One observation that was made by a few folks including myself was that you could not configure an all-flash diskgroup using ESXCLI which was one of the methods that could be used to bootstrap VSAN. If you tried to create an all-flash diskgroup using ESXCLI, you would get the following error:
Unable to add device: Can not create all-flash disk group: current Virtual SAN license does not support all-flash
This turned out to be a bug and the workaround at the time was to add the ESXi host to a vCenter Server which would then allow you to create the all-flash diskgroup. This usually was not a problem but for those wanting to bootstrap VSAN, this would require you to have an already running vCenter Server instance. While setting up my new VSAN 6.2 home lab last night
— William Lam (@lamw) March 2, 2016
I found that this issue has actually been resolved in the upcoming release of VSAN 6.2 (vSphere 6.0 Update 2) and you can now create an all-flash diskgroup using ESXCLI which includes do so from the vSphere API as well. For those interested, you can find the list commands required to bootstrap an all-flash VSAN configuration below:
Step 1 - You will need to change the default VM Storage Policy on VSAN to allow "Force Provisioning" since you only have a single node to start with (we will change this back to default once you have deployed vCenter Server):
esxcli vsan policy setdefault -c vdisk -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"
esxcli vsan policy setdefault -c vmnamespace -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"
Step 2 - Ensure that you enable VSAN traffic type on a specific VMkernel interface, in this example, I am using vmk0 by running the following command:
esxcli vsan network ipv4 add -i vmk0
Step 3 - Create a new VSAN Cluster by running the following command:
esxcli vsan cluster new
Step 4 - Run the following command to identify the SSD devices you plan to use for your "Caching" and "Capacity" Tier, specifically you will need to make a note of the device you plan to use for "Capacity" as we will need to tag that device in the next step.
esxcli vsan storage tag add -d t10.ATA_____Samsung_SSD_850_EVO_500GB_______________S2RANXAH138511D_____ -t capacityFlash
You can re-run the vdq -q command to verify that the IsCapacityFlash property is now set for the device you just tagged.
Step 6 - Lastly, we can will now create our all-flash VSAN diskgroup by running the following command using the information we found in Step 4:
esxcli vsan storage add -s t10.ATA_____Samsung_SSD_850_EVO_M.2_250GB___________S24BNXAH105839L_____ -d t10.ATA_____Samsung_SSD_850_EVO_500GB_______________S2RANXAH138511D_____
esxcli vsan storage list
At this point, you are now ready to provisioning vCenter Server on top of the VSAN Datastore and once that is setup, you can use then use the vSphere Web Client to add your remainder VSAN nodes as you normally would.
Note: If you do NOT plan on running a *single* VSAN node (not recommended but its possible), then remember to change back the original VM Storage Policy settings once you have setup your vCenter Server by running the following ESXCLI command on that first ESXi node used to bootstrap VSAN:
esxcli vsan policy setdefault -c vdisk -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i0))"
esxcli vsan policy setdefault -c vmnamespace -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i0))"