Microsoft 2012 Era Licensing Considerations for the Inverted Pyramid
-
The Inverted Pyramid (aka IPOD or 3-2-1 Architecture) is a reference to a system design that involves a single non-redundant storage node on the bottom (the point of the pyramid or the "1") with an option networking layer in the middle (the middle of the pyramid or the "2") with the assumption of the networking layer being redundant and a large number (two or more, the presumption being typically three or more) compute nodes at the top layer that are generally made reliable within their own layer through platform layer availability tools or possible something else like an application or OS clustering too, hence the "3" and is the broadest of the layers.
In discussions around IPOD designs we almost always talk about the risks, performance and unnecessary costs of hardware brought about by the design choices. A standard "entry level" design is one SAN or NAS, two switches and three compute nodes resulting in six chassis purchases when a more resilient design could be done with just two or three. A key issue with the IPOD design is that it is designed around "simple compute layer growth", meaning that since the storage and networking are already provided and shared between the compute nodes that there is a natural tendency to migrate towards "compute node sprawl." It is just so easy to buy many cheap compute nodes, to keep using old ones that have not phased out yet, to add more - that we just do it, quite often. There is also a strong tendency in the SMB market, where the IPOD is often used, to underload compute nodes due to an emotional feeling that small CPU counts cannot handle large VM loads which is rarely true. IPOD designs cater to this and almost always result in overburdened storage that becomes a significant bottleneck while compute nodes sprawl often barely used at all. While nothing in the IPOD design forces this to happen it is the reality of IPOD architecture that this is a common result whether due to IT needs, political pressures or just taking the path of least resistance.
What this leads us to is a need to consider how this is impacted in the world of Windows Server 2012 and 2012 R2 which are Microsoft's current licensing model (rumours are that 2016 will alter from socket pricing to core pricing which will introduce a completely different licensing situation, but one that also needs to be carefully evaluated.) There are two licensing modes for Windows Server 2012, one is Standard and one is Data Center (yes there are some odd things like Essentials but they are not a significant consideration in an IPOD, that would be very odd.)
With IPOD designs, the design is sold based on the assumption that HA features of some sort which are built on "vmotion" or the ability to move virtual machines transparently between hosts, popular for non-disruptive maintenance. This is critical in considering licensing.
With Windows 2012 Data Center licensing it is necessary that every server in the cluster that has or might accept Windows Server workloads to have proper DC licensing applies to it (that is one license for every two processors in each server.) This is relatively simple and straightforward. Simply add up the machines, check out their processor counts and licenses two, four, six or eight processors per node. Done. Now your Windows workloads can move transparently between all of the nodes in your cluster whether for load balancing, maintenance or failover.
With Windows 2012 Standard licensing we have a lot more complication. Each Windows Standard license grants the right to have two VMs per two processors per host. This means that not only do you need to buy enough licenses to cover your running systems but you need to buy enough idle licenses to cover any load balancing or failover capacity on unused nodes. Microsoft allows licenses to migrate to a new host once every 90 days to address hardware failure scenarios but this is useless for those doing load balancing, planned maintenance or automatic load distribution. This means that all reasonable licensing scenarios need to be calculated as what licensing might be in use at any given moment of time could be unknown.
This adds both complication and cost to a "compute node sprawl" environment. As you add nodes, the cost of licensing increases. Using "more, smaller nodes" means "more, less valuable licenses." Instead of a single datacenter license covering, say, 100 VMs it might only cover 40. So more licenses are needed. What you are getting for your license dollars is smaller. And if you are on Windows Standard licensing the complications can become intense.
When planning for this type of infrastructure, considering the costs and overhead in planning for more nodes for more licensing becomes a very big deal.
-
Here is an example:
Three hosts, each running two Windows Server VMs, each with two sockets. Say Dell Power Edge R610 or HP Proliant DL360 nodes. Windows Standard Licensing.
Cost per license: ~$700
To license each node to run its normal load is $700 for a total of $2,100.
If we want to address the ability of any node to be a failover for the others or for non-disruptive maintenance, we need an additional license per machine. So we suddenly jump from $700 per node to $1,400 per node and the whole cluster jumps to $4,200 while gaining nothing during normal production times.
Now that only addresses single node failover. If we want to maintain the ability to do failover during times of maintenance we need yet another license for each machine! That means $2,100 per machine and $6,300 for the cluster.
Suddenly $350 per virtual machine in licensing has exploded to $1,050. A non-trivial increase.
Now we can choose which level and which features we want, but typically the value of an inverted pyramid is sold based on this top level of flexibility. If we are dealing with Data Center licensing this is more obvious and far less complex, but SMBs would rarely pay for that level of workload and may not think through the additional costs that this style of architecture potentially bring to the table.