Minio分布式对象存储部署!

Posted handsomeboy-东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Minio分布式对象存储部署!相关的知识,希望对你有一定的参考价值。

minio概述

  • minio 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM映像。对象的大小可以从几KB到 最大5TB。
  • MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。因为MinIO一开始就只为对象存储而设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的 易用性、高效性。这样的结果所带来的好处是:它能够更简单的实现局有弹性伸缩能力的原生对象存储服务。MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。当然,也不排除数据分析、高性能应用负载、原生云的支持。在中国:阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品

minio部署

设备准备:

主机名			IP地址					系统			内存		硬盘
minio01			192.168.118.44			Centos7			8G			三块硬盘
minio02			192.168.118.66			Centos7			8G			三块硬盘

环境准备

  • 两台设备一起设置
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
echo "nameserver 114.114.114.114" > /etc/resolv.conf
ntpdate ntp1.aliyun.com
  • 数据盘准备,同样两台设备同时配置,这里只显示minio1
[root@minio01 ~]# fdisk /dev/sdb 
命令(输入 m 获取帮助):n 
##创建新的分区、按n键 
分区号 (1-128,默认 1)##回车键 
第一个扇区 (34-2147483614,默认 2048)##回车键 
Last sector, +sectors or +size{K,M,G,T,P} (2048-2147483614,默认 2147483614)##回车键 
已创建分区 1 w
##保存 
[root@minio01 ~]# fdisk /dev/sdc 
命令(输入 m 获取帮助):n 
##创建新的分区、按n键 
分区号 (1-128,默认 1)##回车键 
第一个扇区 (34-2147483614,默认 2048)##回车键 
Last sector, +sectors or +size{K,M,G,T,P} (2048-2147483614,默认 2147483614)##回车键 已创建分区 1 
w
##保存 
[root@minio01 ~]# mkfs.xfs /dev/sdb1 
##分区以xfs格式化 
[root@minio01 ~]# mkfs.xfs /dev/sdc1 
##分区以xfs格式化 
[root@minio01 ~]# mkdir -p /export/data/minio/{data1,data2} ##创建data1,data2目录 [root@minio01 ~]# mount /dev/sdb1 /export/data/minio/data1 ##临时挂载 
[root@minio01 ~]# mount /dev/sdc1 /export/data/minio/data2 ##临时挂载
[root@minio01 ~]# df -Th ##查看挂载情况 
文件系统 类型 容量 已用 可用 已用% 挂载点 
/dev/sdc1 xfs 1.0T 33M 1.0T 1% /export/data/minio/data1 /
dev/sdb1 xfs 1.0T 33M 1.0T 1% /export/data/minio/data2 
[root@minio01 ~]# vi /etc/fstab ##配置永久挂载 
/dev/sdb1 /export/data/minio/data1 xfs defaults 0 0 
/dev/sdc1 /export/data/minio/data2 xfs defaults 0 0
[root@minio01 ~]# mkdir -p /export/logs/minio/
[root@minio01 ~]# mkdir -p /export/servers/minio/{bin,etc}
  • 设置集群启动脚本,依然两台设备一起配置(下面显示minio1)
[root@minio01 ~]# cd /export/servers/minio/bin
[root@minio01 bin]# wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio #下载minio文件
[root@minio01 bin]# vim /export/servers/minio/bin/minio_start.sh
#!/bin/bashminio_server1=192.168.118.44minio_server2=192.168.118.66
export MINIO_ACCESS_KEY=Minio
export MINIO_SECRET_KEY=Test123456
nohup /export/servers/minio/bin/minio server --config-dir /export/servers/minio/etc \\
http://$minio_server1/minio/data1 http://$minio_server1/minio/data2 \\
http://$minio_server2/minio/data1 http://$minio_server2/minio/data2 >/export/logs/minio/minio.log 2>&1 &
##“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败,“–config-dir”指定集群配置文件目录

##修改属主,赋权
[root@minio01 bin]# chmod 755 /export/servers/minio/bin/*
[root@minio01 bin]# useradd appUser
[root@minio01 bin]# chown -R appUser.appUser /export/servers/minio/
[root@minio01 bin]# chown -R appUser.appUser /export/logs/minio/
[root@minio01 bin]# chown -R appUser.appUser /export/data/minio/

