当前位置: 首页 > news >正文

分布式对象存储系统 Minio 之 Centos 环境安装

在 CentOS 上部署 MinIO 对象存储服务并不复杂。下面我整理了一份详细的部署教程,涵盖了从单机部署到生产环境的一些关键考量。

1. 环境准备

开始前,请确保 CentOS 系统已更新并安装了必要的工具。

sudo yum update -y
sudo yum install -y wget

2. 下载与安装 MinIO

从 MinIO 官网下载最新的二进制文件(适用于 Linux AMD64 架构),并将其放到系统的可执行路径下。

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio # 添加可执行权限
sudo mv minio /usr/local/bin/  # 需要 root 权限移动文件

3. 创建数据目录并设置权限

为 MinIO 创建一个专门的数据存储目录,并建议为其创建一个专用的系统用户和组(如 minio-userminio-group),并将目录的所有权赋予该用户,这有助于增强安全性。

sudo mkdir -p /data/minio  # 创建数据目录
sudo groupadd -r minio-group  # 创建 minio 用户组
sudo useradd -r -g minio-group -s /sbin/nologin minio-user  # 创建 minio 用户,并禁止登录
sudo chown -R minio-user:minio-group /data/minio  # 更改数据目录所有者ls -ld /data/minio # 查看目录权限
sudo chown -R minio-user:minio-group /data/minio # 更改数据目录所有者
sudo chmod -R u+rwx /data/minio #确保用户(owner)权限包含 w(写入)

4. 配置访问密钥(可选但重要)

MinIO 默认使用 minioadmin 作为 root 用户和密码。在生产环境中,务必修改这些默认凭证
你可以通过环境变量来设置新的访问密钥(Access Key)和秘密密钥(Secret Key):

export MINIO_ROOT_USER=your_secure_access_key
export MINIO_ROOT_PASSWORD=your_very_strong_secret_key

5. 启动 MinIO 服务器

可以选择​​直接启动​​或通过 ​​systemd 服务​​管理 MinIO,后者更适合生产环境,能实现开机自启和故障重启。

方式一、直接启动(适合快速测试):​​
# 在命令行中直接指定数据目录启动,控制台端口默认为9001
minio server /data/minio --console-address ":9001"

启动成功后,终端会输出访问地址、RootUser 和 RootPass(即设置的或默认的密钥),以及 Console(Web控制台)地址:

在这里插入图片描述

方式二 创建 Systemd 服务(推荐用于生产环境):​​
  1. 检查 /etc/default/minio 配置文件

(1) 首先确保MinIO的环境变量配置文件存在且设置正确。这个文件用于定义MinIO服务启动时所需的关键参数。

执行命令​​:

cat /etc/default/minio

​​需要确认的内容​​:

  • MINIO_VOLUMES​​:必须设置,且指向一个​​已存在的目录​​(例如 /data/minio)。这是MinIO存储数据的地方。
  • MINIO_ROOT_USER​​ 和 ​​MINIO_ROOT_PASSWORD​​:设置管理员凭据。如果未设置,MinIO会使用默认的 minioadmin/minioadmin,但​​强烈建议修改​​。
  • ​​MINIO_OPTS​​ 或 ​​MINIO_CONSOLE_ADDRESS​​:用于配置控制台端口,例如 --console-address :9001。
    ​​(2) 如果文件不存在或配置不全​​:
sudo tee /etc/default/minio > /dev/null << 'EOF'
# MinIO 存储路径(必须设置)
MINIO_VOLUMES="/data/minio"
# MinIO 根用户和密码
MINIO_ROOT_USER="your_secure_username"
MINIO_ROOT_PASSWORD="your_very_strong_password"
# MinIO 控制台地址和端口
MINIO_CONSOLE_ADDRESS=":9001"
EOF

​​请务必将 your_secure_username 和 your_very_strong_password 替换为你自己的设置。​

  1. 创建服务文件 minio.service
sudo vim /etc/systemd/system/minio.service

写入以下配置(minio.service):

[Unit]
Description=MinIO Server
Documentation=https://docs.min.io
After=network.target[Service]
# 指定运行服务的用户和组
User=minio-user
Group=minio-group
# 加载环境变量文件(新增此行)
EnvironmentFile=/etc/default/minio
# 启动MinIO服务器,使用环境变量文件中的参数
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMESRestart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target
  1. 重新加载 systemd 并启动服务:
# 重新加载 systemd 配置
sudo systemctl daemon-reload
sudo systemctl enable minio  # 设置开机自启
sudo systemctl start minio   # 启动服务
sudo systemctl status minio  # 检查状态
sudo systemctl restart minio # 重新启动服务(若失败时执行) 
  1. 查看详细日志
    如果启动再次失败,查看详细日志是定位问题关键:
journalctl -u minio -xe --no-pager

6. 配置防火墙

如果系统启用了防火墙(如 firewalld),需要开放 MinIO 服务端口(默认 9000)和控制台端口(如 9001)。

sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp  # 服务端口
sudo firewall-cmd --permanent --zone=public --add-port=9001/tcp  # 控制台端口
sudo firewall-cmd --reload

7. 访问与验证

部署完成后,打开浏览器,访问 http://<服务器IP地址>:9001,使用设置的 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 登录 MinIO 控制台。
在这里插入图片描述

8. (可选)安装与配置 MinIO 客户端 mc

  1. mc 是 MinIO 的命令行客户端,便于管理。
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
  1. 配置 mc 连接到你的 MinIO 服务器(别名可自定义,如 myminio):
