分布式文件系统的应用场景

  • 互联网海量的非结构化数据的存储需求
      • 电商网站:海量的商品图片
      • 视频网站:海量的视频文件
      • 网盘:海量的各种文件
      • 社交网站:海量的图片

问题:

  1. 什么是非非结构化数据?
  • 我们各种数据库,例如mysql、PG都是存储的各种结构化数据,他们存在各种字段了,但是我们的音乐?我们的各种视频如何存储呢?这些没有具体的结构了。所以是非结构化数据

MInIO介绍

  • MinIO是一款对象存储服务
  • MinIO的特点
      • 兼容亚马逊S3的云储存服务接口,十分方便上云
      • 适合于存储大量给结构化数据:图片、视频、日志文件。。。
      • minio是一个轻量的服务,很小的一个文件,可以直接命令启动(go实现的)

minio的优点:注意一下看英文文档,中文文档的更新不及时存在坑

实战演示

  • 第一个坑(使用docker部署的时候,我们的minio新版需要暴露两个端口(一个是客户端端口(需要自己暴露),一个是服务端口)),否则访问不到客户端端口
  • minio基础概念:
      • bucket(桶):也就是我们的顶层目录,下面就是存储我们的各种对象(各种文件)
      • object:存储到minio的基础对象(例如文件、字节流)
      • Drive: 存储数据的磁盘,我们的minio都会将数据存储到我们的磁盘中(磁盘可以分块)
      • Set:就是我们的分布式集群场景下的,或者多磁盘场景下的存储组合(不同位置的drive组成set),一个对象文件存储在一个set中那么就是存储在不同的drive了(加入两个drive挂了,我们还能通过其他drive进行数据恢复)
        • 一个对象存储在一个set上
        • 一个集群划分为多个set
        • set的drive数是固定的,由配置计算而出
        • set中的drive尽可能的分布在不同的节点

关于set的例子

  • 场景:现在我们的服务器上有八块磁盘(一个set)也就是8个drive,然后我们存储一个对象文件,那么这8块磁盘(drive)都会存储这个对象

Logo

更多推荐