QAT Acceleration for Encryption and Compression — Ceph Documentation (2024)

Intel QAT (QuickAssist Technology) can provide extended accelerated encryptionand compression services by offloading the actual encryption and compressionrequest(s) to the hardware QuickAssist accelerators, which are more efficientin terms of cost and power than general purpose CPUs for those specificcompute-intensive workloads.

See QAT Support for Compression and QAT based Encryption for RGW.

QAT in the Software Stack

Application developers can access QuickAssist features through the QAT API.The QAT API is the top-level API for QuickAssist technology, and enables easyinterfacing between the customer application and the QuickAssist accelerationdriver.

The QAT API accesses the QuickAssist driver, which in turn drives theQuickAssist Accelerator hardware. The QuickAssist driver is responsible forexposing the acceleration services to the application software.

A user can write directly to the QAT API, or the use of QAT can be done viaframeworks that have been enabled by others including Intel (for example, zlib*,OpenSSL* libcrypto*, and the Linux* Kernel Crypto Framework).

QAT Environment Setup

  1. QuickAssist Accelerator hardware is necessary to make use of acceleratedencryption and compression services. And QAT driver in kernel space have tobe loaded to drive the hardware.

The driver package can be downloaded from Intel Quickassist Technology.

  1. The implementation for QAT based encryption is directly base on QAT API whichis included the driver package. But QAT support for compression depends onQATzip project, which is a user space library which builds on top of the QATAPI. Currently, QATzip speeds up gzip compression and decompression at thetime of writing.

See QATzip.

Implementation

  1. QAT based Encryption for RGW

OpenSSL support for RGW encryption has been merged into Ceph, and Intel alsoprovides one QAT Engine for OpenSSL. So, theoretically speaking, QAT basedencryption in Ceph can be directly supported through OpenSSl+QAT Engine.

But the QAT Engine for OpenSSL currently supports chained operations only, andso Ceph will not be able to utilize QAT hardware feature for crypto operationsbased on OpenSSL crypto plugin. As a result, one QAT plugin based on nativeQAT API is added into crypto framework.

  1. QAT Support for Compression

As mentioned above, QAT support for compression is based on QATzip library inuser space, which is designed to take full advantage of the performance providedby QuickAssist Technology. Unlike QAT based encryption, QAT based compressionis supported through a tool class for QAT acceleration rather than a compressorplugin. The common tool class can transparently accelerate the existing compressiontypes, but only zlib compressor can be supported at the time of writing. Souser is allowed to use it to speed up zlib compressor as long as the QAThardware is available and QAT is capable to handle it.

Configuration

  1. QAT based Encryption for RGW

Edit the Ceph configuration file to make use of QAT based crypto plugin:

plugin crypto accelerator = crypto_qat
  1. QAT Support for Compression

One CMake option have to be used to trigger QAT based compression:

-DWITH_QATZIP=ON

Edit the Ceph configuration file to enable QAT support for compression:

qat compressor enabled=true
QAT Acceleration for Encryption and Compression — Ceph Documentation (2024)
Top Articles
Latest Posts
Article information

Author: Kieth Sipes

Last Updated:

Views: 5759

Rating: 4.7 / 5 (67 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Kieth Sipes

Birthday: 2001-04-14

Address: Suite 492 62479 Champlin Loop, South Catrice, MS 57271

Phone: +9663362133320

Job: District Sales Analyst

Hobby: Digital arts, Dance, Ghost hunting, Worldbuilding, Kayaking, Table tennis, 3D printing

Introduction: My name is Kieth Sipes, I am a zany, rich, courageous, powerful, faithful, jolly, excited person who loves writing and wants to share my knowledge and understanding with you.