努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • 运维基础

    • nginx 安装
    • nginx-conf常用示例
    • rsync 服务pull与push
    • linux时间同步
    • 系统参数优化
    • ruby版本升级
    • fpm定制rpm
    • php7_X安装
    • iptables规则
    • tcpdump抓包
    • 公司部署Pritunl-VPN
    • 需求shell脚本记录
    • openldap安装配置
    • Ldap集成常用开源服务示例图
    • ansible基础
    • ansible进阶playbook与Roles
    • centos安装python3
    • Firewalld防火墙
    • Linux配置jdk
    • ubuntu安装ftp
    • minio分布式文件存储
      • 单节点部署配置
        • dokcer安装minio服务
        • Centos7部署minio服务
        • 虚拟机单节点run.sh配置
        • 虚拟机多节点部署run.sh配置
        • 添加systemd 配置文件
      • 配置用户权限
      • minio客户端mc
        • mc存储桶数据迁移
        • 服务报错记录:Expected 'storage' API version 'v20', instead found 'v37', please upgrade the servers
      • 个人存储下载地址。。。
    • windows安装openssh
    • centos7安装系统检测不到网卡
    • docker运行一个bind9和常用的网络命令
    • nginx禁用真实IP
  • 监控

  • 日志系统

  • 安全记录

//
  • 运维
  • 运维基础
yangfk
2022-08-19

minio分布式文件存储

//
MinIO是建立在云原生的基础上,有纠删码、分布式和共享存储这些特性。
MinIO专注于并且只专注于存储,而且做的还不错。它可以通过编排平台复制一个MinIO实例就实现了水平扩展。
MinIo部署简单,启动快,amd,arm都可以正常运行,原生支持k8s docker,单数据节点故障,不影响其他节点
读写速度极快。MinIO号称是世界上速度最快的对象存储服务器。在标准硬件上,minio对象存储的读/写速度最高可以达到183 GB/s和171 GB/s

版本下载

国内官网地址 (opens new window)

官方下载地址首页⬅ (opens new window)

所有历史版本下载地址⬅ (opens new window)

minio7

RELEASE.2021-06-17T00-10-46Z (opens new window)

minio

# 单节点部署配置

# dokcer安装minio服务

密码不能过于简单,否则无法启动

mkdir -p /data
docker run -p 9000:9000 -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=adminPassword minio/minio server /data  # 启动容器
1
2

# Centos7部署minio服务

  • 版本选择

RELEASE.2021-06-17T00-10-46Z (opens new window)

版本选择:RELEASE.2021-06-17T00-10-46Z
[root@manage-01 bin]# ./minio -v
minio version RELEASE.2021-06-17T00-10-46Z
  • 配置工作目录

下载上传的RELEASE.2021-06-17T00-10-46Z 二进制文件到bin目录下,重命名,添加执行权限

mkdir -p /data/minio/{data,logs,bin,config} && cd /data/minio/bin  #集群模式需要多创建一个config目录
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2021-06-17T00-10-46Z
mv minio.RELEASE.2021-06-17T00-10-46Z minio
chmod 550 minio
1
2
3
4

# 虚拟机单节点run.sh配置

run.sh 参数名称 说明
--config-dir 指定配置文件目录,初始为空目录
--address 指定api 地址
--console-address 指定 console 地址,不指定是随机端口

添加启动脚本

vi run.sh

#!/bin/bash
minio_home=/data/minio
 
#浏览器访问的账号和密码,如果是集群各节点要保持一致,密码不能过于简单否则启动失败
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=Yfklife123456

#/data/minio/bin/minio server  --address :29200  /data/minio/data &> /data/minio/logs/minio.log 2>&1
${minio_home}/bin/minio server  --address :29200  ${minio_home}/data  &> ${minio_home}/logs/minio.log 2>&1
1
2
3
4
5
6
7
8
9
  • RELEASE.2021-06-17T00-10-46Z 之后的版本配置,多了一个指定console参数 "--console-address :29200"
#!/bin/bash

#浏览器访问的账号和密码,各节点要保持一致,密码不能过于简单否则启动失败
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=Yfklife123456
/data/minio/bin/minio server --config-dir /data/minio/config --address :29000 --console-address :29200  /data/minio/data &> /data/minio/logs/minio.log 2>&1
1
2
3
4
5
6

# 虚拟机多节点部署run.sh配置

分布式minio中文官方文档 (opens new window)

集群模式最少数据节点4个,你可以通过修改服务启动端口和目录来起4个以上minio服务,做到集群 节点IP:192.168.14.{26,27,28,29}

run.sh 参数名称 说明
--config-dir 指定配置文件目录,初始为空目录
--address 指定api 地址
--console-address 指定 console 地址,不指定是随机端口
#!/bin/bash
#minio_home=/data/minio
 
#浏览器访问的账号和密码,如果是集群各节点要保持一致,密码不能过于简单否则启动失败
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=Yfklife123456

/data/minio/bin/minio server --config-dir /data/minio/config --address :29200  http://192.168.14.26:29200/data/minio/data  http://192.168.14.27:29200/data/minio/data http://192.168.14.28:29200/data/minio/data http://192.168.14.29:29200/data/minio/data  &> /data/minio/logs/minio.log 2>&1
1
2
3
4
5
6
7
8
  • RELEASE.2021-06-17T00-10-46Z 之后的版本配置,多了一个指定console参数 "--console-address :29200"
