Thanks for reaching out, hopefully we can get your questions answered. I'm going to assume that you're only interested in the ONTAP VVOLs implementation...
Do you create one FlexVol per Disk Type (Flash, SAS, etc), and then link one VM Storage Policy to each FlexVol?
Not necessarily per disk type, but rather based on the differentiated offerings. For example, you may have all of your FlexVols created on SSD drives, but have different QOS policies to limit the maximum IOPS. That being said, since latency is frequently the biggest differentiator, it does commonly make sense to divide them into a heirarchy based on disk type and cache technology, e.g. All-Flash, SAS + FlashPool, SAS + FlashCache, SAS, SATA + FlashPool, SATA + FlashCache, SATA
How large do you create the FlexVols?
What ever your standard size is. If you're using post-process deduplication or compression you'll want to ensure that the jobs are completing in an appropriate amount of time. The VASA provider will balance the VVOLs across the FlexVols which match a policy. Also keep in mind how long it takes to replicate if you're using SnapMirror or SnapVault.
Are there queue depth issues with 16 TB+ FlexVols?
Assuming block protocol, this would be no different than with a standard VMFS datastore. A large number of VVOLs (or VMDKs) which are very busy could still cause queue contention issues. The VASA provider for ONTAP will create a protocol endpoint for each of the FlexVols, so spreading them out is a seamless operation from the vSphere perspective.
Do you use one VVOL datastore that is linked to multiple FlexVols?
This is how I've done it previously.
Also when you change a VM Storage Policy for a VM, what happens on the back-end storage?
Assuming it's the same VVOL container (which also means same SVM), then it will leverage SFMoD/SFCoD to move the data on the cluster side, non-disruptively.
Do you need to svMotion the VM to migrate the data from one FlexVol to another?
Nope, see above...it uses SFMoD/SFCoD.
Hope that helps, please reach out if you have any other questions.
If this post resolved your issue, please help others by selecting ACCEPT AS SOLUTION or adding a KUDO.