注册

MinIO是干嘛的?

一、MinIO是干嘛的?


网上搜索“minio是干嘛的”这个问题搜索的太多了,我们感觉是我们的工作没有做好才给大家造成了这么大的信息差。在这里,我们有义务将信息差补齐。


先正面回答问题:



MinIO是一种SDS(软件定义存储)的分布式存储软件,用来进行构建独立、私有化、公有云、边缘网络的对象存储软件。
它是一个开源的软件,原来遵循的是Apache协议,在2021年4月22日修改为了AGPL v3.0协议。
如果遵守软件许可协议使用,你几乎可以免费使用它。



二、MinIO的解释好复杂,给我一个简单点的解释行吗?


很多朋友又提到了下面的问题:
“你上午说了那么大一段,我根本不明白是什么意思呀?你能简单点一说一下到底是干嘛的,为什么要用MinIO吗?”


好的,我们提取一些关键词:



  1. SDS,软件定义存储
  2. 分布式存储
  3. 对象存储
  4. 私有云存储
  5. 公有云存储
  6. 边缘网络
  7. apche协议
  8. 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协议的特点:



  1. 代码派生:Apache 协议允许对代码进行修改、衍生和扩展,并且可以将这些修改后的代码重新发布。
  2. 私有使用:Apache 协议还允许将 Apache 许可的代码用于私有目的,而不需要公开发布或共享这些代码。
  3. 版权声明:Apache 协议要求所有代码都必须包含原始版权声明和许可证。
  4. 免责声明:Apache 协议明确规定,代码作者和 Apache 软件基金会不对任何因使用该软件而引起的风险和损失负责。
  5. 专利授权:Apache 协议明确规定,如果原始代码拥有人拥有相关专利,则授予使用该代码的公司和个人适当的专利授权。
    所以我们通常认为,Apache 协议是一种非常灵活和宽松的开源许可证,允许开源社区和商业公司根据自己的需求进行自由使用和分发代码。

AGPL v3.0开源协议的特点:


AGPL v3.0 协议要求在使用AGPL v3.0 许可的软件作为服务通过互联网向外提供服务时,必须公开源代码并允许其他人查看、修改和分发源代码。
这个开源协议有以下几个特点:



  1. 共享和公开源代码:AGPL v3.0 协议要求将使用该许可证的软件的源代码公开,并且所有基于该软件构建的应用程序都必须遵守该许可证的规定。
  2. 网络服务的限制:AGPL v3.0 协议适用于在网络上提供服务的软件,例如 Web 应用程序和 SaaS(Software as a Service)服务。如果使用许可证的软件被用于这些服务,那么相应的源代码必须公开。
  3. 贡献者权益保护:AGPL v3.0 协议还明确规定,任何对软件进行更改或修改的用户必须将其贡献回到原始项目中,以便其他人也可以自由地使用和修改这些更改。
  4. 版权声明:AGPL v3 协议要求在所有的副本和派生作品中包含原始版权和许可证声明。

总结,Apache开源协议更为宽松,而AGPL v3.0协议的权利义务要求更加严格一些。


四、MinIO是干嘛的?(总结)


4.1 温故而知新


上面我们解析了所有的内容,再读一次,我们的总结:



MinIO是一种SDS(软件定义存储)的分布式存储软件,用来进行构建独立、私有化、公有云、边缘网络的对象存储软件。
它是一个开源的软件,原来遵循的是Apache协议,在2021年4月22日修改为了AGPL v3.0协议。
如果遵守软件许可协议使用,你几乎可以免费使用它。



4.2 使用场景


说了一系列理论,不说使用场景就是耍(bu)流(yao)氓(lian)。


现在企业在开发的时候有一系列的要求:



  1. 不准在服务器进行本地文件写入;
  2. 要求写入必须要写入至统一对象存储中去。

这样的要求带来的好处就是:
每个人写入的时候,都写到了统一的存储数据湖中。如果有5台应用服务器需要快速扩容,可以瞬间再扩展5台服务器,构建10台服务器空间即可。所有的文件都存储于MinIO这样的对象存储中,扩容而不需要复制各台服务器中的文件。
这样就能实现业务的快速扩容啦。


你懂了吗?


作者:Python小甲鱼
来源:juejin.cn/post/7304531203772334115

0 个评论

要回复文章请先登录注册