市面上有很多的分布式存储方案,比如FastDFS,MongoDB,或者目前云厂商的存储
比如阿里云,腾讯云,华为云等等,但是对于很多企业不愿意上云,于是业内就出现了很多
的方案,而本章讲述的MinIO,一定是你看了就绝壁拍手称赞的!
目录
1、分布式文件系统应用场景
互联网下海量的非结构化存储的需求背景下,比如:
- 电商网站,存储海量的商品图片
- 视频网站,海量的视频文件
- 网盘,海量的文件
- 社交网站等等
在这样的背景下,传统的FastDFS部署太过于繁琐,动不动就是来个nginx,然后配置一
堆参数和设置,尤其是做分布式的时候,那维护成本一下就上来了,从维护和部署的角度,
FastDFS不是一个好的选择,而从迭代的角度,FastDFS早就不维护了,有很多需求是无法
支持到的,那么就需要你自己思考写源码打包了。
同理HDFS部署也不简单,而且Hadoop适合超大文件的存储,并且文件都需要分片,应
用场景更多是计算处理,实时数据分析,并且其实HDFS比较吃硬件设备,因为偏于计算,
所以对CPU的要求比较高,对于中小企业的业务量并没有这么大,所以应用场景这块也比较
难接触到,但是HDFS的功能还是十分强大的!!还是根据业务进行选型。
1.1、MinIO介绍
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云
存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份
数据和容器/虚拟机镜像等,而 一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或
者MySQL。
官网:MinIO概况说明 | 高性能,对Kubernetes友好的对象存储
对于中小型企业,如果不选择存储上云,那么 Minio 是个不错的选择,麻雀虽小,五脏
俱全。当然 Minio 除了直接作为对象存储使用,还可以作为云上对象存储服务的网关层,无
缝对接到 Amazon S3、MicroSoft Azure。
在中国:阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在
使用MinIO产品。
优点:
- 部署简单: 一个single二进制文件即是一切,还可支持各种平台。
- minio支持海量存储,可按zone扩展(原zone不受任何影响),支持单个对象最大5TB; 兼容Amazon S3接口,充分考虑开发人员的需求和体验;
- 低冗余且磁盘损坏高容忍,标准且最高的数据冗余系数为2(即存储一个1M的数据对象,实际占用 磁盘空间为2M)。但在任意n/2块disk损坏的情况下依然可以读出数据(n为一个纠删码集合(Erasure Coding Set)中的disk数量)。并且这种损坏恢复是基于单个对象的,而不是基于整个存储卷的。
- 读写性能优异
体现在下图,HDD硬盘下,运行16个节点的Minio集群,读性能在10GB/s,写性能在
8GB/s,这个是非常高的。
上述的优点先过个眼缘,后面我会一一去解释并演示出来。
1.2、MinIO基础概念
- Object:存储到 Minio 的基本对象,如文件、字节流,Anything...
- Bucket:用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。
- Drive:即存储数据的磁盘,在 MinIO 启动时,以参数的