MFS分布式文件系统:高可用集群部署实战 MFS分布式文件系统思维导图 一、MFS 基础架构1. 核心概念与特点定义MFS 是一个基于 FUSE用户空间文件系统的分布式网络文件系统支持数据多副本存储默认 2 份提供逻辑上的树形文件结构。优点高可靠性数据多副本存储在不同主机。高可扩展性动态增加磁盘或主机扩展容量。高容错性支持回收站机制误删文件可恢复。高一致性支持文件快照。缺点单点风险社区版 Master 为单点可通过 Keepalived 解决。内存要求Master 需将元数据全加载至内存。同步延迟Metalogger 复制元数据时间较长。2. 系统组成元数据服务器Master管理文件系统维护元数据。元数据日志服务器MetaLogger备份 Master 的变化日志。数据存储服务器Chunk Server实际存储数据的服务器。客户端Client通过 FUSE 挂载 MFS 文件系统。3. 读写处理流程读取Client 向 Master 请求位置 - Master 返回 Chunk Server 信息 - Client 直接读取数据。写入Client 向 Master 请求 - Master 规划 Chunk - Client 写入指定 Chunk Server - Chunk Server 间同步副本 - 通知 Master 完成。4. 关键端口9420Master 与 Chunk 通信。9421Master 与 Client 通信。9419Master 与 Metalogger 通信。9422Chunk 与 Client 通信。9425Master Web 监控界面。️ 二、MFS 部署应用(MooseFS (MFS) 分布式文件系统集群部署详解)随着业务量的增加传统的单点存储已无法满足需求。本文档将详细介绍如何部署 MooseFS简称 MFS分布式文件系统。我们将构建一个包含 Master Server、Metalogger、Chunk Servers 和 Client 的高可用、可扩展的分布式存储环境。摘要本文详细介绍了在 CentOS 7.9 环境下部署 MooseFS 分布式存储集群的全过程。基于 5 台服务器的规划涵盖元数据管理Master、元数据备份Metalogger、数据存储Chunkserver及客户端挂载的完整配置步骤并提供了详细的 IP 规划与故障排查思路。一、 集群架构与 IP 规划本方案采用 MooseFS 经典的三层架构共需 5 台服务器。架构设计遵循高可用与数据冗余原则确保单点故障不影响业务运行。集群角色与节点分配规划表主机名IP地址角色核心职责mfs153192.168.30.153mfsmaster集群元数据管理、核心大脑mfs154192.168.30.154metalogger实时备份元数据Master故障时可接管mfs155192.168.30.155chunkserver1实际数据存储节点1需挂载独立数据盘mfs156192.168.30.156chunkserver2实际数据存储节点2需挂载独立数据盘mfs157192.168.30.157client业务接入节点挂载MFS文件系统架构逻辑说明元数据层单 Master 单 Metalogger 冷备负责文件命名空间与映射关系。存储层2 台 Chunkserver默认 2 副本策略数据分散存储单节点故障数据不丢失。接入层客户端通过 FUSE 挂载对业务透明使用方式与本地磁盘一致。二、 全节点通用环境准备5台机器全部执行以下步骤需在192.168.30.153至192.168.30.157所有节点上执行。1. 配置主机名与 hosts 解析# 1. 修改主机名以153为例其他节点对应修改 hostnamectl set-hostname mfs153 bash # 2. 配置集群内部 hosts 解析 cat /etc/hosts EOF 192.168.30.153 mfsmaster 192.168.30.154 metalogger 192.168.30.155 chunkserver1 192.168.30.156 chunkserver2 192.168.30.157 mfsclient EOF2. 关闭防火墙与 SELinux# 关闭 firewalld systemctl stop firewalld systemctl disable firewalld ​ # 关闭 SELinux setenforce 0 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config3. 配置时间同步与 YUM 源# 安装 chrony 并配置阿里云时间源 yum install -y chrony sed -i s/^server.*/server ntp.aliyun.com iburst/ /etc/chrony.conf systemctl start chronyd systemctl enable chronyd date # 配置阿里云 YUM 源及 EPEL 源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo ​ yum makecache4. 配置 MooseFS 官方 YUM 源注意官方源地址已迁移请使用新域名以避免 301 跳转错误。# 导入 GPG KEY curl https://repository.moosefs.com/RPM-GPG-KEY-MooseFS -o /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS ​ # 下载 Repo 文件 curl https://repository.moosefs.com/RPM-GPG-KEY-MooseFS -o /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS ​ # 验证源配置 yum clean all yum makecache yum info moosefs-master moosefs-cli三、 分角色部署步骤1. 部署 mfsmaster 主节点192.168.30.1531. 安装核心包yum install -y moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli2. 核心配置优化编辑/etc/mfs/mfsmaster.cfg建议调整以下参数# 监听所有网卡 MATOML_LISTEN_HOST * MATOCL_LISTEN_HOST * MATOCS_LISTEN_HOST * ​ # 回收站保留时间生产建议7天 TRASH_TIME 6048003. 启动服务systemctl start moosefs-master systemctl enable moosefs-master ​ # 启动 Web 可视化监控端口 9425 systemctl start moosefs-cgiserv systemctl enable moosefs-cgiserv4. 验证浏览器访问http://192.168.30.153:9425若能看到 MFS 监控面板即表示启动成功。2. 部署 metalogger 元数据备份节点192.168.30.1541. 安装包yum install -y moosefs-metalogger2. 配置指向 Master编辑/etc/mfs/mfsmetalogger.cfgMASTER_HOST mfsmaster DATA_PATH /var/lib/mfs META_BACKUPS_KEEP 503. 启动服务systemctl start moosefs-metalogger systemctl enable moosefs-metalogger3. 部署 chunkserver 存储节点192.168.30.155, 192.168.30.156注意生产环境严禁使用系统盘存储数据请为这两台节点分别挂载一块独立的数据盘如/dev/sdb。1. 磁盘规划与格式化155 和 156 均执行# 假设新加硬盘为 /dev/sdb fdisk /dev/sdb # (操作n - p - 1 - 回车 - 回车 - w) ​ # 格式化为 XFS mkfs.xfs /dev/sdb1 ​ # 创建挂载点并挂载 mkdir -p /data/mfschunk echo /dev/sdb1 /data/mfschunk xfs defaults,noatime,nodiratime 0 0 /etc/fstab mount -a2. 安装与配置yum install -y moosefs-chunkserver ​ # 配置主服务指向 Master sed -i s/# MASTER_HOST mfsmaster/MASTER_HOST mfsmaster/ /etc/mfs/mfschunkserver.cfg ​ # 配置数据盘路径 echo /data/mfschunk /etc/mfs/mfshdd.cfg ​ # 授权目录 chown -R mfs:mfs /data/mfschunk ​ # 启动服务 systemctl start moosefs-chunkserver systemctl enable moosefs-chunkserver3. 验证在 Master 的 Web 界面http://192.168.30.153:9425的 Servers 标签页中应能看到 155 和 156 两个 Chunkserver 上线。4. 部署 client 客户端节点192.168.30.1571. 安装客户端工具yum install -y moosefs-client fuse2. 挂载文件系统# 创建挂载点 mkdir -p /mnt/mfs ​ # 3. 创建软链接 ln -s /usr/local/moosefs/bin/mfsmount /usr/local/bin ln -s /usr/local/moosefs/bin/mfsgetgoal /usr/local/bin ln -s /usr/local/moosefs/bin/mfssetgoal /usr/local/bin ln -s /usr/local/moosefs/bin/mfsfileinfo /usr/local/bin ​ # 临时挂载测试 mfsmount /mnt/mfs -H mfsmaster ​ # 验证挂载 df -h /mnt/mfs3. 配置开机自动挂载编辑/etc/fstab添加以下内容echo mfsmount /mnt/mfs fuse defaults,nonempty,allow_other,mfsmastermfsmaster 0 0 /etc/fstab mount -a执行mount -a验证配置无误。四、 功能验证与常用命令1. 读写测试在客户端157执行echo MFS Test Data /mnt/mfs/test.txt cat /mnt/mfs/test.txt若文件写入成功且能读取说明集群工作正常。2. mfscli 常用管理命令在 Master 节点153上使用mfscli工具查看集群状态命令说明mfscli -H mfsmaster -SIN查看集群整体概览信息mfscli -H mfsmaster -SCS列出所有 Chunkserver 节点状态mfscli -H mfsmaster -SMS查看当前客户端挂载会话五、 常见问题与注意事项端口连通性确保各节点间 9420, 9421, 9422, 9425 等 MFS 相关端口互通若开启防火墙。磁盘权限Chunkserver 的数据目录必须授权给mfs:mfs用户否则服务无法启动。Master 故障切换若 Master 宕机需在 Metalogger 节点执行mfsmetarestore -a恢复元数据并修改配置启动moosefs-master服务接管集群。时间同步分布式存储对时间敏感务必确保chronyd服务正常运行时间偏差超过 5 分钟会导致节点失联。