Windows安装Minio服务器端

  • Windows安装Minio服务器端
  • 启动minio server
  • 将minio封装成系统服务
  • 默认账号密码
  • 常用参数
  • 常见问题
  • Minio为客户提供NFS
  • 删除的文件没有释放空间怎么解决
  • 调整minio文件分享时长
  • 设置“桶”为公开,如图设置即可
  • 使用minio命令行客户端
  • 配置mc
  • mc命令行常用方法
  • 创建bucket
  • 查看bucket
  • 上传文件到bucket中
  • 删除bucket中的文件
  • 删除bucket


Windows安装Minio服务器端

参考:https://min.io/docs/minio/windows/index.html

# 安装 MinIO 服务器端
Invoke-WebRequest -Uri "https://dl.min.io/server/minio/release/windows-amd64/minio.exe" -OutFile "C:\minio.exe"



启动minio server

# 启动minio服务端
## server 启动服务端
## C:\data 指定的 Minio 数据存储目录,会在该目录生产minio.sys目录
## 默认启动127.0.01:9000
minio.exe server C:\data

## 默认的配置目录是${HOME}/.minio,可以通过 --config-dir 命令自定义配置目录
## --console-address ":9001" 启动本地的9001端口,不能指定9000端口
minio server --console-address ":9001" C:\data



将minio封装成系统服务

<service>
  <!-- id:安装windows服务后的服务ID,必须是唯一的。 -->
  <id>minio</id>
  <!-- name:服务名称,也必须是唯一的。一般和id一致即可。 -->
  <name>minio_server</name>
  <!-- description:服务说明,可以使用中文,可做备注使用。 -->
  <description>minio Service</description>
  <!-- env 是变量 -->
  <env name="MINIO_ROOT_USER" value="admin" />
  <env name="MINIO_ROOT_PASSWORD" value="omaidb12." />
  <!-- executable:执行的命令,比如启动springboot应用的命令java。 -->
  <executable>"C:\opt\minio\minio.exe"</executable>
  <!-- arguments:命令执行参数,比如 包路径,类路径等。 -->
  <arguments> server --console-address ":9001" C:\data</arguments>
  <!-- 日志模式  reset|roll -->
  <log mode="roll"></log>
</service>



默认账号密码
# 默认账号密码
RootUser: minioadmin
RootPass: minioadmin

# 设置用户名和密码 变量
# 设置用户名
setx MINIO_ROOT_USER admin
# 设置密码
setx MINIO_ROOT_PASSWORD password



常用参数
# 将以下内容写入到/det/defalut/minio文件中:
# MINIO_VOLUMES变量更改说名:本示例使用3台服务器,每台服务器分2个磁盘供minio服务使用,所有这里要把所有节点使用的所有数据目录都写上
MINIO_VOLUMES="http://192.168.1.100:9000/MinIO/data1 http://192.168.1.100:9000/MinIO/data2 http://192.168.1.101:9000/MinIO/data1 http://192.168.1.101:9000/MinIO/data2 http://192.168.1.102:9000/MinIO/data1 http://192.168.1.102:9000/MinIO/data2"
MINIO_OPTS="--console-address :9001"    #minio服务监听端口号
MINIO_ROOT_USER=minioadmin     #minio网页端的登录账号
MINIO_ROOT_PASSWORD=minioadmin      #minio网页端的登录密码
MINIO_PROMETHEUS_AUTH_TYPE="public"
# MINIO_PROMETHEUS_URL="http://192.168.10.148:9090"     #配置prometheus监控的服务器地址
# MINIO_SERVER_URL="http://192.168.192.163:9000"       #负载均衡地址,没有负载均衡就不要放开注释



常见问题



Minio为客户提供NFS

使用 Minio 作为后端存储,并通过 NFS 为客户端提供访问,那么你需要一个中间层来将 Minio 的对象存储转换为 NFS 共享.

