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
User documentation: A PDF version in the release assets of Nexoedge and the source code
Developer documentation
Deployments by examples