minio 部署,并使用控制台配置

概念基础

1.1 minio 优点

  • 部署简单
    • wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
    • chmod +x minio
    • ./minio server /mnt/data (启动minio文件,并指定数据存储目录)
  • 支持海量存储,单个对象最大5G
  • 低冗余且磁盘损坏高

1.2 minio 的基础概念

  • Object:存储到 minio 的基本对象,如文件,字节流
  • Bucket:用来存储 Object 的逻辑空间。在每个 Bucket 之间的数据是相互隔离的。对于客户端而言,相当于一个存放文件的顶层文件夹
  • Drive:即存储数据的磁盘,在minio启动时,以参数方式传入,minio所有的数据对象都存在Drive里
  • Set:即一组Drive的集合,分布式部署根据集群规模自动划分一个或多个Set,每个Set中的Drive分布在不同的位置。
    • 一个对象存储在一个Set上
    • 一个集群划分为多个Set
    • 一个Set包含的Drive数量固定,默认由系统根据集群规模自动计算得出
    • 一个Set中的Drive及肯能分布在不同的节点上

1.3 纠删码EC

  • Minio使用纠删码erasure code和校验和checksum来保护数据免受硬件故障和无声数据损坏。 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。
  • minio 部署,并使用控制台配置_第1张图片

2 环境搭建

2.1 单机模式

没有纠删码模式

  • 直接启动
    • export MINIO_ROOT_USER=admin
    • export MINIO_ROOT_PASSWORD=admin1234
    • ./minio server --console-address ":9001" --address ":9000" /mnt/data
  • docker 启动
    • docker run -d -p 9000:9000 -p 9001:9001 --name minio -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin1234" -v /root/mnt/data:/data -v /root/mnt/config:/root/.minio minio/minio server /data --console-address ":9001" --address ":9000"

有纠删码模式

  • docker run -d -p 9000:9000 -p 9001:9001 --name minio -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin1234" -v /root/mnt/data1:/data1 -v /root/mnt/data2:/data2 -v /root/mnt/data3:/data3 -v /root/mnt/data4:/data4 -v /root/mnt/config:/root/.minio minio/minio server /data{1..4} --console-address ":9001" --address ":9000"

配置文件存在:/data/.minio.sys 下面,如果使用纠删码模式,则在4个data下

2.2 集群模式

minio 部署,并使用控制台配置_第2张图片分布式存储可靠性的常用方法

冗余

冗余法最简直接,即对存储的数据进行副本备份,当数据出现丢失,损坏,即可使用备份内容进行恢复,而副本备份的多少,决定了数据可靠性的高低。如 hadoop的文件系统(3个副本),redis的集群,Mysql的主备模式

校验

校验法即通过校验码的数据计算方式,对出现丢失,损坏的数据进行校验,还原。注意,这里有两个作用,一个校验,通过对数据进行校验和(checksum)进行计算,可以检查数据是否完整,有无损坏或更改,在数据传输和保存经常用到,如TCP协议;而是恢复还原,通过对数据集合校验码,通过数学计算,还原丢失或损坏的数据。如单机硬盘存储中RAID技术,纠删码(Erasure Code)技术等

2.2.1 分布式minio优势

  • 数据保护
    • 分布式minio采用纠删码来防范多个节点宕机或位衰减 bit rot
    • 分布式minio至少需要4个硬盘,使用分布式minio自动引入纠删码功能
  • 高可用
    • 如果有4个节点,即便2个节点宕机仍然可用,但是无法写入,需要N/2+1个节点才可以写
  • 一致性
    • minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write

2.2.2 运行分布式minio

启动一个分布式minio实例,你只需要把硬盘位置做为参数传给 minio server 命令即可,然后,你需要在其他所有的节点运行同样的命令

  • 分布式minio里所有的节点需要有同样的access秘钥和secret秘钥,这样节点才能简历连接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥设置成环境变量
  • 分布式minio使用的磁盘必须是干净的,里面没有数据
  • 分布式minio里面的节点时间差不能超过2秒,你可以使用NTP来保证时间一致

3个节点,每个节点2块盘

  • minio 直接启动 略
  • docker 模式启动集群

直接启动

docker 安装minio集群

  1. docker 部署minio集群
    1. 准备3个节点,每个节点创建2个挂载点,由于集群模式下不能使用根磁盘,这里使用docker卷作为挂载点。
    2. 3节点的集群,故障一个节点时不影响对集群的读写操作。
  1. 所有节点配置主机名解析
  • minio 部署,并使用控制台配置_第3张图片

  1. 创建数据卷
    1. docker volume create minio-data1
    2. docker volume create minio-data2
  1. 启动集群
    1. minio 部署,并使用控制台配置_第4张图片

【docker安装minIO集群(一)】_一枚小爪哇的博客-CSDN博客_docker minio 集群

3 minio 客户端

3.1 客户端安装

  • wget https://dl.min.io/client/mc/release/linux-amd64/mc
  • chmod +x mc
  • mv mv /usr/local/sbin

3.1 客户端配置

mc 将所有的配置信息都存储在 ~/.mc/config.json 文件中

  • 查询 mc host 配置
    • mc config host ls
  • 添加minio 服务
    • mc config host add minio-server http://xx:9006 admin admin1234
  • 删除host
    • mc config host remove minio-server

minio 配置通知事件

配置完成后可将通知事件绑定在某个桶上,自己选择通知策略

minio 部署,并使用控制台配置_第5张图片

minio 创建用户并设置权限

minio 部署,并使用控制台配置_第6张图片

minio 部署,并使用控制台配置_第7张图片

minio 部署,并使用控制台配置_第8张图片

 

给用户绑定权限策略

minio 部署,并使用控制台配置_第9张图片

你可能感兴趣的:(java,学习,docker,运维,容器)