minio
大约 4 分钟
参考网址
MinIO 用户访问策略(User Access Policy)
深入比较 MinIO Java SDK 中的 getObject 和 statObject 方法
简介
提示
- MinIO 是一种高性能、S3 兼容的对象存储。
- 它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。
- 不需要购买任何专有硬件,就可以在云上和普通硬件上拥有分布式对象存储。
- MinIO 拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。
二进制包搭建
提示
- 考虑前端图片增加和后续 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 命令使用