mc alias set myminio http://localhost:9000 your_secure_access_key your_very_strong_secret_key# 例如配置别名,连接你的 MinIO 服务器
mc alias set myminio http://服务器IP:9000 minioadmin minioadmin

3. 浏览器访问资源

通过浏览器访问 http://<你的MinIO服务器地址>:9000/my-bucket/某个文件名 验证是否成功

http://192.168.0.1:9000/my-bucket/3a36fe1a301d41c4a7c72d6100cb4410_1533815935.png
  1. 使用 mc 命令管理存储桶和对象,例如:
mc ls myminio  # 列出存储桶
mc mb myminio/my-bucket  # 创建存储桶
mc cp local-file.txt myminio/my-bucket/  # 上传文件
mc policy set public myminio/my-bucket 将 my-bucket 设置为公共读权限
  1. 其他设置 Bucket 策略​​:
mc anonymous set download myminio/存储桶名 	#​​设置整个 Bucket 为公共读 (允许匿名下载)
mc policy set download myminio/存储桶名  	# 旧版本命令
mc anonymous set download myminio/存储桶名/public/ #设置特定前缀(目录)为公共读​​
mc anonymous reset myminio/你的存储桶名  	#移除公共访问权限​​
  1. ​​使用 JSON 策略文件(用于复杂设置)​​

对于更精细的权限控制,例如只允许访问某个特定前缀下的对象,可以编写 JSON 策略文件。

  • ​示例策略​​ (允许任何人下载 public/ 目录下的所有对象):
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"AWS": ["*"]},"Action": ["s3:GetObject"],"Resource": ["arn:aws:s3:::存储桶名/public/*"]}]
}

• ​​应用策略​​: 将上述 JSON 保存为 policy.json 后应用

mc policy set-json policy.json myminio/存储桶名

文章转载自:

http://0eKwERva.drywd.cn
http://NquFnfcX.drywd.cn
http://Fg9Ge88u.drywd.cn
http://5YIpfVLV.drywd.cn
http://fsOJYkfO.drywd.cn
http://UQH9Vcou.drywd.cn
http://1G37UYeU.drywd.cn
http://EZ20lDdD.drywd.cn
http://Wu2eJuE5.drywd.cn
http://4Dnu3wqx.drywd.cn
http://zAJiiP0T.drywd.cn
http://B20cJTDk.drywd.cn
http://7Ble94Wo.drywd.cn
http://R7ys4V5g.drywd.cn
http://mD15bD6H.drywd.cn
http://OQB4alHm.drywd.cn
http://2UTo95JO.drywd.cn
http://qSPIfhpB.drywd.cn
http://6k6iyNMS.drywd.cn
http://bsuGnHJU.drywd.cn
http://9jveJEBd.drywd.cn
http://s05wvl9y.drywd.cn
http://FXu0nBzW.drywd.cn
http://pMBP15tX.drywd.cn
http://urnRMw2q.drywd.cn
http://7M0Sa6cJ.drywd.cn
http://SV6ZxXf3.drywd.cn
http://OCj8oqOy.drywd.cn
http://X4MQVTMj.drywd.cn
http://k9b6tNgl.drywd.cn
http://www.dtcms.com/a/366532.html

相关文章:

  • 不只是链接:我用“双向链表”思维做内容推广,效率飙升300%
  • 【Markdown转Word完整教程】从原理到实现
  • Matlab中的转置—— ‘ 和 .‘ 的区别
  • YOLOv8自定义目标检测模型训练与应用指南
  • 揭秘23种设计模式的艺术与技巧之结构型
  • Git常用命令大全:高效开发必备
  • Flowable——流程定义与部署(RepositoryService)
  • 【IO进程 共享内存、信号量集】
  • IBM穿孔卡片:现代计算技术的奠基之作
  • 技术视界 | 跨域机器人通信与智能系统:打破壁垒的开源探索
  • 【Python】pyinstaller:打包工具
  • Mac 使用 softhsm
  • 一文搞懂保险中的Nominee\Beneficiary\Trustee三个角色
  • 无线路由器:从家庭上网到智慧互联的核心设备
  • 文件传输工具rsync|rust开发环境安装|Ascend实验相关命令
  • 51单片机-按键、蜂鸣器、定时器模块及中断
  • Python学习3.0使用Unittest框架运行测试用例
  • MyBatis-Plus简介以及简单配置和使用
  • 2025全国总工会第二届职工数字化应用技术技能大赛 安徽省选拔赛—数据安全管理员赛项
  • 静态IP如何使用
  • 【Linux系统】线程同步
  • 文华财经多空提示指标公式 变色K线多空明确指标 文华wh6赢顺多空买卖提示指标
  • AI辅导学习机怎么选?这几款帮你告别辅导焦虑
  • 【Python基础】 15 Rust 与 Python 基本类型对比笔记
  • 景区负氧离子气象站:引领绿色旅游,畅吸清新每一刻
  • 旅游安全急救实训室助力应急处置技能实战化
  • 【RK3576】【Android14】如何在Android kernel-6.1 的版本中添加一个ko驱动并编译出来?
  • 学习日记-SpringMVC-day49-9.4
  • 弃用MinIO,拥抱全新一代分布式文件系统RustFS
  • 信息化安全性测试中漏洞扫描的定义与核心目的