跳至主要內容

minio

wangdx大约 4 分钟

参考网址

MinIO 用户访问策略(User Access Policy)open in new window

java 客户端调用 minio 服务open in new window

Java 之 MinIO 存储桶和对象 API 使用open in new window

深入比较 MinIO Java SDK 中的 getObject 和 statObject 方法open in new window

java 客户端调用 minio 服务open in new window

简介

提示

  • MinIO 是一种高性能、S3 兼容的对象存储。
  • 它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。
  • 不需要购买任何专有硬件,就可以在云上和普通硬件上拥有分布式对象存储。
  • MinIO 拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。

中文官网open in new window

二进制包搭建

一文读懂 OSS、NAS、EBS 有什么区别?open in new window

提示

  • 考虑前端图片增加和后续 java 开发需要文件上传和下载
  • 考虑家里图片备份和资料预览构建此服务
  • 安装方式 docker,rmp,deb,二进制包;这里先介绍选择二进制包

1.下载

#下载执行文件
wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
#修改minio为可执行文件
chmod +x minio
#全局目录都可以用
sudo mv minio /usr/local/bin/

minio -v

2.启动 MinIO 服务器

#创建文件夹启动minio实例
mkdir -p /mnt/data/minio
#minio server 命令启动MinIO服务器. 这个路径参数 ~/minio 确定服务器操作的文件夹。
minio server --console-address :8901 --address :7901 /mnt/data/minio
minio server --secure --console-address :8901 --address :7901 /mnt/data/minio

#后台启动minio这样Ctrl+C就不会关闭了,运行日志我选择打印到usr/local/minio/minio.log中
mkdir -p /mnt/log/minio
nohup minio server --address :7901 --console-address :8901  /mnt/data/minio > /mnt/log/minio/minio.log 2>&1 &

#关闭minio

ps -ef|grep minio
kill -9 XXX

启动后输入信息
Formatting 1st pool, 1 set(s), 1 drives per set.
WARNING: Host local has more than 0 drives of set. A host failure will result in d                          ata becoming unavailable.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that y                          ou change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environmen                          t variables
MinIO Object Storage Server
Copyright: 2015-2024 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2024-01-18T22-51-28Z (go1.21.6 linux/amd64)

Status:         1 Online, 0 Offline.
S3-API: http://192.168.16.8:7901  http://172.17.0.1:7901  http://172.18.0.1:7901                            http://172.19.0.1:7901  http://127.0.0.1:7901
RootUser: minioadmin
RootPass: minioadmin

Console: http://192.168.16.8:8901 http://172.17.0.1:8901 http://172.18.0.1:8901 ht                          tp://172.19.0.1:8901 http://127.0.0.1:8901
RootUser: minioadmin
RootPass: minioadmin

Command-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart
   $ mc alias set 'myminio' 'http://192.168.16.8:7901' 'minioadmin' 'minioadmin'

Documentation: https://min.io/docs/minio/linux/index.html
Warning: The standard parity is set to 0. This can lead to data loss.

 You are running an older version of MinIO released 2 weeks before the latest rele                          ase
 Update: Run `mc admin update`

3.通过浏览器访问你的 MinIO server

在浏览器中打开 http://127.0.0.1:7901 并访问 MinIO 控制台. 你也可以输入服务器命令输出中指定的任何网络地址。 例如,如果命令行显示 minio 控制台: http://192.0.2.10:8901 http://127.0.0.1:7901 上面两个链接都是可以连接到 MinIO 控制台的地址。

MinIO 使用监听的端口为 7901 端口,这个端口使用 API 与 MinIO 服务器进行通信和进行 SDK 调用,通过浏览器访问 7901 端口会自动跳转至 MinIO 控制台。

登录 MinIO console 控制台可以使用默认的 Root 用户名 和 Root 密码 登录后,就可以显示相关控制台的详细信息了。 默认的 MinIO root 用户名和密码是: minioadmin | minioadmin.

4.编写 systemd 的 service 并配置开机启动

#1.配置文件
mkdir -p /mnt/conf/minio/
vim /mnt/conf/minio/minio.conf

MINIO_VOLUMES="/mnt/data/minio"
MINIO_OPTS="--console-address 0.0.0.0:8901 --address 0.0.0.0:7901"
MINIO_ROOT_PASSWORD="admin"
MINIO_ROOT_USER="admin123"
MINIO_BROWSER_REDIRECT_URL=http://minio-server:7901/
MINIO_SERVER_URL=http://minio-server:7901/

#1.启动脚本
vim /etc/systemd/system/minio.service

[Unit]
Description=MINIO
Document=https://docs.min.io
Wants=network-online.target
After=network-online.target
#minio文件具体位置
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
# User and group 用户 组
User=root
Group=root
#创建的配置文件 minio.conf
EnvironmentFile=/mnt/conf/minio/minio.conf
ExecStartPre=/bin/bash -c "[ -n "${MINIO_VOLUMES}" ] || echo "Variable MINIO_VOLUMES not set in /mnt/conf/minio/minio.conf""
ExecStart=minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SekndSIGKILL=no
StandardOutput=file:/www/logs/minio/minio.log
StandardError=file:/www/logs/minio/minio_error.log


[Install]
WantedBy=multi-user.target

#更新systemd配置缓存
systemctl daemon-reload

#将服务设置为每次开机启动
systemctl enable minio.service
#重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载
systemctl daemon-reload
#启动服务
systemctl start minio
#停止服务
systemctl stop minio
#重启服务
systemctl restrat minio
#查看服务状态
systemctl status minio.service

配置 minio

在这一部分,我们将配置 MinIO 以便于使用,并保护其数据安全

配置 SSL 证书使用 HTTPS 访问

为了加密传输数据,我们可以配置 MinIO 使用 HTTPS 协议。

自定义签名

首先,我们需要获取一个 SSL 证书。您可以使用免费的 Let's Encrypt 证书,或者使用自签名证书。在这里,我们使用自签名证书作为示例。执行以下命令:

#创建证书文件
mkdir -p /mnt/ssl/
#证书生成
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /mnt/ssl/minio.key -out /mnt/ssl/minio.crt
#配置minio证书
ln -s /mnt/ssl/minio.key ~/.minio/certs/private.key
ln -s /mnt/ssl/minio.crt ~/.minio/certs/public.crt

纠删码

注意

至少 4 个硬盘才有效

#需要创建磁盘并挂载,配置用户权限
mkdir -p /mnt/data/minio/data/da{1..4}
useradd -r -s /sbin/nologin minio
chown -R minio. /mnt/data/minio/data/da*

mc

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x ./mc
[root@centos7 ~]# ls
abc  anaconda-ks.cfg  manpages-zh-1.5.2  mc  minio
[root@centos7 ~]# ./mc --help
NAME:
  mc - MinIO Client for cloud storage and filesystems.
  ....

 [root@centos7 /]# mc --help
-bash: mc: 未找到命令

二、mc 命令使用

上次编辑于: