As more and more applications are evolving into a virtual format from a physical footprint, we are seeing a trend around businesses virtualizing real-time applications that handle voice communications. Most customers I’ve worked with have VMware in their enterprise for virtualization and are using these environments for virtualizing voice platforms like Microsoft’s Skype for Business. Recently, VMware outlining recommendations for the sole purpose of virtualizing Skype for Business. They are also cited as early adopters of Skype for Business and have documented their experiences in tuning their platform to support this product. This blog outlines some options available within vSphere 6.0 when virtualizing a voice solution like Skype for Business.
Skype for Business relies heavily on not only the data network its SIP traffic traverses, but also the resources provided to the infrastructure that supports the application. If the application doesn’t have the resources available, the real-time communications that are utilized for this application suffer considerably. Most organizations can get away with resource contention when their virtual environment has applications that don’t require dedicated resources. VMware scales accordingly for these reasons and ensures the application gets enough resources to run appropriately. With voice, it takes skillful planning to ensure these resources are available so that call quality doesn’t suffer. The following main areas on your existing deployment are good check points that your host and its resources are configured properly when supporting Skype for Business and real-time communications.
Enable Latency-Sensitivity Auto-Tuning (If running vSphere 5.5 or later):
The Skype for Business infrastructure’s most critical components are housed on front-end servers. Typically, the front-end server handles the call routing and houses the mediation service through which real-time communication traffic flows. We also commonly have Edge servers deployed for remote users, which also utilize the mediation service for users outside the organization. The mediation role can be separated into its own virtual machine in instances where the enterprise requires dedicated resources for front end deployments with large-scale enterprises. Since Front-End and Edge servers are running real-time communications, they are latency sensitive. We want to ensure these virtual machines are not affected by latency, as this could lead to call quality issues resulting from resources in contention due to oversubscription of the virtualization host. In VSphere 5.5 we have a magic bullet within the vSphere web client which provides us the ability to enable Latency Sensitive Auto-Tuning. Setting this to “high” instead of the default “normal” setting allows us to ensure these virtual machines are provided the required resources they are subscribed. Each individual VM that requires this attention would need to be addressed under the settings options for that particular virtual machine.
Ensure Front End Distribution across VMware Host Infrastructure:
Ensuring your front-end pool (in an enterprise with more than one front end) is distributed across the host architecture is a great way to achieve resiliency and up time. Distributing the pooled front-end servers to different virtual hosts will guarantee the uptime of the pool in the event a host were to go into a failed state. Creating Anti-Affinity rules will certify no two front ends will ever be on the same host at any given time.
Create Accurate Sizing for Virtual Machines:
Microsoft and VMware suggest sizing VMs for Skype for Business based on the specifications provided by Microsoft. The SQL Express instance running on these machines is tuned for specific resource requirements provided by the vendor. Not allocating the required specifications will adversely affect SQL Express from performing optimally, and in turn will affect the real-time performance of Skype for Business. Most organizations don’t want to provide the resources required because the scale of their environment isn’t as large as the standard set of specifications provided by Microsoft. We recommend you trust Microsoft’s recommendation as circumventing this will only cause issues for you and your organization in the long run.
Select the Proper SCSI Controller for Virtualized SQL Back End Servers:
This applies to enterprise deployments that have a dedicated SQL backend. Typically, this role is co-located in a standard deployment. When we look at an enterprise scenario there are things we can do to ensure the virtualized SQL database role is provided optimal throughput. Optimal throughput will allow real-time communications such as IM and presence features to seamlessly traverse the Skype for Business platform. VMware’s latest vSCSI controller (PVSCSI) provides for high-performance throughput allowing less CPU overhead and larger Queue depth. VMware recommends that customers choose PVSCSI as the virtual SCSI controller for their Skype for Business component servers.
Fine Tune Network Components
When looking at tuning our network for virtual machines running real-time applications, we can review our network framing and network adapters used for virtual machines running real-time applications. Enabling jumbo frames in vMotion (if possible and if jumbo frames are enabled across the network infrastructure already) will improve vSphere vMotion operations and increase workload availability and recovery for the virtualized Skype for Business deployment. Using VMXNET3 adapters to provide better throughput performance will optimize virtualized Skype for Business deployments while reducing hypervisor CPU utilization. It is imperative that customers regularly update VMware Tools on virtual machines using VMXNET3 virtual adapters to ensure they perform and work properly with the Windows operating system.
Validate and Optimize Physical Configurations
Ensuring optimal performance around the physical hardware can be achieved by tuning your power and CPU reservations. VMware suggests that the default hardware power scheme is unsuitable for virtualization. Changing your power setting to “High Performance” and enabling turbo boost are suggestions they stand by. Selecting a High-Performance power policy option for all ESXi hosts in a vSphere cluster supporting a Skype for Business deployment is recommended to ensure the VMkernel detects certain power management features, but will not use them unless the BIOS requests them for power capping or thermal events. When a CPU runs at lower frequency, it can also run at lower voltage, which saves power but impacts performance.
Our hope is that these recommendations will help your Skype for Business environment perform at its best when virtualized. If you have virtualized these systems in your environment, take the time to review your current settings to ensure you are establishing an optimal configuration for your real-time applications.