Written by Joey D’Antoni, Denny Cherry & Associates Consulting.
Introduction
One of the challenges many organizations are faced with when moving to a public cloud platform is the significant architectural differences between key infrastructure components like storage, networking, and monitoring. VMware Cloud on AWS seeks to bring the same consistent management and software defined data center (SDDC) components into the public cloud. This enables organizations to take advantage of the flexibility of those platforms, while simultaneously delivering the same end-user experience as an on-premises environment. By running VMware cloud on AWS, you can also gain low latency access to native AWS features like Lambda, RDS, Redshift, and S3 storage.
Availability is just as important in the cloud as on-premises and VMware Cloud on AWS also provides highly available hosts using Stretched Clusters, which provides a common network layer with vSphere HA/DRS enabled. For disaster recovery, you can use VMware Site Recovery add-on, which is a DRaaS and built on (Site Recovery Manager) SRM for both on-premises to cloud, and there are cloud to cloud disaster recovery options to keep your mission-critical data secure.
VMware Cloud on AWS is built using proven technologies like vSphere for compute, vSAN for storage, and NSX for software defined networking. VMware Cloud on AWS is managed and monitored using the same set of tools you have always used to manage on-premises VMware environments. This reduces the friction of moving to the public cloud by avoiding infrastructural challenges and letting your admins use the same tools and skillsets both on-premises and in the cloud.
SQL Server on VMware Cloud on AWS
Running SQL Server on VMware Cloud on AWS is fairly straightforward – if you have experience with running SQL Server on ESXi in an on-premises environment, that will translate directly to VMware Cloud on AWS. Since VMware Cloud on AWS runs directly on bare-metal hosts, things like NUMA and storage configuration follow normal VMware best practices. You can refer to the Architecting Microsoft SQL Server on VMware vSphere document here.
For purposes of automation and configuration, we recommend building a template of a VM with SQL Server software pre-installed and configured, to which you can deploy standard disk configuration. After deploying the template, you can use an automated process to add the machine to the domain, and configure the following options – which need to be based on the target hardware and server name:
Automating the SQL Server deployment enables consistent settings across all your environments, and makes troubleshooting performance issues easier by ruling out basic configuration problems. If you are running SQL Server on Windows, you can call a post deployment SQL script using the SQLCMD command line utility, and on Linux you can use the MSSQL-Conf utility to configure these settings.
VMware Configuration for SQL Server
While configuring SQL Server for VMware is really straightforward, configuring VMware vSphere for your database workloads is more complex, but will follow the same rules as on-premises.
Memory is the most critical system resource for a SQL Server instance. SQL Server uses memory to cache data pages, execution plans, and data sorting and joining operations. Without adequate memory, CPU and disk utilization will increase dramatically, and overall system throughput will decrease. It is critical to avoid overcommit of memory in your clusters whether on-premises or in the cloud. Additionally, for production workloads you should make a memory reservation for your database servers, which will eliminate any impact from hypervisor ballooning or swapping.
Since VMware Cloud on AWS runs on bare metal, NUMA configuration is suggested when you begin to run larger workloads. However, since both SQL Server and VMware vSphere are NUMA aware, this is just a matter of ensuring the proper configuration. For smaller workloads, the recommendation is to allocate fewer vCPUs than are physically present in each pNUMA node. When you do this, SQL Server does not need to consider NUMA and ESXi makes sure the VMs memory is as local as possible and all vCPU are scheduled within one pNUMA node. For larger virtual machines, that will span NUMA nodes, ensure vNUMA topology is correctly exposed for the VM, and ESXi will split the cores and memory across NUMA nodes on each host.
VMware Cloud on AWS Storage, Powered By vSAN
When running VMware Cloud on AWS, all of the storage is local to the hosts – you can have up to 3.6 TB providing write cache plus a 10.7 TB raw capacity tier in each host, with all VMs protected against a host failure. vSAN in VMware Cloud on AWS is configured with flash NVMe drives, local to each machine, which provide low latency and high throughput storage. This means storage performance issues should be minimal, however you will still want to configure your SQL Servers with best practices, like using paravirtual storage adapters for your data and transaction log volumes, and segregating volumes.
VMware Cloud on AWS Networking, powered by VMware NSX
One of the complexities of many cloud deployments is configuring connections between the on-premises network and the cloud provider. VMware Cloud on AWS simplifies this by using VMware NSX network virtualization software to control the network traffic and transparently connect on-premises to AWS. What’s more, customers can leverage AWS Direct Connect technology which provides a direct, dedicated, low-latency connection between your data center and AWS. NSX allows configuration of Layer 2 VPN, facilitating the live migration of on-premises VMs hosting instances of SQL Server into the VMware Cloud on AWS environment without modification of VM’s network settings.
Backups on VMware Cloud on AWS
Since storage on VMware Cloud on AWS host is limited, you may want to consider taking advantage of native AWS functionality to store and archive your backups. Using vSAN in conjunction with Amazon Elastic Block Storage you can extend the capacity of your cluster. If you currently use a third-party backup solution from a partner, like Commvault, Dell EMC, Druva, Veeam, or Veritas, then these solutions are available on VMware Cloud on AWS. Please check out the list of VMware Cloud on AWS certified backup solutions here.
Summary
The benefit of VMware Cloud on AWS is that it is simply VMware running on a public cloud platform. You get the best of both worlds – your SQL Server workloads run on the same solid VMware platform, while you get all the benefits of being in a public cloud environment, and the great storage performance of vSAN.