ESS with Compressed RAID
System Planning
ESS w/ compression works with just like a traditional RAID array. In general, you use entire disks (as opposed to partitions) as array members. Array members can be any "normal" SSD. This includes:
- SATA SSDs
- SAS SSDs
- NVMe SSDs
- DataCenter SSDs
- Consumer SSD
- QLC SSDs
Zoned and "Software Defined Flash" SSDs
ESS does not currently support "zoned" or "Software Defined Flash" SSDs, but we are working on this.
Consumer SSDs
Consumer SSDs are fully functional. You should have lower expectations in terms of performance, consistency, and wear. If your application workload is heavy on reads, then consumer SSDs might make sense.
QLC SSDs
QLC SSDs are fully functional. In general, we don't recommend these, especially if your workload requires that you replace SSDs in under 10 years. The costs savings of QLC is simply not enough to justify even a single replacement cycle. QLC SSDs also have higher latency impacting both read and write performance.
MD-Raid
ESS works in conjunction with standard "md RAID" using the mdadm command. You create arrays and manage arrays with stock mdadm commands. ESS also include a cli script that will perform many of these commands automatically.
ESS arrays can be either RAID-0, RAID-5, or RAID-6. Other RAID levels like RAID-10 or RAID-50 are not used in that they don't yield any benefits. RAID-5 and RAID-6 use kernel provided SSE/AVX/AVX-2/AVX-512 offloads to maximize parity compute performance. Parity compute happens on multiple threads (cpu cores) enabling very high performance writes on modern servers.
raid456.ko Patch
ESS can optionally use a patched version of the raid456.ko kernel module. This patched version is available for most kernels that ESS runs with. The patch creates a special case in drivers/md/raid5.c that shortens the write path when raid gets 100% aligned writes that encompass entire raid stripes. The patches .ko file will automatically be downloaded when you downloaded and ESS kernel module for your kernel.
This patch allows the raid layer to bypass the normal stripe page cache logic. It also does parity compute in the calling thread (as opposed to a background thread), which scales out performance with multiple CPU cores. If you would like the source code for the patch, please email support@wildfire-storage.com.
Supported Linux Kernels
ESS works with:
- Red Hat Enterprise Linux 8.0-8.9 (all x86_64 kernels).
- Red Hat Enterprise Linux 9.0-9.3 (all x86_64 kernels).
- Other RHEL "compatible" distributions.
- Rocky Linux
Some "RH compatible" distributions track RHEL exactly, and some do not. We build kernel modules for all RHEL "official" kernel releases. We build kernel modules for "Rocky Linux" releases that diverge from RHEL kernels. These builds all use a RHEL tool chain. If you have specific kernel needs, please contact WildFire.
Copyright © 2024 EasyCo LLC dba WildFire-Storage