NGC | Catalog


For copy image paths and more information, please view on a desktop device.
Logo for DOCA SNAP


NVMe/virtio-blk Storage-defined Network Accelerated Processing (SNAP) Service is based on NVIDIA's DPU and enables hardware-accelerated virtualization of local storage. Resulting in enhanced storage and networking efficiency and performance.



Latest Tag



December 1, 2023

Compressed Size

270.85 MB

Multinode Support


Multi-Arch Support


4.2.1-doca2.2.0 (Latest) Security Scan Results

Linux / arm64


NVIDIA® BlueField® SNAP and virtio-blk SNAP (storage-defined network accelerated processing) technology enables hardware-accelerated virtualization of local storage. NVMe/virtio-blk SNAP presents networked storage as a local block-storage device (e.g., SSD) emulating a local drive on the PCIe bus. The host OS or hypervisor uses its standard storage driver, unaware that communication is done, not with a physical drive, but with NVMe/virtio-blk SNAP framework. Any logic may be applied to the I/O requests or to the data via the NVMe/virtio-blk SNAP framework prior to redirecting the request and/or data over a fabric-based network to remote or local storage targets.

NVMe/virtio-blk SNAP is based on the NVIDIA® BlueField® DPU family technology and combines unique hardware-accelerated storage virtualization with the advanced networking and programmability capabilities of the DPU. NVMe/virtio-blk SNAP together with the BlueField DPU enable a world of applications addressing storage and networking efficiency and performance.

Service Architecture

The traffic from a host-emulated PCIe device is redirected to its matching storage controller opened on the SNAP service. The controller, from its side, holds at least one open backend device (usually SPDK block device). When a command is received, the controller executes it. Admin commands are mostly answered immediately, while I/O commands are redirected to the backend device for processing.

The request-handling pipeline is completely asynchronous, and the workload is distributed across all Arm cores (allocated to SPDK application) to achieve the best performance.

The following are key concepts for SNAP:
• Full flexibility in fabric/transport/protocol (e.g. NVMe-oF/iSCSI/other, RDMA/TCP, ETH/IB)
• NVMe and virtio-blk emulation support
• Easy data manipulation
• Using Arm cores for data path

Installation and Getting Started

All preparation steps are listed under SNAP's guide section SNAP Container Deployment and DOCA's Container Deployment User Guide.

Note: The DOCA SNAP Service container is configured for K8S-based deployment, hence the use of the docker pull command is discouraged.

Downloading the .yaml configuration

The .yaml configuration for our container is doca_snap.yaml:

wget --content-disposition

Note: The file is also stored with the rest of the .yaml configurations as were pulled from NGC in the previous steps (See "Installation and Getting Started").

Please refer to the documentation for more information.


The DOCA SNAP Service guide is available here.

License & EULA

DOCA is licensed under the NVIDIA DOCA License. By pulling and using the container, you accept the terms and conditions of this license.

Technical Support

Use the NVIDIA Developers forum for questions regarding this Software.