MinIO
This article contains promotional content. (September 2019) |
Developer(s) | MinIO, Inc |
---|---|
Initial release | 11 March 2016[1] |
Repository | |
Written in | Go |
Type | Object storage |
License | GNU Affero GPL |
Website | min |
MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. It can handle unstructured data such as photos, videos, log files, backups, and container images with (currently) the maximum supported object size of 5TB.[2]
History & development
MinIO's main developer is MinIO Inc, a Silicon Valley-based technology startup founded by Anand Babu Periasamy, Garima Kapoor, and Harshavardhana in November 2014.[3]
MinIO has published a number of benchmarks to disclose both its own performance and the performance of an object storage in general, those include comparisons to an Amazon S3 for Presto and Spark as well as throughput results for the S3Benchmark on HDD and NVMe drives.[4][5]
Re-licensing
As of April 23 2021 MinIO, Inc submitted a change that re-licensed the project from its previous Apache V2 to GNU Affero Public License Version 3 (AGPLv3). [6].
However, this change was controversial[7] and sparked debate about making the change without notice and the impact on existing contributors to the previously Apache V2 licensed project.[8] The subsequent GitHub issue raising the concern was initially moved to a discussion[9] and the discussion was then limited to only contributors to the project.[10]
Subsequently MinIO, Inc published an article explaining its position on this change.
We began the AGPL v3 journey eighteen months ago in October of 2019. Kubernetes multi-tenant operator stack, management, and monitoring console, KES encryption service, Sidekick load-balancer all started with AGPL v3 license. Since that time we have put the vast majority of our code under this license and have been transparent in that intent, including the designation on our home page, download page, pricing page, and compliance page. At this point, it is very difficult to avoid the AGPL dependency for any reasonable production environment. Relicensing the remaining core components uniformly under the same copyleft license will remove any ambiguity caused by the mixed license model. Moving to a single license allows us to simplify the design and code organization, for example, we will now embed the new management console and object browser into the server binary.[11]
Architecture
MinIO storage stack has three major components: MinIO Server, MinIO Client (a.k.a. mc
, which is a command-line client for the object and file management with any Amazon S3 compatible servers), and MinIO Client SDK that can be used by application developers to interact with any Amazon S3 compatible server.
MinIO Server
MinIO cloud storage server is designed to be minimal and scalable. It is light enough to be bundled along with the application stack, similar to NodeJS, and Redis.
Designed for high performance [12], MinIO offers a suite of features that are specific to large enterprise deployments, these include erasure coding, bitrot protection, encryption/WORM, identity management, continuous replication, global federation, and multi-cloud deployments via gateway mode.
MinIO server is hardware agnostic, it can be installed on physical or virtual machines or launched as Docker containers and deployed on container orchestration platforms like Kubernetes.[13]
MinIO Client
MinIO Client (mc
) provides an alternative to the standard UNIX commands (e.g. ls
, cat
, cp
, mirror
, diff
, etc) adding support for an Amazon S3 compatible cloud storage services. It works on Linux, Mac and Windows platforms.[14]
MinIO Client SDK
MinIO Client SDK provides an API to access any Amazon S3 compatible object storage server.[15] Language bindings are available for Go, Java, Python, JavaScript, Haskell, and languages hosted on top of the .NET Framework.
References
- ^ "minio/minio at RELEASE.2021-02-19T04-38-02Z". GitHub.
- ^ https://docs.min.io/docs/minio-server-limits-per-tenant.html
- ^ https://www.crunchbase.com/organization/minio-inc
- ^ Mellor, Chris (24 July 2019). "Traditional file and block storage vendors are toast – Minio". Blocks & Files. Blocks & Files. Retrieved 4 September 2019.
- ^ https://blocksandfiles.com/2019/11/13/minio-benchmark-object-storage-speed-wars/
- ^ https://github.com/minio/minio/commit/069432566fcfac1f1053677cc925ddafd750730a#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7
- ^ https://news.ycombinator.com/item?id=26919510
- ^ https://github.com/minio/minio/issues/12143
- ^ https://github.com/minio/minio/issues/12143
- ^ https://github.com/minio/minio/discussions/12157
- ^ https://blog.min.io/from-open-source-to-free-and-open-source-minio-is-now-fully-licensed-under-gnu-agplv3/
- ^ https://blocksandfiles.com/2019/11/13/minio-benchmark-object-storage-speed-wars/
- ^ https://diamanti.com/hyperscale-ml-with-kubeflow-minio-tensorflow-and-diamanti/
- ^ https://github.com/minio/minio#binary-download
- ^ Nicolas, Philippe (2016-07-15). "The History Boys: Object storage ... from the beginning". The Register.