Nexoedge Overview and Resources

Nexoedge is a reliable and efficient multi-cloud storage system which enables applications and devices at the edge to store data into one or more clouds. It employs erasure coding for data protection. It also applies a network-coding-inspired data repair technique on erasure coding for improved repair performance and supports major cloud storage providers as storage destinations. Nexoedge enables applications to seamlessly utilize storage services by major cloud storage providers as a unified reliable and storage-efficient storage pool.

Architecture

Nexoedge adopts a proxy-agent architecture. At the edge, each proxy serves as a storage gateway to expose a unified and reliable storage pool over multiple cloud storage destinations (e.g., private data centers or public clouds) to edge applications. It transparently pre-processes and distributes data for data reliability. In each cloud, an agent is deployed for cloud data management and repair.

Key system components:

  • Proxy:

    • Handle user requests and accesses data via remote agents

    • Distribute (or reassemble) data to (or from) storage destinations via coding operations

    • Persist file metadata and system states to a metadata store

  • Agent:

    • Handle data access at storage destinations within the same data center or cloud

    • Assist data repair by encoding data within the same data center or cloud and transferring it across clouds

    • Abstract each storage destination as a storage container and manage one or multiple storage containers

Supported storage interface: File access via the Server Message Block (SMB) storage protocol (through an extension of the open-source Samba framework by adding a virtual file system (VFS) module which communicates with an Nexoedge proxy)

System component communication: TCP/IP connections with optional SSL/TLS

Supported deployment options: Packages (Ubuntu 22.04 AMD 64-bit), Docker container, Docker compose, Kubernetes

Documentation

Other Resources