Software Defined and Hardware Efficient Storage
OpenIO is a software company: we sell a scale-out storage solution that can manage petabytes of data, and that can be installed almost anywhere, from a computer as small as a Raspberry Pi up to piles of fat 90+ disk servers. Regardless of the size of the installation, the software is the same; depending on available hardware resources and end user needs, it can be configured in several cluster layouts, with different protection schemes, geo-replication, and so on. A single cluster can also be built out of nodes with different CPUs. In the lab we have a cluster made of Raspberry Pis, X86 servers, Orange Pi boards, and even a MIPS-based node. Yes MIPS, is not officially supported, but an engineer did it just for fun.
When we talk about software defined and flexibility we really mean it. There is total separation between hardware and software, and, even though we have certified hardware partners, we have already demonstrated that we can run efficiently on anything.
Our goal is to take advantage of all available resources and make use of them efficiently. This means that the cluster can be built out of nodes with different capacities, CPU, RAM, and connectivity, and they all participate in the cluster by giving what they can. To manage all of this we have an internal load balancing mechanism called Conscience. Each node continuously computes its quality score and shares it with others. The score, ranging from 0 to 100, is an index of the availability of that node, with 0 meaning totally unavailable and 100 meaning fully receptive.
Conscience picks the best node available at the time for each operation. It goes further – such as, the way we organize the key space – but Conscience is ultimately what allows OpenIO SDS to run on any server and take advantage of all its resources.
The Conscience is part of the story, and the flip side is the lightweight design that empowers SDS and makes it highly efficient. You can have a look at the OpenIO Sizing Guide for x86 systems to evaluate the hardware needed to build an SDS-based cluster. You will find information on the size of nodes for common configurations and the resources needed to configure single and split configurations (with the front-end access layer and back-end storage nodes separated).
OpenIO Software Define Storage can be installed on standard x86 (an ARM) servers. Its characteristics give it the same set of features and best-in-class performance consistency no matter what hardware it runs on. At the same time OpenIO SDS needs less hardware resources and performs better than competing object stores.