<font style="color:rgb(34, 34, 34);">中间层</font>安装<font style="color:rgb(34, 34, 34);">s3fs</font>,挂载minio对象存储,然后共享为nfs服务

# Cneots7安装s3fs
yum install s3fs-fuse -y

# 创建挂载点
mkdir /mnt/minio
# 挂载minio对象存储
s3fs mybucket /mnt/minio -o passwd_file=/etc/passwd-s3fs -o url=http://<MINIO_SERVER_IP>:9000 -o use_path_request_style(使用路径请求样式)



删除的文件没有释放空间怎么解决

参考:https://github.com/minio/minio/issues/19484

问题:

用mc工具删除大目录文件,但空间没有立即释放导致存储空间爆满

删除命令:mc rm -r --dangerous --force

分析:

排查删除的文件服务器到了.minio.sys/tmp/.trash/垃圾目录,要过比较久的时间才释放,如何取消清理文件的服务器或调整服务器释放时间

解决办法:

下次 GC 时会将其删除。一般默认等5分钟



调整minio文件分享时长

https://cloud.tencent.com/developer/article/2206592

MinIO官方规定,分享链接最长时间只能是7天。
其实所谓的永久分享链接,大家想一下,永久分享公开没什么两样



设置“桶”为公开,如图设置即可

在MinIO中引入了“桶”的概念,默认创建桶的权限是private私有的,也就是桶内的文件是不允许外界直接访问的, 所谓设置永久分享链接就是将创建的桶的权限设置公开public即可,就可以实现通过:http://地址/桶名称/文件名直接访问,比如访问的是图片:https://minio.itze.cn/image/logo.png 地址放到浏览器即可直接访问

Windows安装Minio服务器端_命令行



使用minio命令行客户端

# 安装minio命令行客户端
choco install minio-client -y



配置mc

非交互式添加配置
9000端口是minio的API的默认端口。

# 添加配置
mc config host add 配置名 http://127.0.0.1:9000 用户名 密码

交互式添加配置

# 添加配置
## 回车输入Access Key、Secret Key
mc config host add minio-server http://minio.lvzhenjiang.com

官方推荐配置方法

mc alias set myminio https://minioserver.example.net ACCESS_KEY SECRET_KEY

查看配置

# 查看配置
mc config host list

Windows安装Minio服务器端_windows_02

删除配置

# 删除配置
mc config host remove minio-server



mc命令行常用方法

参数

解释

ls

列出文件和文件夹。

mb

创建一个存储桶或一个文件夹。

cat

显示文件和对象内容。

pipe

将一个STDIN重定向到一个对象或者文件或者STDOUT。

share

生成用于共享的URL。

cp

拷贝文件和对象。

mirror

给存储桶和文件夹做镜像。

find

基于参数查找文件。

diff

对两个文件夹或者存储桶比较差异。

rm

删除文件和对象。

events

管理对象通知。

watch

监视文件和对象的事件。

policy

管理访问策略。

config

管理mc配置文件。

update

检查软件更新。

version

输出版本信息。


创建bucket
# mb 是创建 bucket 子命令,minio-server/lvzhenjiang 是在 minio-server 下创建一个叫做 lvzhenjiang 的 bucket
mc mb minio-server/lvzhenjiang



查看bucket
# 查看bucket
mc ls minio-server



上传文件到bucket中
# 上传一个文件到bucket中
mc cp /etc/hosts minio-server/lvzhenjiang

# 上传一个目录到bucket中
mc cp /etc minio-server/lvzhenjiang --recursive



删除bucket中的文件
# 删除文件
mc rm minio-server/lvzhenjiang/hosts

# 删除目录
mc rm minio-server/lvzhenjiang/etc --recursive --force



删除bucket
# 删除 没有文件的bucket
mc rb minio-server/lvzhenjiang

# 删除 有文件的bucket
mc rb minio-server/lvzhenjiang --force