Edge storage is all about three factors; orchestration, resource efficiency and security. The ACCORDION Edge Storage (AC.E.S.) component deals with all three of these factors using readily available open-source technology as its basis and building on top of that by combining, optimizing and expanding the functionalities provided. All optimizations and modifications on the platforms that support ACES are performed having in mind the improvement of quality of experience (QoE) of the users that need the framework’s functionality. Some of them include the reduction of data transfer delays, the intelligent data pre-fetching, the smart caching of data packets, the real-time reconfiguration of edge storage architecture, multiple access points and mode support and others.
Orchestration is achieved using a lightweight version of Kubernetes, called K3s. K3s allows us to use the secure and easy to configure and use functionality of Kubernetes in edge devices. This means that we can create secure, fast, configurable and automated or semi-automated deployment scripts that take advantage of a number of selection criteria in order to automatically create edge storage architectures and deploy them on actual devices. Moreover, K3s provides us with a highly dependable, configurable and scalable networking solution, allowing the easy load balancing and service discovery of the edge storage servers. All this is achieved by downloading the pre-created deployment scripts from the ACCORDION GitLab, changing the necessary options in the configuration file and then running the scripts appropriate for the target Kubernetes cluster. Since K3s is a lightweight version of K8s it is (mostly) compatible with the full Kubernetes so most of Kubernetes clusters are already supported. Sadly, some of the open-source platforms used are highly dependent on the CPU architecture so ACES currently supports only ARM and x86_64 architectures for the storage worker nodes.
Resource efficiency is a problem inherent in edge devices and edge computing in general. Most devices have pretty limited capabilities in processing power, network availability, power consumption and storage capacity. ACES is trying to tackle this problem by employing extremely lightweight components like MinIO and K3s, which are both designed having resource efficiency and edge computing in mind. Due to its decentralized nature, MinIO is an optimal candidate because of its limited bandwidth demand to coordinate between its servers and clients. It also is an extremely lightweight solution reducing power consumption, computation demand and heat emissions for all nodes that serve and manage the data. In our tests, two Raspberry Pi 3 was used as servers for ACES and they were both performing efficiently with passive cooling and an ethernet connection, even during stress testing.
Security is ensured using a two-layer approach. The first layer is enforced by K3s and its secure credential storage mechanisms. We are saving credentials for the MinIO using the integrated encryption of K3s, which are being used in the deployment scripts in order to configure the deployed edge storage clusters. K3s also provides some basic access control to its endpoints. On the second layer, we have the MinIO security mechanisms that ensure data confidentiality, integrity and availability by employing state of the art mechanisms for data governance. This two-layered approach ensures that the communication of nodes belonging to the same K3s cluster is unencumbered by unnecessary security measures while an external connection is examined more carefully.