MinIO 部署安装与使用指南

发布时间:2026/7/31 19:28:10
MinIO 部署安装与使用指南 MinIO 是一款高性能、开源的分布式对象存储系统100% 兼容 Amazon S3 API常用于存储非结构化数据图片、视频、日志文件、备份数据等具备轻量易部署、性能优异、扩展性强的特点。一、部署方式MinIO 支持多种部署模式涵盖开发测试的单机模式到生产环境的分布式集群模式。1. Linux 二进制部署推荐生产使用前置准备支持 x86_64、ARM64 等主流架构的 Linux 系统数据目录需具备读写权限生产环境建议使用独立磁盘防火墙开放9000API 端口和9001Web 控制台端口步骤 1下载二进制文件# 下载 x86_64 版本 wget https://dl.min.io/server/minio/release/linux-amd64/minio # ARM64 架构使用以下地址 # wget https://dl.min.io/client/mc/release/linux-arm64/minio # 赋予执行权限并移动到系统路径 chmod x minio sudo mv minio /usr/local/bin/步骤 2启动服务1单机单盘模式开发测试用仅用于测试无数据冗余磁盘损坏会导致数据丢失。# 设置管理员账号密码生产环境必须修改密码至少8位 export MINIO_ROOT_USERminioadmin export MINIO_ROOT_PASSWORDMinio123456 # 启动服务指定数据目录和控制台端口 minio server /data --console-address :90012单机多盘模式纠删码数据冗余至少 4 块磁盘启用纠删码可容忍最多一半磁盘损坏不丢失数据适合单节点高可靠场景。minio server /data1 /data2 /data3 /data4 --console-address :9001注意禁止在同一块物理磁盘上创建多个子目录模拟多盘否则无法实现磁盘级故障容错失去纠删码意义。3分布式集群模式生产级高可用分布式模式下多节点组成统一存储集群容量与性能可线性扩展基于纠删码实现多节点级别的数据冗余是生产环境的标准部署方案。① 核心前置要求所有节点均需满足节点与磁盘规格节点数量建议 4~16 台总磁盘数必须 ≥4且推荐为 4 的整数倍所有节点挂载数量相同、规格一致的数据盘。单节点磁盘数建议 ≥2数据盘需独立挂载禁止使用系统盘所有节点的磁盘挂载路径完全一致。纠删码容错规则N 块磁盘组成的纠删集最多容忍 N/2 块磁盘或 N/2 个节点同时故障数据不丢失。例如 4 节点 ×4 盘共 16 块盘最多容忍 8 块盘或 8 个节点同时故障。网络要求节点间内网互通防火墙开放9000API / 内部通信和9001Web 控制台端口生产环境建议万兆内网。系统与时间同步所有节点操作系统版本、MinIO 二进制版本必须完全一致。必须配置 NTP 时间同步节点间时间差不得超过 3 秒否则会导致集群数据一致性异常。主机名解析节点间可通过主机名或固定 IP 互相访问建议配置/etc/hosts或内网 DNS 解析。② 集群规划示例以 4 节点标准集群为例规划如下节点序号节点 IP磁盘挂载路径node1192.168.1.101/minio/disk1 ~ /minio/disk4node2192.168.1.102/minio/disk1 ~ /minio/disk4node3192.168.1.103/minio/disk1 ~ /minio/disk4node4192.168.1.104/minio/disk1 ~ /minio/disk4③ 部署步骤所有节点执行相同操作基础环境准备所有节点创建统一的磁盘挂载目录若已挂载磁盘可跳过创建确保路径一致# 创建数据目录对应4块数据盘 mkdir -p /minio/disk{1,2,3,4}配置主机名解析所有节点执行保证节点互通cat /etc/hosts EOF 192.168.1.101 node1 192.168.1.102 node2 192.168.1.103 node3 192.168.1.104 node4 EOF配置 NTP 时间同步以 chrony 为例CentOS/AlmaLinux/ 银河麒麟通用yum install -y chrony systemctl enable --now chronyd chronyc sources统一安装 MinIO 二进制所有节点下载同版本 MinIO保证版本完全一致wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio mv minio /usr/local/bin/临时启动验证所有节点配置完全相同的管理员账号密码执行启动命令# 设置全局管理员账号所有节点必须完全一致 export MINIO_ROOT_USERminioadmin export MINIO_ROOT_PASSWORDMinio123456 # 启动分布式集群 minio server http://node{1...4}/minio/disk{1...4} --console-address :9001命令说明http://node{1...4}/minio/disk{1...4}是 MinIO 的范围扩展语法等价于依次列出 16 个磁盘地址http://node1/minio/disk1到http://node4/minio/disk4。所有节点的服务均启动后集群才会完成初始化并进入可用状态单节点启动时会等待其他节点加入。④ 配置 systemd 集群服务所有节点配置创建系统服务文件/etc/systemd/system/minio.service实现开机自启与进程守护[Unit] DescriptionMinIO Distributed Object Storage Server Afternetwork.target [Service] Userroot Grouproot # 管理员账号密码所有节点必须完全一致 EnvironmentMINIO_ROOT_USERminioadmin EnvironmentMINIO_ROOT_PASSWORDMinio123456 # 分布式启动命令与手动启动参数完全一致 ExecStart/usr/local/bin/minio server http://node{1...4}/minio/disk{1...4} --console-address :9001 Restartalways RestartSec5 LimitNOFILE65536 [Install] WantedBymulti-user.target所有节点执行以下命令启动并设置开机自启systemctl daemon-reload systemctl start minio systemctl enable minio⑤ 验证集群状态在任意节点使用mc客户端连接集群验证集群节点与磁盘状态# 添加集群别名 mc alias set myminio http://192.168.1.101:9000 minioadmin Minio123456 # 查看集群节点、磁盘总数与运行状态 mc admin info myminio正常输出会显示 4 个节点、16 块磁盘状态均为online。⑥ 集群扩缩容说明扩容规则MinIO 集群以「纠删集」为单位扩容不能单独增加单块磁盘或单个节点必须新增与原有纠删集磁盘总数相同的节点 磁盘。例如原集群 4 节点 ×4 盘 16 盘扩容需新增 4 节点 ×4 盘组成新的纠删集。扩容操作在原有启动命令后追加新的纠删集地址即可示例bashminio server http://node{1...4}/minio/disk{1...4} http://node{5...8}/minio/disk{1...4} --console-address :9001缩容MinIO 不支持在线缩容如需缩容需先迁移数据再重建集群。⑦ 分布式集群最佳实践所有节点硬件配置、磁盘规格、数量保持一致避免出现性能短板。数据盘使用独立挂载点不要使用系统盘禁止在一个挂载点下创建多个子目录模拟多盘。生产环境内网部署API 端口不对外网暴露控制台通过内网或 VPN 访问。版本升级采用滚动升级逐个节点重启升级保证集群整体可用。定期检查磁盘健康状态避免多块磁盘同时故障超出纠删码容错范围。步骤 3单机模式 systemd 开机自启配置仅适用于上述单机单盘、单机多盘模式分布式集群的 systemd 配置参考上文集群小节。创建系统服务文件/etc/systemd/system/minio.service[Unit] DescriptionMinIO Object Storage Server Afternetwork.target [Service] Userroot Grouproot EnvironmentMINIO_ROOT_USERminioadmin EnvironmentMINIO_ROOT_PASSWORDMinio123456 ExecStart/usr/local/bin/minio server /data --console-address :9001 Restartalways RestartSec5 [Install] WantedBymulti-user.target执行以下命令启用并启动服务sudo systemctl daemon-reload sudo systemctl start minio sudo systemctl enable minio2. Docker 部署快速测试用前置条件已安装 Docker 环境单机持久化部署# 创建数据目录 mkdir -p /opt/minio/data # 启动容器 docker run -d \ -p 9000:9000 \ -p 9001:9001 \ --name minio \ -e MINIO_ROOT_USERminioadmin \ -e MINIO_ROOT_PASSWORDMinio123456 \ -v /opt/minio/data:/data \ --restartalways \ quay.io/minio/minio server /data --console-address :9001Docker Compose 部署创建docker-compose.ymlversion: 3 services: minio: image: quay.io/minio/minio container_name: minio ports: - 9000:9000 - 9001:9001 environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: Minio123456 volumes: - ./data:/data restart: always command: server /data --console-address :9001启动命令docker-compose up -d二、MinIO 客户端 mc 使用mc是 MinIO 官方命令行客户端操作逻辑对标 Linux 原生命令可管理 MinIO 及所有兼容 S3 协议的对象存储。1. 安装 mc 客户端# 下载 x86_64 版本 wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod x mc sudo mv mc /usr/local/bin/ # 验证安装 mc --version2. 配置服务别名添加 MinIO 服务连接配置后续通过别名快速访问# 格式mc alias set 别名 API地址 用户名 密码 mc alias set myminio http://127.0.0.1:9000 minioadmin Minio123456 # 查看已配置的别名 mc alias list3. 常用操作命令存储桶Bucket管理# 创建存储桶 mc mb myminio/test-bucket # 列出所有存储桶 mc ls myminio # 删除空存储桶 mc rb myminio/test-bucket # 强制删除非空存储桶慎用 mc rb --force myminio/test-bucket文件对象管理# 上传单个文件 mc cp local-file.txt myminio/test-bucket/ # 上传整个目录递归 mc cp --recursive /local/dir/ myminio/test-bucket/ # 下载文件到本地 mc cp myminio/test-bucket/local-file.txt ./ # 列出桶内文件 mc ls myminio/test-bucket # 递归列出所有文件 mc ls -r myminio/test-bucket # 删除文件 mc rm myminio/test-bucket/local-file.txt # 查看文件内容 mc cat myminio/test-bucket/local-file.txt权限与访问管理# 设置存储桶为公开访问匿名可读 mc anonymous set public myminio/test-bucket # 设置为私有默认需鉴权访问 mc anonymous set private myminio/test-bucket # 查看当前桶权限策略 mc anonymous get myminio/test-bucket运维管理命令# 查看 MinIO 服务状态 mc admin info myminio # 查看存储桶容量使用情况 mc du myminio/test-bucket # 查看服务健康状态 mc admin health myminio三、Web 控制台使用访问地址浏览器打开http://服务器IP:9001登录使用配置的MINIO_ROOT_USER和MINIO_ROOT_PASSWORD登录核心功能可视化创建、管理存储桶上传、下载、预览文件用户、权限策略管理监控服务状态、存储用量配置生命周期、复制、通知等高级功能四、常见注意事项生产环境建议使用分布式纠删码模式至少 4 节点 16 块盘保障数据可靠性和服务高可用。账号安全Root 账号密码需满足复杂度要求日常运维建议创建子账号并分配最小权限。网络配置API 端口 9000 用于业务对接控制台端口 9001 建议仅内网开放。时间同步分布式集群必须配置 NTP 时间同步否则会导致数据一致性异常。数据备份纠删码可应对磁盘故障但误删除、逻辑错误仍需通过版本控制或异地备份防护。