Nutanix is a distributed scale-out 3-tier platform, utilizing RAM, Flash and HDD. This combination provides access to constantly accessed data in terms of microseconds; instead of milliseconds when exclusively flash devices are used. This is an awesome feature that influence and enhance the end-user experience for any type of workload.
De-duplication allows the sharing of guest VM data on premium storage tiers (RAM and Flash). Performance of guest VMs suffers when active data can no longer fit in the premium tiers. If guest VMs are substantially similar, for example if the Nutanix cluster is used to host numerous Windows desktops, enabling de-duplication substantially improves performance. When used in the appropriate situation, de-duplication makes the effective size of the premium tiers larger so that the active data can fit.
The Nutanix de-duplication engine was designed for scale-out, providing near instantaneous application response times. Nutanix de-duplication is 100% software defined, with no controllers or hardware crutch; and because Nutanix is platform agnostic, this feature is available in whatever hypervizor or VDI solution you chose to work with (today vSphere, Hyper-V and KVM are supported).
Nutanix added de-duplication for the performance tier (RAM and Flash) in NOS 3.5. The new NOS 4.0 release is introducing de-duplication for the capacity tier, the extent store, allowing organizations to have greater VM density, more virtual machines per node.
The capacity tier de-duplication is a post-process de-duplication, meaning the common blocks are aggregated according to a curated background process; by default every 6 hours, while de-duplication in the performance tier is near real-time, meaning it happens as data blocks transverse RAM or Flash. This hybrid de-duplication approach allows Nutanix CVM to be less intrusive and utilize less CPU cycles to detect common data blocks.
The ON-DISK capacity de-duplication must be enabled per Container in NOS 4.0 GUI (picture below), and is mostly recommended for VDI persistent desktops and server workloads. However, it is possible to enable and disable de-duplication per VMDK (vDisk) using NCLI. A next version on PRISM will provide the ability to manage de-duplication per VM or VMDK.
Every write I/O larger than 64Kb is fingerprinted with US Secure Hash Algorithm 1 (SHA1) using native SHA1 optimizations available on Intel processors, and only a single analogous data block is stored in the Nutanix cluster. In the VDI context this means that persistent desktops can be deployed without the capacity or performance penalties existent with most storage solutions.
The picture below demonstrate the new NOS 4.0 Storage View with On-Disk De-duplication Saving. (Click on the picture to see full size)
If the VMs or desktops are using Linked-Clones Nutanix VAAI snaps, the de-duplication happens at a different level, where the linked clone track the parent/child hierarchy, and this case no fine grain de-duplication is required.
How it works
The de-duplication happens via curator full-scans. As I mentioned, full scans happen every 6 hours, and the process look for common fingerprinted data to be de-duplicated. The de-duplication process happens at the Stargate component, and during the post-process de-duplication process CVM may present CPU overhead of 10 to 15% range.
During the curated background process Curator scans the metadata as part of its scans for duplicate fingerprints. If a new duplicated SHA1 is found, Stargate will re-write the data in a new location, removing duplicated data. Behind the scenes NDFS will increment refcounts against what has already been de-duplicated, against shared extents.
In NOS 4.0 the default de-duplication uses 16Kb granularity to process SHA1. For this reason NOS 4.0 introduces the concept of two extent group types, 16Kb and 4Kb. De-duplication is done at 16Kb block size, while caching in the performance tier is done at 4Kb extent granularity for better utilization of the caching resources.
In the second part of this de-duplication article I will demonstrate how to track and optimize de-duplication for different types of workloads.
This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net