It seems that if you set a Scale Set's overprovision
property to true
(https://azure.microsoft.com/en-us/documentation/articles/virtual-machine-scale-sets-design-overview/#overprovisioning) you get an invalid SF cluster (the deleted unnecessary VMs appear as bad nodes in the cluster).
Is there a way of making it work? Overprovisioning can really help the deployment succeed when you have multiple VM extensions.
With overprovisioning turned on, the scale set actually spins up more VMs than you asked for, then deletes the extra VMs once the requested number of VMs are successfully provisioned. Overprovisioning improves provisioning success rates and reduces deployment time. You are not billed for the extra VMs,...
A single node type/scale set cannot contain more than 100 nodes. You can scale a cluster horizontally to more than 100 nodes by adding additional node types/scale sets. You can scale the cluster at any time, even when workloads are running on the cluster. Export a template and parameters file from the resource group for the most recent deployment.
Doing so helps spread load across different internal systems. With overprovisioning turned on, the scale set actually spins up more VMs than you asked for, then deletes the extra VMs once the requested number of VMs are successfully provisioned. Overprovisioning improves provisioning success rates and reduces deployment time.
You can reimage scale set VMs but not individual VMs. You can overprovision scale set VMs for increased reliability and quicker deployment times. You cannot overprovision individual VMs unless you write custom code to perform this action. You can specify an upgrade policy to make it easy to roll out upgrades across VMs in your scale set.
For a service fabric cluster, it is a must that the VMs be allocated across FDs and UDs, (we use an availability set for forcing such an allocation). This topology is then used to elect voter nodes, place system service replicas and also customers service instances/service replicas. When you specify Overprovision = true, basically azure provisions more VMs than what you ask for and then randomly removes extra ones (once the requested number is reached). This results in uneven distribution of VMs and hence possibly a very badly configured cluster.
The reason why you see these deleted unnecessary VMs appear as bad nodes, is because these nodes originally did join the cluster and then were deleted (so the service fabric still thinks that they will eventually come back), we certainly can do an upgrade to fix that issue, but you cannot fix the uneven distribution of nodes.
So - Always set the Overprovision=False in your VMSS deployments.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With