To get more vDisks to run, either the number of disks per controller has to be decreased or the memory for the storage controllers has to be increased. The number of NBDs is calculated dynamically based on the RAM available;
The number of NBD paths available for your virtual disks depends on the amount of RAM available to the storage node. You can use the following formula to calculate the maximum number of NBD paths:
N = (Controller memory size - 128) ÷ 4, where:
Controller memory size = the memory assigned to the storage controller (the default is 1024MB).
128 = amount of system memory reserved for the storage controller
4 = the amount of memory needed per NBD server
So by default:
(1024 -128) = 896 MB available for NBD servers
N = 896 ÷ 4 = 224 NBD paths
Each stripe in a datastore needs 1 NBD path, so the total number of vDisks, D, you can have is given by:
D = N ÷ (SxR),
S = the number of stripes in the datastore
R = the number of replicas
If the data store has 2 replicas and 2 stripes, it requires 4 paths (2 strips x 2 replicas) per disk. Using the defaults for the storage controller each controller can host:
224 ÷ 8 = 56 vDisks
Linux virtual servers have at least 2 disks (main disk and swap disk) so 8 paths would be required (if you are using the same data store configuration for main disk and swap). So this configuration supports 28 Linux virtual servers or 56 Windows virtual servers. To fit more virtual servers in the cloud, we recommend using unreplicated storage for swap drives.