In order to have multiple processor architectures in a single cluster you need to enable Enhanced vMotion Compatibility (EVC) mode. EVC mode allows migration of virtual machines between different generations of CPUs, making it possible to aggregate older and new server hardware generations in a single cluster.
However, despite the obvious advantages of EVC mode, you need to factor in the costs associated with this feature. Some applications will potentially lose performance due to certain advanced CPU features not being made available to the guest, even though the underlying host supports them. When an ESXi host with a newer generation CPU joins the cluster, the baseline will automatically hide the CPU features that are new and unique to that CPU generation. The below table lists the EVC Levels and a description of the features that are enabled.
To illustrate some of the performance variations, VMware ran some test that replicated applications in our customer environments to find out the impact of EVC mode. They created several guest virtual machines to run workloads with different EVC modes ranging from Intel Merom to Intel Westmere. For the Java-based server-side applications, its performance on an ESXi host with processor as new as Westemere and as old as Merom had a negligible variation of 0.0007%. For OpenSSL(AES), the Intel Westmere EVC mode outperformed the other modes by more than three times. The improved performance is due to the encryption acceleration made possible by the introduction of the AESNI instruction set available on Intel processors – Westmere.
Another key aspect to a balanced cluster is ensuring there is not a large variation of resources available in a single cluster, this happens when mixing different generation servers. For instance, when purchasing a HP ProLiant DL380 Generation 5 (G5) server the processor available was two Quad-Core Intel Xeon processor with 12 MB of L2 cache memory and a maximum of 64 GB of memory. The Generation 8 (G8) version of the HP ProLiant DL380p allowed for two 12-core Intel Xeon processors with 30 MB of L2 cache memory and maximum 768 GB of memory. That is a dramatic difference!
If we look at theoretical density ratios, we can expect 32 vCPUs on the HP ProLiant DL380 G5 and 96 vCPUs on the HP Proliant DL380p G8. For our example, we are going to estimate four vCPUs per processor core, which would be for a production workload.
Total vCPUs = Processor Cores x 4
Unbalanced clusters can have a significant impact on VMware HA when a new generation server fails and legacy systems need to pick up the additional workload.
Furthermore, to mix the same servers in a cluster, you would need to enable EVC mode L1 for the Penryn processor architecture, hiding all the chipset features from L2 through L4.
By defining cluster service tiers, you can ensure that applications with critical workloads that are vital to the business have the latest generation features and your clusters are balanced. You “trickle down” older generation servers to hosting tiers that don’t have the same SLA and performance requirements as your core business applications.
Additionally, you can incorporate a strategy that includes scale out for mission critical applications and scale up for non-mission critical workloads. Your clusters should be created to meet a business requirement or a functional requirement. For instance, you could create clusters based on service levels like illustrated above or you can construct clusters based on functional requirements, such as a SQL cluster. The database cluster might require a high number of processor cores and it may need some of the resources reserved to meet performance requirements.