安装环境说明
官方文档:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html 点击跳转
软件包 | 版本 |
---|---|
操作系统 | Centos 7.9 |
Minio | minio-20230527055619.0.0.x86_64.rpm |
客户端 | Edge浏览器 |
下载minio
安装有三种方式,本文采用了二进制安装方式(下载后只有一个minio文件),原因:提供以下三种方式:但是centos7本身没有dnf命令,需要yum进行安装,故没采用。以下是官方提供的安装命令(只能用于调试,不支持开机自启动):
二进制方式:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"
RPM方式
dnf install https://dl.min.io/server/minio/release/linux-amd64/minio-20230527055619.0.0.x86_64.rpm
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
DEB方式
wget https://dl.min.io/server/minio/release/linux-amd64/minio_20230527055619.0.0_amd64.deb
dpkg -i minio_20230527055619.0.0_amd64.deb
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
本文采用第一种,截图如下。
找本地最大的一块磁盘(目录),作为本地对象存储的存储桶。
命令行启动和访问(调试用)
采用官方的安装命令,启动进行验证调试。此方式不能开机自启动,也不支持服务运行状态查看,不推荐项目直接使用。
项目使用的话,可直接忽略本小节内容,进行开机自启动配置。
创建存储管理用户
useradd minio
切换为minio用户,进行下面操作:su - minio
创建存储文件夹(对象存储桶位置):mkdir slylData
重新切换为root,进行minio操作。
./minio===这里是相对路径,可以改为绝对路径 /home/minio/slylData==存储文件的路径,此文件下会包含后期全部Buckets --console-address==设置web访问端口,自定义。
#! /bin/bash
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=minio@2023
/usr/local/bin/minio server /slylData/minio --console-address ":9001"
浏览器输入:截图红框地址,填写用户名和密码(上面脚本对应的值),登录即可进行简单的体验了。命令行不能关闭,否则服务中断。
正式部署模式:开机自启动配置
- 第一步:进入minio下载后位置,执行:
mv minio /usr/local/bin/
- 创建文件:
vi /etc/systemd/system/minio.service
将配置文件按照以下内容进行配置。
注意,一定要删除配置文件中的中文注释,否则启动失败!!!
注意,一定要删除配置文件中的中文注释,否则启动失败!!!
注意,一定要删除配置文件中的中文注释,否则启动失败!!!
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local
User=minio #这是创建的Linux用户
Group=minio #这是创建的Linux用户所在组
ProtectProc=invisible #后台模式运行
EnvironmentFile=-/etc/default/minio #minio配置文件目录,注意前面的-
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
- 创建配置文件
vi /etc/default/minio
前提操作:之前已完成则忽略,直接进入配置文件环节。
创建用户:useradd minio
路径权限:chown -R minio:minio /home/minio/slylData #你自己的路径
注意,一定要删除配置文件中的中文注释,否则启动失败!!!
注意,一定要删除配置文件中的中文注释,否则启动失败!!!
注意,一定要删除配置文件中的中文注释,否则启动失败!!!
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment
MINIO_ROOT_USER=minio #这里配置超级管理员用户
MINIO_ROOT_PASSWORD=minio@2023 #这里配置超管用户密码
# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.
MINIO_VOLUMES="/home/minio/slylData" #这里配置上文创建的存储目录
MINIO_OPTS="--console-address :9001 --address :9000" #这里配置端口
# MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server
# MinIO assumes your network control plane can correctly resolve this hostname to the local machine
MINIO_SERVER_URL="http://127.0.0.1:9000" #这里配置web访问
- 第四步:启动:systemctl start minio.service
systemctl stop minio 关闭服务
systemctl start minio 开启服务
systemctl status minio 查看状态
systemctl disable minio.service 关闭MinIO每次开机启动
systemctl enable minio.service 开启MinIO每次开机启动
- 可以直接用root用户启动,也可以切换为minio用户启动(但是启动需要root密码)
第五步:设置开机启动。systemctl enable minio
浏览器访问验证。
创建minio项目对应用户及授权
配置Minio项目用户,并授权,流程:创建用户—>创建组—>Buckets授权。通过浏览器配置,首先使用minio超级管理员用户(配置文件中的用户)登录,进行以下操作。
注意:默认access policy是private,若应用程序无法直接访问,可以修改为public或者custom.
获取连接Access Key
创建成功后,退出当前用户(超管),使用新创建的用户登录。
可以下载配置文件,并把配置写入5G配置文件中。以下是下载的配置文件,发给研发人员进行配置。
例如:
{"url":"http://127.0.0.1:9000","accessKey":"XXujiLrRE98dE29jVYDev","secretKey":"gDGLatE4rXT1mNtnehl4DlwQfmk1YeqAq7IXnuZ4","api":"s3v4","path":"auto"}
启动错误解决
这个错误原因可能是:上述2个配置文件的中文没删除,导致的。这个可能性最大。
原因2:配置文件没有加载到环境变量,可以通过一下方式验证
[minio@localhost ~]$ echo ${MINIO_VOLUMES}
没生效的话,这里没有输出值
[minio@localhost ~]$ source /etc/default/minio
[minio@localhost ~]$ echo ${MINIO_VOLUMES}
/slylData
原因3:selinux 为设置为disable。
原因4:文件路径权限不足,即存储路径对应的权限:chown -R minio:minio
这个R不要省了