前言
在现在项目的开发中,文件存储方面的需求变得越来越多了。现在市面上几大云厂商都有提供一些相关存储的产品,开发者可以很方便的去使用。那我们如果有本地化的需求,那怎么办呢?Minio就是一款开源免费的产品,我们可以使用它进行本地化的部署来满足我们的需求。
配置要求
- 一台服务器:Ubuntu 22.04.1 LTS
- Minio安装包
安装Minio
下载Minio
访问Minio官网下载地址,找到对应操作系统安装包进行下载。
# 下载minio安装包
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240826153307.0.0_amd64.deb -O minio.deb
# 安装
sudo dpkg -i minio.deb
创建systemd服务
在执行完安装命令后,会创建一个minio.service服务文件。
文件目录地址:/usr/lib/systemd/system/minio.service。下面是文件内容:
layne@layne-ubuntu-2:/data$ cat /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
Type=notify
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576
# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
从文件内容中看到服务是通过minio-user用户和用户组来执行的。还有两个环境变量MINIO_OPTS和MINIO_VOLUMES分别是配置启动参数和存储路径的。
创建用户
根据上面的启动服务信息,我们需要创建一个minio-user用户及用户组。还需要创建一个文件存储路径,我这里把目录创建在/data/minio路径下。
# 创建用户组
sudo groupadd -r minio-user
# 创建用户并关联用户组
sudo useradd -M -r -g minio-user minio-user
# 创建文件存储路径
sudo mkdir -p /data/minio
# 更改文件存储路径所有者为minio-user
sudo chown minio-user:minio-user /data/minio
创建环境变量
在服务启动信息中,我们还需要创建两个环境变量MINIO_OPTS和MINIO_VOLUMES,另外我们还需要给一个ROOT用户及密码初始化minio控制台登录账号。我们在/etc/default目录下生成一个minio文件,将环境变量配置写入这个minio文件中。
# 进入/etc/default/目录
layne@layne-ubuntu-2:/data/minio$ cd /etc/default/
# 通过touch命令创建一个minio文件
layne@layne-ubuntu-2:/etc/default$ sudo touch minio
# 编辑minio文件
layne@layne-ubuntu-2:/etc/default$ sudo vim minio
# 将下面内容写入到minio文件中
# 配置ROOT用户和密码
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
# 配置存储地址
MINIO_VOLUMES="/data/minio"
# 配置启动参数
# 配置控制台端口9001
MINIO_OPTS="--console-address :9001"
启动Minio
配置信息都配置好后,我们就可以启动minio服务了。通过systemctl start命令来启动minio.service。通过systemctl status来查看服务运行状态。通过返回信息,我们可以看到控制台访问地址和默认登录账号及密码。或者我们可以执行journalctl -f -u minio.service命令来查看运行日志。
# 启动minio服务
layne@layne-ubuntu-2:/etc/default$ sudo systemctl start minio.service
# 查看minio运行状态
layne@layne-ubuntu-2:/etc/default$ sudo systemctl status minio.service
# 以下是运行状态信息
● minio.service - MinIO
Loaded: loaded (/lib/systemd/system/minio.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2024-09-09 20:33:52 CST; 9s ago
Docs: https://docs.min.io
Main PID: 105379 (minio)
Tasks: 10
CPU: 673ms
CGroup: /system.slice/minio.service
└─105379 /usr/local/bin/minio server --console-address :9001 /data/minio
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: Copyright: 2015-2024 MinIO, Inc.
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: Version: RELEASE.2024-08-26T15-33-07Z (go1.22.6 linux/amd64)
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: API: http://192.168.56.102:9000 http://10.0.3.15:9000 http://172.17.0.1:900>
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: WebUI: http://192.168.56.102:9001 http://10.0.3.15:9001 http://172.17.0.1:900>
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: Docs: https://docs.min.io
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: WARN: Detected default credentials 'minioadmin:minioadmin', we recommend that>
9月 09 20:33:53 layne-ubuntu-2 minio[105379]: INFO:
9月 09 20:33:53 layne-ubuntu-2 minio[105379]: You are running an older version of MinIO released 2 days before the latest >
9月 09 20:33:53 layne-ubuntu-2 minio[105379]: Update: Run `mc admin update ALIAS`
访问Minio
通过打印服务运行日志可以看到,minio控制台访问地址为http://192.168.56.102:9001。在浏览器输入地址访问,使用minioadmin账号密码登录就可以正常使用了。
登录页面:
首页:
停止Minio
我们想要停止Minio服务的话,只需要通过 systemctl stop minio.service 命令就可以停止服务了。
# 停止minio服务
layne@layne-ubuntu-2:/etc/default$ sudo systemctl stop minio.service
# 查看minio运行状态
layne@layne-ubuntu-2:/etc/default$ sudo systemctl status minio.service
○ minio.service - MinIO
Loaded: loaded (/lib/systemd/system/minio.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://docs.min.io
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: Docs: https://docs.min.io
9月 09 20:33:52 layne-ubuntu-2 minio[105379]: WARN: Detected default credentials 'minioadmin:minioadmin', we recommend that>
9月 09 20:33:53 layne-ubuntu-2 minio[105379]: INFO:
9月 09 20:33:53 layne-ubuntu-2 minio[105379]: You are running an older version of MinIO released 2 days before the latest >
9月 09 20:33:53 layne-ubuntu-2 minio[105379]: Update: Run `mc admin update ALIAS`
9月 09 20:59:26 layne-ubuntu-2 systemd[1]: Stopping MinIO...
9月 09 20:59:26 layne-ubuntu-2 minio[105379]: INFO: Exiting on signal: TERMINATED
9月 09 20:59:26 layne-ubuntu-2 systemd[1]: minio.service: Deactivated successfully.
9月 09 20:59:26 layne-ubuntu-2 systemd[1]: Stopped MinIO.
9月 09 20:59:26 layne-ubuntu-2 systemd[1]: minio.service: Consumed 2.441s CPU time.
更新systemd服务
我们想要更新Minio服务脚本信息的话,只需要编辑文件/usr/lib/systemd/system/minio.service就好了。编辑完保存后,执行命令systemctl daemon-reload刷新一下,就可以执行启动服务了。
# 编辑minio.service
layne@layne-ubuntu-2:/etc/default$ sudo vim /usr/lib/systemd/system/minio.service
-----以下是minio.service内容
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
Type=notify
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576
# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
#TimeoutSec=infinity
TimeoutSec=0
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
-----以上是minio.service内容
# 刷新一下服务
layne@layne-ubuntu-2:/etc/default$ sudo systemctl daemon-reload
# 启动minio服务
layne@layne-ubuntu-2:/etc/default$ sudo systemctl start minio.service
使用Minio
Minio使用起来很简单,登录Minio控制台,找到对应菜单进行操作就好了,下面是一些简单的操作页面截图。
创建桶Buckets
创建文件
创建目录
后语
总而言之,Minio安装还是很简单的。而且官网上有很详细的安装指导说明,有兴趣的朋友可以去官网多看看,里面很多参数配置值得我们去研究学习。当然,我这里是安装的一个简单的单机版,Minio是支持分布式安装的,这个安装方法大家可以去官网详细了解一下。对于Minio的使用,这篇只是简单说了下控制台的使用。对于开发的朋友,我们更关注的是怎么使用minio的SDK来操作,这个内容就留在下一篇文章来说明吧。
喜欢的朋友可以点个关注,感谢阅读。
标签:09,layne,minio,service,使用,ubuntu,20,安装,Minio From: https://blog.csdn.net/u011344233/article/details/142070165