10分钟搞定 MinIO 多节点多磁盘部署!打造稳定高可用对象存储【三】

🚀 开篇导读:构建企业级高可用对象存储的必备指南

在分布式系统日益普及的今天,如何搭建一套高性能、高可用且云原生友好的对象存储系统,成为许多企业和技术团队面临的重要课题。MinIO 的多节点多磁盘部署模式(MNMD:Multi-Node Multi-Drive),正是为此而生。

本教程手把手教你如何在多台服务器上构建 MinIO 分布式集群,从底层磁盘挂载、系统服务配置,到最终集群测试验证,每一步都覆盖详尽,实战性强。

你将掌握以下关键能力:

  • ✅ 部署一套具备纠删码冗余保护的 MinIO 集群,可容忍半数节点或磁盘宕机仍能读数据
  • ✅ 快速上手磁盘自动挂载脚本,提升系统自动化与可靠性
  • ✅ 配置 MinIO 为系统服务并实现开机启动,贴合生产环境需求
  • ✅ 使用 MinIO 客户端 mc 进行对象存储管理与集群验证
  • ✅ 了解 MinIO 适用与非适用场景,避免踩坑

但这只是开始——深入生产落地,你还可以继续探索:

  • 🔐 安全加固:启用 HTTPS、IAM 权限管理、桶级访问策略
  • 🌐 多地容灾:配置 Site Replication 实现跨站点对象同步与灾备
  • 📊 监控与报警:集成 Prometheus + Grafana 构建可视化运维平台
  • ☸️ Kubernetes 部署:使用 MinIO Operator 无缝接入容器编排平台
  • ♻️ 对象治理:生命周期策略、版本控制、对象加密……全面提升数据治理能力

如果你是一名后端工程师、运维专家、数据平台构建者或 DevOps 从业者,这将是你迈向企业级对象存储架构的重要一课。


将这段内容放在教程前,可以让读者快速把握教程的重点与深度,同时也为后续扩展埋下伏笔,引导读者持续关注和学习。

如需我帮你把整篇文章整体结构化整理(如:添加目录、章节导航、Markdown 样式优化等),也可以继续告诉我。

官网地址:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html


一、MinIO 多节点多磁盘安装步骤

1. 环境准备

  • 操作系统:建议使用 Linux Ubuntu 24.04

  • 硬件: 4C 8G 40G*4 4台

  • 说明:这里只是演示如何搭建,如果生成环境使用务必保持每个节点内存不低于32GB, CPU建议12核以上,磁盘使用SSD。

    ip hostname
    172.17.73.143 minio.example1.com
    172.17.73.144 minio.example2.com
    172.17.73.145 minio.example3.com
    172.17.73.146 minio.example4.com

    1.1 磁盘格式化及挂载

    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 | grep "$MOUNT_POINT"
    
    echo "✅ 操作完成。"
    

    使用lsblk来获取没有挂载的磁盘

    root@iZbp19o3mb8aenc710gma6Z:~# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
    vda    253:0    0   40G  0 disk
    ├─vda1 253:1    0    1M  0 part
    ├─vda2 253:2    0  200M  0 part /boot/efi
    └─vda3 253:3    0 39.8G  0 part /
    vdb    253:16   0   40G  0 disk
    vdc    253:32   0   40G  0 disk
    vdd 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值