一、MinIO是干嘛的?
网上搜索"minio是干嘛的"这个问题搜索的太多了,我们感觉是我们的工作没有做好才给大家造成了这么大的信息差。在这里,我们有义务将信息差补齐。
先正面回答问题:
MinIO是一种SDS(软件定义存储)的分布式存储软件,用来进行构建独立、私有化、公有云、边缘网络的对象存储软件。 它是一个开源的软件,原来遵循的是Apache协议,在2021年4月22日修改为了AGPL v3.0协议。 如果遵守软件许可协议使用,你几乎可以免费使用它。
二、MinIO的解释好复杂,给我一个简单点的解释行吗?
很多朋友又提到了下面的问题: "你上午说了那么大一段,我根本不明白是什么意思呀?你能简单点一说一下到底是干嘛的,为什么要用MinIO吗?"
好的,我们提取一些关键词:
- SDS,软件定义存储
- 分布式存储
- 对象存储
- 私有云存储
- 公有云存储
- 边缘网络
- apche协议
- AGPL v3.0协议
我们针对上面的回答清楚后,再来理解最上面的一句话就好理解了。
三、名词解释
3.1 SDS(软件定义存储)
传统的存储设备都是有专用硬件的。但是,CPU的算力迅猛增长,算力不再是问题了。并且,也不需要再次购买专用硬件了。 基于CPU强大的算力,用软件实现和定义的分布式存储,即便宜、又安全、还省钱。 与传统硬件定义的存储价格相对可以节省成本3 - 7倍的费用。
3.2 分布式存储
传统的存储像NAS(网络附加存储)都是单节点的,如果出现网络通信故障,整个数据保障全部都会中断。因此,大家想到了一种办法:由多台服务器构建一个存储网络,任意一台存储服务器掉线都不会影响数据安全和服务的稳定。这个时候,就推出了分布式存储。
3.3 对象存储
最早的时候Google 开放了它全球 低成本存储的一篇实践论文,引起了全球的存储市场的震动。后来各家都基于Google开放的文档实现了自己的对象存储,极大的降低了自己企业的成本。其中: 亚马逊实现的对象存储叫S3; 阿里云实现了OSS(Object storage system); Google实现的对象存储叫GCS(Google cloud storage); 微软实现的对象存储叫ABS(Azure Blob Storage); 百度实现的叫BOS; 国内其他厂商,包括七牛、青云、ceph等厂家也都实现了自己的对象存储系统。
在对象存储的内部使用URL进行统一资源定位,每一个对象相当于是一个URL,这样相比于传统的文件系统存储方式,对象存储更加灵活、可扩展性更强,更适合存储海量数据。 它最最大的优点在于:节约成本的同时,实现高可扩展性,它可以轻松地增加存储容量,而无需停机维护或中断服务。 而公开对象存储标准的是S3。因此,
3.4 私有云存储、公有云存储、边缘网络
公有云:一般由大公司如阿里、腾讯、百度等公司构建的公众(个人或者公司)可以直接在上面按量或按需租赁服务器、算力、存储空间的一种云计算产品。 私有云:私有云有更好的安全性、私密性、独立性,一般是由企业自己构建的云计算池资源。 边缘网络:一般是小型物联网设备或者家庭物联网设备,如家用电视、路由器、家用存储网关、工厂存储网关、汽车存储网关等。
3.5 Apache 协议和AGPL v3.0 协议
首先,国外讲究开源和普世价值观,好的东西分享给更多的人,所以马斯克的星舰、特斯拉的全部源代码、设计图全都开源了。
但是,需要让更多的人遵守一个开源规范,于是就有了一系列的开源协议如:Apache协议、AGPL v3.0协议。
Apache协议的特点:
- 代码派生:Apache 协议允许对代码进行修改、衍生和扩展,并且可以将这些修改后的代码重新发布。
- 私有使用:Apache 协议还允许将 Apache 许可的代码用于私有目的,而不需要公开发布或共享这些代码。
- 版权声明:Apache 协议要求所有代码都必须包含原始版权声明和许可证。
- 免责声明:Apache 协议明确规定,代码作者和 Apache 软件基金会不对任何因使用该软件而引起的风险和损失负责。
- 专利授权:Apache 协议明确规定,如果原始代码拥有人拥有相关专利,则授予使用该代码的公司和个人适当的专利授权。 所以我们通常认为,Apache 协议是一种非常灵活和宽松的开源许可证,允许开源社区和商业公司根据自己的需求进行自由使用和分发代码。
AGPL v3.0开源协议的特点:
AGPL v3.0 协议要求在使用AGPL v3.0 许可的软件作为服务通过互联网向外提供服务时,必须公开源代码并允许其他人查看、修改和分发源代码。 这个开源协议有以下几个特点:
- 共享和公开源代码:AGPL v3.0 协议要求将使用该许可证的软件的源代码公开,并且所有基于该软件构建的应用程序都必须遵守该许可证的规定。
- 网络服务的限制:AGPL v3.0 协议适用于在网络上提供服务的软件,例如 Web 应用程序和 SaaS(Software as a Service)服务。如果使用许可证的软件被用于这些服务,那么相应的源代码必须公开。
- 贡献者权益保护:AGPL v3.0 协议还明确规定,任何对软件进行更改或修改的用户必须将其贡献回到原始项目中,以便其他人也可以自由地使用和修改这些更改。
- 版权声明:AGPL v3 协议要求在所有的副本和派生作品中包含原始版权和许可证声明。
总结,Apache开源协议更为宽松,而AGPL v3.0协议的权利义务要求更加严格一些。
四、MinIO是干嘛的?(总结)
4.1 温故而知新
上面我们解析了所有的内容,再读一次,我们的总结:
MinIO是一种SDS(软件定义存储)的分布式存储软件,用来进行构建独立、私有化、公有云、边缘网络的对象存储软件。 它是一个开源的软件,原来遵循的是Apache协议,在2021年4月22日修改为了AGPL v3.0协议。 如果遵守软件许可协议使用,你几乎可以免费使用它。
4.2 使用场景
说了一系列理论,不说使用场景就是耍(bu)流(yao)氓(lian)。
现在企业在开发的时候有一系列的要求:
- 不准在服务器进行本地文件写入;
- 要求写入必须要写入至统一对象存储中去。
这样的要求带来的好处就是: 每个人写入的时候,都写到了统一的存储数据湖中。如果有5台应用服务器需要快速扩容,可以瞬间再扩展5台服务器,构建10台服务器空间即可。所有的文件都存储于MinIO这样的对象存储中,扩容而不需要复制各台服务器中的文件。 这样就能实现业务的快速扩容啦。
你懂了吗?