根据搜索结果,我来为你详细介绍在 Windows 环境下配置 MinIO 多磁盘/多目录的方法。
方案一:单节点多磁盘/多目录(适合本地测试或小型部署)
这是最简单的消除告警的方式,只需在同一台机器上提供多个数据目录即可。MinIO 会自动在这些目录之间启用纠删码(Erasure Coding),实现数据冗余保护。
步骤
-
创建多个数据目录(至少 4 个,MinIO 纠删码的最小要求)
mkdir D:\zbintel_business_ai\minio\minio_data1
mkdir D:\zbintel_business_ai\minio\minio_data2
mkdir D:\zbintel_business_ai\minio\minio_data3
mkdir D:\zbintel_business_ai\minio\minio_data4 -
使用多目录启动 MinIO
在 Windows cmd 中,大括号展开语法 {1...4} 可能不被支持,建议直接列出所有路径:
set MINIO_ROOT_USER=minio && set MINIO_ROOT_PASSWORD=minio@123 && minio.exe server D:\zbintel_business_ai\minio\minio_data1 D:\zbintel_business_ai\minio\minio_data2 D:\zbintel_business_ai\minio\minio_data3 D:\zbintel_business_ai\minio\minio_data4 --console-address ":9001"
如果你使用的是 PowerShell,则可以使用大括号展开语法:
$env:MINIO_ROOT_USER="minio"
$env:MINIO_ROOT_PASSWORD="minio@123"
.\minio.exe server D:\zbintel_business_ai\minio\minio_data{1...4} --console-address ":9001"
效果
启动后,MinIO 会自动将 4 个目录组成一个纠删码集合(Erasure Set),数据会被分片并分布存储在这些目录中。即使其中 1-2 个目录所在的磁盘损坏,数据仍然可以恢复。
方案二:分布式多节点部署(适合生产环境)
如果你有多个服务器(或虚拟机),可以部署真正的分布式 MinIO 集群,实现节点级别的高可用。
示例:4 节点集群
假设你有 4 台机器,每台机器上有一个数据目录:
| 节点 | IP 地址 | 数据目录 |
|---|---|---|
| minio1 | 192.168.1.11 | D:\minio\data |
| minio2 | 192.168.1.12 | D:\minio\data |
| minio3 | 192.168.1.13 | D:\minio\data |
| minio4 | 192.168.1.14 | D:\minio\data |
在每台机器上执行相同的启动命令:
set MINIO_ROOT_USER=minio && set MINIO_ROOT_PASSWORD=minio@123 && minio.exe server http://192.168.1.11/D:/minio/data http://192.168.1.12/D:/minio/data http://192.168.1.13/D:/minio/data http://192.168.1.14/D:/minio/data --console-address ":9001"
注意:所有节点使用完全相同的命令启动,MinIO 会自动协调集群。
⚠️ 重要注意事项
- 目录必须位于独立的物理磁盘 :如果多个目录都在同一块物理硬盘的不同分区上,磁盘故障时所有目录都会同时失效,纠删码就失去了意义。理想情况下,每个目录应挂载在不同的物理磁盘上。- 所有磁盘类型应一致 :不要混用 SSD 和 HDD,否则性能会受最慢的磁盘拖累。- 磁盘大小应一致 :MinIO 会以池中最小的磁盘容量为准,大容量磁盘的多余空间会被浪费。- 目录必须为空:启动时 MinIO 会格式化这些目录,已有数据的目录会导致启动失败。
- 至少需要 4 个驱动器:这是纠删码的最低要求。4 个驱动器可容忍 2 个故障,存储效率为 50%。
验证是否生效
启动成功后,观察输出日志。如果配置正确,不会再出现 WARNING: Host local has more than 0 drives of set 这个告警,取而代之你会看到类似这样的信息:
Status: 4 Online, 0 Offline.
Erasure code configuration: EC:2 (can tolerate 2 drive failures)
这表明纠删码已正常启用,你的数据已经有了冗余保护。