#!/bin/bash
#minio_home=/data/minio
 
#浏览器访问的账号和密码,如果是集群各节点要保持一致,密码不能过于简单否则启动失败
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=Yfklife123456

/home/data/minio/bin/minio server --config-dir /home/data/minio/config --address :29000 --console-address :29200  http://192.168.14.26/data/minio/data  http://192.168.14.27/data/minio/data http://192.168.14.28/data/minio/data http://192.168.14.29/data/minio/data  &> /data/minio/logs/minio.log 2>&1
1
2
3
4
5
6
7
8

启动服务

chmod 550 run.sh && bash run.sh

访问地址:http://IP:29200/ ,如果是集群,所以随便哪一个节点IP都可以访问
用户密码:minio/Yfklife123456

# 添加systemd 配置文件

vi /usr/lib/systemd/system/minio.service

[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
 
[Service]
WorkingDirectory=/data/minio
ExecStart=/data/minio/bin/run.sh
 
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13

启动服务

systemctl start minio
systemctl enable minio
1
2

# 配置用户权限

从RELEASE.2021-06-17T00-10-46Z版本开始之后,minio服务有非常大的改变,包括api接口,如果用jdk接口来区分,之前的版本为 minio7,这个版本之后为minio8, 新版本已经非常接近云产品里面的存储桶,新增了配置规则,用户权限控制等

  • 创建用户组

minio

  • 创建用户

minio

  • 修改用户权限

User =》 【用户名】 =》 POLICIES =》 assign Policies =》 勾选分配权限

minio

# minio客户端mc

minio客户端详细官方文档 (opens new window)

  • mc修复节点数据问题,修复MinIO服务器上的磁盘,存储桶和对象
docker run -it --rm --entrypoint=/bin/sh minio/mc
mc config host add minio2 http://192.168.14.26:29200 minio Yfklife123456 --api s3v4  #minio2 服务别名, 
mc policy set public minio2/cloud-dev   #cloud-dev 是存储桶名
mc admin heal -r minio2  #修复命令
mc admin info minio2
1
2
3
4
5

如果节点数据不一致,执行命令的时候会发现数据会慢慢的同步到一致

minio

# mc存储桶数据迁移

迁移原因:集群“http://10.12.32.189:29200”使用 mc admin heal -r minio2命令修复存储桶一直都是提示黄色,或者红色,服务器物理数据出现不一致,删除数据会某些节点不会删除元数据

docker run -it --rm --entrypoint=/bin/sh minio/mc

#端口修改了
mc config host add minio2 http://10.12.32.189:29200 minio Yfklife123456 --api s3v4 #旧环境
mc config host add minio http://10.12.32.189:29000 minio Yfklife123456 --api s3v4 #新环境

mc policy set public minio2/cloud-dev
mc policy set public minio/cloud-dev

#检查集群信息,
mc admin info  minio

#拷贝mini2 集群里面的 cloud-dev 存储桶下面的资源到 minio集群下的cloud-dev里(提前创建好 cloud-dev 桶)
mc cp -r minio2/cloud-dev minio/
1
2
3
4
5
6
7
8
9
10
11
12
13
14

minio

# 服务报错记录:Expected 'storage' API version 'v20', instead found 'v37', please upgrade the servers

  • 报错信息如下,影响会导致集群节点数据不一致(比如节点1有数据,节点2,3 数据无法同步),访问web界面有报错提示,升级版本恢复集群状态

minio报错版本:minio-20207 version RELEASE.2020-07-31T03-39-05Z

minio升级后的版本:minio version RELEASE.2021-06-17T00-10-46Z

API: SYSTEM()
Time: 17:00:08 CST 08/12/2022
Error: Marking http://192.168.5.189:29200/minio/storage/home/data/minio/data/v37 temporary offline; caused by Post "http://192.168.5.189:29200/minio/stora
ge/home/data/minio/data/v37/readall?disk-id=&file-path=format.json&volume=.minio.sys": dial tcp 192.168.5.189:29200: connect: connection refused (*fmt.wra
pError)
       6: internal/rest/client.go:147:rest.(*Client).Call()
       5: cmd/storage-rest-client.go:151:cmd.(*storageRESTClient).call()
       4: cmd/storage-rest-client.go:523:cmd.(*storageRESTClient).ReadAll()
       3: cmd/format-erasure.go:406:cmd.loadFormatErasure()
       2: cmd/format-erasure.go:326:cmd.loadFormatErasureAll.func1()
       1: internal/sync/errgroup/errgroup.go:123:errgroup.(*Group).Go.func1()
Unable to read 'format.json' from http://192.168.5.187:29200/home/data/minio/data: Expected 'storage' API version 'v20', instead found 'v37', please upgra
de the servers
1
2
3
4
5
6
7
8
9
10
11
12
13

# 个人存储下载地址。。。

https://download.yfklife.cn/blog/ops/minio/minio.RELEASE.2021-06-17T00-10-46Z

//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2023/11/20, 16:23:11
ubuntu安装ftp
windows安装openssh

← ubuntu安装ftp windows安装openssh→

最近更新
01
Linux Polkit 权限提升漏洞(CVE-2021-4034)
03-28
02
postgreSQL维护
03-17
03
trivy系统漏洞扫描
02-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//