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

分布式对象存储系统 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://www.xdnf.cn/news/19899.html

相关文章:

  • SQLynx 3.7 发布:数据库管理工具的性能与交互双重进化
  • Java 方法:从定义调用到重载,入门到面试全攻略
  • 前端路由切换不再白屏:React/Vue 实战优化全攻略(含可运行 Demo)
  • 基于html+css+js+jquery实现轮播图(自动轮播,手动选择,翻页)
  • #T1359. 围成面积
  • 华清远见25072班I/O学习day5
  • 嵌入式硬件 - 51单片机3
  • NotePad++下载安装与设置
  • 使用a标签跳转之后,会刷新一次,这个a标签添加的样式就会消失
  • 搞懂IFNULL 和 NULLIF
  • 【C++详解】异常概念、抛出捕获与处理机制全解析
  • 一文读懂数据分类分级:企业安全治理的基石
  • 深入理解Linux进程信号机制
  • 残差神经网络的案例
  • 【面试题】LangChain与LlamaIndex核心概念详解
  • 聚焦GISBox矢量服务:数据管理、数据库连接与框架预览全攻略
  • 分布式电源接入电网进行潮流计算
  • Linux笔记---UDP套接字实战:简易聊天室
  • 服务器不支持node.js16以上版本安装?用Docker轻松部署Node.js 20+环境运行Strapi项目
  • 新规则,新游戏:AI时代下的战略重构与商业实践
  • 安全领域必须关注每年发布一次“最危险的25种软件弱点”清单 —— CWE Top 25(内附2024 CWE Top 25清单详情)
  • Boost搜索引擎 数据清洗与去标签(1)
  • 【OpenHarmony文件管理子系统】文件访问接口mod_fs解析
  • ECMAScript(2)核心语法课件(Node.js/React 环境)
  • uniapp的上拉加载H5和小程序
  • PDF.AI-与你的PDF文档对话
  • C++虚函数虚析构函数纯虚函数的使用说明和理解
  • redisson延迟队列报错Sync methods can‘t be invoked from async_rx_reactive listeners
  • 快速排序算法详解
  • 【mysql】SQL自连接实战:查询温度升高的日期