Looking for an open source storage solution that combines the convenience of file systems with the scalability and performance of block storage? If so, open source object storage solutions are the answer.
This article discusses and compares the offerings of several object storage vendors in the open source space.
The Benefits of Open Source Object Storage
As we’ve explained in a previous article about cloud object storage, object storage is an alternative to file-level storage and to block storage. In many cases, object storage is the ideal storage solution if you seek the organization and structure that you get from file systems, but also want the scalability advantages associated with block storage.
If you choose an open source object storage solution, you get these benefits, as well as the peace of mind of knowing that your storage platform is free from the threat of vendor lock-in.
Depending on how you maintain an open source object storage system, the cost might be lower than closed-source object storage, too. That said, don’t make the mistake of assuming that open source software solutions are always cheaper. Although open source object storage software can generally be obtained for free, you may want to pay for commercial support plans from an object storage vendor. You need to factor that cost into your Total Cost of Ownership (TCO) calculations.
Object Storage Comparison: Top S3-Compatible Solutions
Currently, there are three main open source object storage solutions that offer the important feature of being compatible with Amazon S3 object storage service.
S3 compatibility is important because it allows you to use one of these open source solutions as an alternative to Amazon S3 storage service. By setting up your own object storage server, you could potentially save money as compared to using S3, as well as gain performance advantages in some situations. And, of course, S3 compatibility ensures that you can always move data easily from an open source storage platform to S3 buckets if you wish.
Minio is an open source object storage solution written mostly in Go. It offers an API for integrating with S3 object storage servers, as well as a command-line interface that can communicate with S3. The command-line interface also allows you to work with object storage data using familiar Unix commands, like ls and diff.
Minio can be installed on any type of modern operating system -- Linux, Windows, and macOS -- and it can also run as a Docker container.
Swift is the object storage component within OpenStack, an open source platform for building cloud environments. Although Swift is open source, it is developed primarily by SwiftStack, a commercial object storage vendor.
Because Swift is an OpenStack component, rather than a standalone software platform, you need an OpenStack environment in order to use Swift. OpenStack can currently run only on Linux-based operating systems. (You can install OpenStack on another type of operating system using a Linux-based virtual machine, but this is not an efficient approach for production environments.)
Ceph is an open source storage platform developed primarily by Red Hat, with contributions from a number of other organizations and individuals.
Ceph is designed to be extremely scalable and capable of handling workloads in the exabyte range. In addition, although Ceph stores data in the backend as objects, Ceph also provides block storage and file system interfaces for accessing Ceph data.
Ceph runs only on Linux.
Several object storage vendors offer open source systems for object storage. The main differences between the three discussed here involve whether they are part of a larger platform (as in the case of Swift), as well as the number of operating systems that can run them.
No matter which open source object storage solution you choose, you’ll get the benefits of highly scalable storage, without worries about being locked into a proprietary storage platform.