Deployment for KVM
Overview
This article outlines the requirements for deploying the Delphix Engine via Linux KVM, as well as recommended configuration parameters.
The Delphix Engine is resource intensive from a compute, network, and storage perspective. If the Delphix Engine competes with other virtual machines on the same host for resources it will result in increased latency for all operations. As such, it is crucial that your KVM host is not over-subscribed, as this eliminates the possibility of a lack of resources for the Delphix Engine. This includes allowing a percentage of CPU resources for the hypervisor itself as it can de-schedule an entire VM if the hypervisor is needed for managing I/O or compute resources.
The KVM ecosystem includes many versions/variations. Delphix generally supports running on KVM, but does not explicitly qualify each vendor’s KVM hypervisor solution. Rather, as Delphix is based on Ubuntu 20.04, Delphix supports running on any KVM hypervisor whose vendor supports the Ubuntu 20.04 guest operating system.
Delphix is supported on Nutanix AHV. Because AHV is based on KVM, all of the KVM content on this page also applies to Nutanix AHV.
Delphix disk storage capabilities are based on the backend storage provided. Performance, redundancy, and stability characteristics are determined by the hypervisor or Cloud provisioned storage.
Pre-requisites
1. The KVM provider must explicitly state that Ubuntu 20.04 is supported by their variation of KVM.
Most, if not all, KVM hypervisor providers should have public facing documentation which include support matrices for guest OS compatibility. If the KVM hypervisor provider does not state support for the Ubuntu version on which Delphix is based (currently 20.04), then Delphix cannot support the KVM provider.
As an example, Nutanix provides a publicly accessible guest OS compatibility matrix for AHV. As of this writing, this matrix includes support for Ubuntu 20.04, and therefore Delphix supports deployment on Nutanix AHV. Oracle Linux also provides a publicly accessible guest operating system support matrix, which also declares support for Ubuntu 20.04. Because of that, Delphix does support deployment on Oracle Linux KVM. Another example is RedHat, which provides KVM virtualization support in a number of different contexts. While RedHat does not explicitly list Ubuntu in its certified guest OS support matrix, Ubuntu implicitly falls under RedHat’s third party support software policy, and Delphix will support deployments in that environment.
2. A check of the Delphix appliance on the variation/version of KVM.
It is required that a Delphix representative works with the organization to check the Delphix appliance (and/or use case) on the specified KVM variation/version. This check will ensure that the software is compatible.
Virtual CPUs
Requirements | Notes |
---|---|
8 vCPUs |
|
Never allocate all available physical CPUs to virtual machines. |
|
Memory
Requirements | Notes |
---|---|
128 GB vRAM (recommended) |
|
Memory for the KVM Server to perform hypervisor activities must be set aside before assigning memory to Delphix and other VMs. |
|
Network
Requirements | Notes |
---|---|
Virtual ethernet adapter requirements. |
|
If the network load in the KVM Server hosting the Delphix engine VM is high, dedicate one or more physical NICs to the Delphix Engine. |
|
SCSI controller
Notes |
---|
When adding virtual disks, make sure that they are evenly distributing the load across the maximum of 4 virtual SCSI controllers. Spreading the disks across available SCSI controllers evenly will ensure optimal IO performance from the disks. For example, a VM with 4 SCSI controllers and 8 virtual disks should distribute the disks across the controllers as follows: |
disk0 = SCSI(0:0) - System Disk on Controller 0 Port 0 (ignore for purposes of load balancing) |
disk1 = SCSI(0:1) - Data Disk on Controller 0 Port 1 |
disk2 = SCSI(1:1) - Data Disk on Controller 1 Port 1 |
disk3 = SCSI(2:1) - Data Disk on Controller 2 Port 1 |
disk4 = SCSI(3:1) - Data Disk on Controller 3 Port 1 |
disk5 = SCSI(0:2) - Data Disk on Controller 0 Port 2 |
disk6 = SCSI(1:2) - Data Disk on Controller 1 Port 2 |
disk7 = SCSI(2:2) - Data Disk on Controller 2 Port 2 |
disk8 = SCSI(3:2) - Data Disk on Controller 3 Port 2 |
For load purposes, we generally focus on the Delphix storage (data disks) and ignore the controller placement of the system disk. IDE and SATA controllers are not supported on KVM platforms |
General storage
Delphix recommends using a minimum of four disks to run your Delphix Engine. One disk is used for the Delphix File System (DxFS) to ensure that its file systems are always consistent on disk without additional serialization. The other three or more equally sized disks will be used for data storage. This also enables the Delphix Engine to achieve higher I/O rates by queueing more I/O operations to its storage.
Requirements | Notes |
---|---|
Storage used for Delphix must be provisioned from storage that provides data protection. | For example, using RAID levels with data protection features, or equivalent technology. The Delphix Engine does not protect against data loss originating at the hypervisor or SAN layers. When adding additional disks to the block storage pool, storage device initialization will not occur since it is not required on this hypervisor. For more information refer to, Optimal storage configuration parameters for the Delphix engine. |