MinIO 是一个**高性能、开源的对象存储系统**,主要用于存储非结构化数据(如图片、视频、文档、备份等),与 Amazon S3 完全兼容。它被广泛用于云原生应用、大数据分析、AI 模型存储、容器平台(如 Kubernetes)等场景。
MinIO 支持多种部署模式,其中:
单节点单磁盘(Single-Node Single-Drive) 模式适用于开发测试、小规模应用或资源受限的场景。它的部署简单,不依赖集群、分布式架构或复杂的底层存储系统。
相比之下:
本文介绍的是 单节点多磁盘(Single-Node Multi-Drive, SNMD) 模式,适用于需要基本容错能力和磁盘级可靠性的生产场景。SNMD 部署利用 MinIO 的 纠删码(Erasure Coding) 技术,在单节点的前提下,实现了对单盘故障的自动恢复。
SNMD 模式为你提供了较好的数据安全性,但其性能与扩展能力受限于单节点资源。因此:
MinIO 官方建议:在生产环境中使用 “多节点多磁盘(Distributed)” 部署模式,以获得企业级的性能、可用性和可扩展性。
️ 下面是 MinIO 单节点多磁盘部署的详细安装步骤。该模式适合希望简化部署的用户,同时又希望具备基础的容错和高可用能力。
官网地址:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-multi-drive.html
说明:这里只是演示安装步骤,如果需要可靠环境,磁盘数量至少为6块。
操作系统:建议使用 Linux Ubuntu 24.04
硬件:2C 16G 40G*2
format_and_mount.sh
#!/bin/bash
set -e
# 检查参数
if [ $# -ne 2 ]; then
echo "用法: $0 <磁盘设备名> <挂载点目录>"
echo "示例: $0 /dev/vdb /mnt/data1"
exit 1
fi
DISK_DEVICE="/dev/$1"
MOUNT_POINT=$2
# 检查磁盘是否存在
if [ ! -b "$DISK_DEVICE" ]; then
echo "错误:设备 $DISK_DEVICE 不存在。"
exit 2
fi
# 创建挂载目录
echo "创建挂载目录 $MOUNT_POINT..."
mkdir -p "$MOUNT_POINT"
# 格式化磁盘为XFS
echo "格式化 $DISK_DEVICE 为 XFS 文件系统..."
mkfs.xfs -f "$DISK_DEVICE"
# 获取UUID
UUID=$(blkid -s UUID -o value "$DISK_DEVICE")
if [ -z "$UUID" ]; then
echo "获取 UUID 失败,退出。"
exit 3
fi
# 挂载磁盘
echo "挂载 $DISK_DEVICE 到 $MOUNT_POINT..."
mount "$DISK_DEVICE" "$MOUNT_POINT"
# 备份 fstab 并写入自动挂载配置
echo "备份 /etc/fstab 为 /etc/fstab.bak..."
cp /etc/fstab /etc/fstab.bak
echo "写入开机自动挂载配置..."
grep -q "$UUID" /etc/fstab || echo "UUID=$UUID $MOUNT_POINT xfs defaults 0 0" >> /etc/fstab
echo "挂载完成,验证挂载信息:"
df -h | gr