##脚本启动
[root@minio01 bin]# /export/servers/minio/bin/minio_start.sh
##出现什么问题可以通过查看/export/logs/minio/minio.log文件来定位。
[root@minio01 bin]# netstat -antp | grep minio
tcp        0      0 192.168.118.44:47000    192.168.118.66:9000     ESTABLISHED 20626/minio         
tcp        0      0 192.168.118.44:46998    192.168.118.66:9000     ESTABLISHED 20626/minio         
tcp6       0      0 :::9000                 :::*                    LISTEN      20626/minio         
tcp6       0      0 :::33619                :::*                    LISTEN      20626/minio         
tcp6       0      0 192.168.118.44:9000     192.168.118.66:43498    ESTABLISHED 20626/minio         
tcp6       0      0 192.168.118.44:9000     192.168.118.66:43496    ESTABLISHED 20626/minio 
  • 浏览器访问192.168.118.44:9000
  • 上传文件测试





命令行工具使用

  • 客户端配置(这里直接在minio1节点配置)
[root@minio01 bin]# pwd
/export/servers/minio/bin
[root@minio01 bin]# wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
[root@minio01 bin]# ln -s /export/servers/minio/bin/* /usr/local/sbin
  • 基本命令
ls 列出文件和文件夹 
mb 创建一个存储桶或一个文件夹 
cat 显示文件和对象内容 123
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT 
share 生成用于共享的URL 
cp 拷贝文件和对象 
mirror 给存储桶和文件夹做镜像 
find 基于参数查找文件 
diff 对二个文件夹或者存储桶比较差异 
rm 删除文件和对象 
events 管理访问策略 
watch 监视文件和对象的事件 
policy 管理访问策略 
config 管咯mc配置文件 
update 检查软件更新 
version 输出版本信息
##添加minio服务
[root@minio01 bin]# mc config host add myminio http://192.168.118.44:9000 Minio Test123456
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `myminio` successfully.

##查询mc host配置
[root@minio01 bin]# mc config host ls
gcs    
  URL       : https://storage.googleapis.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v2
  Path      : dns

local  
  URL       : http://localhost:9000
  AccessKey : 
  SecretKey : 
  API       : 
  Path      : auto

myminio
  URL       : http://192.168.118.44:9000
  AccessKey : Minio
  SecretKey : Test123456
  API       : s3v4
  Path      : auto

play   
  URL       : https://play.min.io
  AccessKey : Q3AM3UQ867SPQQA43P2F
  SecretKey : zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
  API       : S3v4
  Path      : auto

s3     
  URL       : https://s3.amazonaws.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v4
  Path      : dns

##查看主机令牌桶里面的文件--myminio/myminio 第一个myminio是主机 第二个是令牌桶
[root@minio01 bin]# mc ls myminio/whd
[2021-09-29 17:34:19 CST]  45KiB QQ图片20210720181404.jpg

##上传测试文件到令牌桶里
[root@minio01 bin]# touch test
[root@minio01 bin]# mc cp test myminio/whd
test:                    0 B / ? ┃░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
[root@minio01 bin]# mc ls myminio/whd
[2021-09-29 17:34:19 CST]  45KiB QQ图片20210720181404.jpg
[2021-09-29 17:50:18 CST]     0B test

##删除令牌桶中的文件
[root@minio01 bin]# mc rm myminio/whd/test
Removing `myminio/whd/test`.
[root@minio01 bin]# mc ls myminio/whd
[2021-09-29 17:34:19 CST]  45KiB QQ图片20210720181404.jpg

##创建一个令牌桶
[root@minio01 bin]# mc mb myminio/aaa
Bucket created successfully `myminio/aaa`.

##设置令牌桶权限
[root@minio01 bin]# mc policy set public myminio/aaa
Access permission for `myminio/aaa` is set to `public`

以上是关于Minio分布式对象存储部署!的主要内容,如果未能解决你的问题,请参考以下文章

Minio分布式对象存储部署!

Minio分布式对象存储的部署与使用

Minio分布式对象存储的部署与使用

通过K8S部署对象存储MinIO

MinIO 的分布式部署

高性能云原生数据对象存储MinIO实战-上