Offloading data compression during restores to a data processing unit in a deduplication backup system
Embodiments for performing the inline deduplication by filtering streaming data as it is received by a backup client through a backup server executing a backup process. A data processing unit (DPU) is deployed to offload certain processing operations performed by a central processing unit (CPU) of the backup client. An inline deduplication operation comprises file operations, data segmentation, segment fingerprinting, compression, and encryption prior to storage in a backup target. The DPU is deployed and configured to perform the compression and encryption steps. It is also configured to perform decompression tasks offloaded by the client for reading compressed data during restore operations.
1 . A computer-implemented method of optimizing client-side restores of backup data in a system optimized for client-side inline deduplication of backup data, comprising:
performing the inline deduplication by filtering streaming data as it is received by a backup client through a backup server executing a backup process executed by a data storage server running a Data Domain File System (DDFS);
receiving, in a backup client, compressed backup data stored by a storage server, wherein the backup client utilizes a Data Domain (DD) Boost application program interface (API) to access a DD Boost library that comprises a Data Domain Protocol (DDP) Layer managing client resources and translating backend processing into application consumable APIs, and wherein the backup data is copied into buffers within the backup client;
providing, in a central processing unit (CPU) of the backup client, a decompression process to decompress the compressed backup data;
deploying a data processing unit (DPU) functionally coupled to the CPU to perform at least some of the decompression process performed by the CPU, wherein the DPU comprises a system on a chip (SoC) device that operates independently of the CPU with independent microcode to operate as a virtual machine operating in reduced-privilege mode relative to the CPU, and that comprises accelerators for specific offload functions;
offloading an entire deduplication stack to the DPU to offload segmentation and fingerprinting operations in addition to compression and encryption operations to the DPU;
extending the API to utilize resources of the DPU to reduce a bandwidth requirement for data ingests;
restoring the streaming data backed up by the inline deduplication of the backup process by: receiving a compressed-restore request sent from the storage server for retrieval of the backup data by the client after compression by the storage server, decompressing backup data compressed by the storage server in the backup client using the DPU by including a dedicated read request to a compressor executing in the DPU, performing deduplication tasks initiated by a dedicated write request so that both client deduplication and decompression tasks are offloaded to the DPU.
2 . The method of claim 1 wherein the backup storage server generates the compressed backup data by:
performing, in the CPU, a segmentation process to determine where to break the streaming data into a plurality of segments; and
calculating, in the CPU, a reference for each segment of the plurality of segments.
3 . The method of claim 2 wherein the DPU further performs at least some of the processing performed by the CPU including compressing, in the DPU, each segment, and encrypting each compressed segment.
4 . The method of claim 3 wherein the DPU comprises a hardware compression and encryption accelerator component, and a decompressor, and further wherein the CPU comprises data buffers, reference buffers, segment buffers executing a distributed segment processing send file loop for backup read and restore write operations.
5 . The method of claim 4 wherein the DD Boost library performs at least the segmentation and the reference calculating steps.
6 . The method of claim 5 wherein the DD Boost library provides an option to use a compression feature that comprises at least part of the compressing.
7 . A computer-implemented method of optimizing client-side inline deduplication of backup data in a backup client, comprising:
performing the inline deduplication by filtering streaming data as it is received by the backup client for a backup process executed through a backup server executed by a data storage server running a Data Domain File System (DDFS);
deploying a data processing unit (DPU) functionally coupled to the CPU to perform at least some of the inline deduplication performed by the CPU, wherein the DPU comprises a system on a chip (SoC) device that operates independently of the CPU with independent microcode to operate as a virtual machine operating in reduced-privilege mode relative to the CPU, and further wherein the DPU comprises accelerators for specific offload functions;
compressing, during a restore process from the backup server to the backup client, data read by the client after decompression, wherein the backup client utilizes a Data Domain (DD) Boost application program interface (API) to access a DD Boost library that comprises a Data Domain Protocol (DDP) Layer managing client resources and translating backend processing into application consumable APIs, and wherein the backup data is copied into buffers within the backup client;
extending the API to utilize resources of the DPU to reduce a bandwidth requirement for data ingests;
offloading an entire deduplication stack to the DPU to offload segmentation and fingerprinting operations in addition to compression and encryption operations to the DPU; and
restoring the streaming data backed up by the inline deduplication of the backup process by: receiving a compressed-restore request sent from the storage server for retrieval of the backup data by the client after compression by the storage server, decompressing backup data compressed by the storage server in the backup client using the DPU by including a dedicated read request to a compressor executing in the DPU, performing deduplication tasks initiated by a dedicated write request so that both client deduplication and decompression tasks are offloaded to the DPU.
8 . The method of claim 7 wherein the DPU comprises data buffers, reference buffers, segment buffers executing a distributed segment processing send and read file loop and further comprises a hardware compression accelerator component, and a decompression component.
9 . The method of claim 8 wherein the DD Boost library provides an option to use a compression feature that comprises at least part of the compressing.