MooseFS分布式文件系统部署

一、概述

MooseFS是一款容错、可横向扩展的分布式文件系统,可运行在普通x86服务器硬件之上,支持PB级数据存储,能够实现数据冗余、高可靠访问,分为社区开源版MooseFS 4 CE与商业专业版MooseFS5 Pro,本实验基于Rocky Linux9操作系统,搭建MooseFS4 CE开源分布式存储集群,完成Master主元数据节点、Chunkserver数据存储节点、Client客户端完整部署流程,实现分布式存储挂载使用。

实验环境:多台Rocky Linux9虚拟机

server1:Master元数据主节点

server2、server3:Chunkserver数据存储节点

server4:MooseFS客户端节点

二、MooseFS产品介绍

2.1 产品官网与版本说明

MooseFS官网提出设想:普通商用硬件能否实现免维护的PB级存储。 版本区分:

MooseFS 4 CE:GPLv2开源协议,永久免费,适合开发、测试、小规模部署。

MooseFS 5 Pro Personal:面向个人开发者家庭实验室,提供故障自动切换、多位置集群、高级纠删码,非商用20TiB以内免费。

MooseFS 4 Pro /5 Pro:面向生产商业环境,提供7×24技术支持。

2.2 MooseFS架构

组件说明:

Master(Leader Master):主元数据服务,管理整个集群元数据,目录、文件属性、块存储位置。

Followers:Master从节点,用于高可用。

Metaloggers:元数据日志服务器,备份元数据变更日志。

Chunkservers:数据块存储服务器,真正存放业务数据。

Clients:客户端,通过网络挂载MooseFS分布式文件系统使用。

三、实验环境准备

3.1 软件源准备

MooseFS官方提供RPM软件仓库,针对el8/el9/el10等RHEL系列系统提供对应rpm包,每一台集群虚拟机都需要导入GPG密钥、配置yum软件源。

仓库地址区分不同el版本,Rocky Linux9对应el9源。

核心操作命令(所有节点执行)

#导入GPG密钥

curl "https://repository.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS

#写入repo源文件

curl "http://repository.moosefs.com/MooseFS-4-el9.repo" > /etc/yum.repos.d/MooseFS.repo

执行curl导入仓库密钥与repo配置文件,实操截图:

注意:操作时容易出现路径书写错误,/etc/yum.repos.d/不能少写斜杠。

3.2 DNS/hosts解析规划

MooseFS推荐使用DNS解析master主机名,生产高可用环境必须DNS;测试环境没有DNS服务器,所有节点修改/etc/hosts做本地主机名解析,模拟域名解析。

3.3 CPU性能调优(Power governor)

MooseFS Master节点对CPU性能敏感,动态节能调频会带来延迟抖动,官方建议CPU电源策略设置为performance性能模式,使用tuned工具管理性能配置文件。

#安装调优工具

yum install tuned

systemctl enable --now tuned

tunedadm list

虚拟环境默认profile为virtualguest。

四、集群组件安装

4.1 Master节点(server1)安装

master节点需要安装master主服务、cgi监控界面工具、cli命令行工具。

yum install moosefsmaster moosefscgi moosefscgiserv moosefscli

安装执行截图:

安装完成后启动服务,开启开机自启,查看端口监听,访问web监控页面。

systemctl enable --now moosefs-master

systemctl enable --now moosefs-cgiserv

查看端口监听:

浏览器访问CGI监控页面:http://masterIP:9425/mfs.cgi 集群初始状态页面:

Master节点配置文件:/etc/mfs/mfsmaster.cfg,mfsexports.cfg导出权限配置。

本实验中vim打开配置文件,使用默认配置,没有修改参数。

4.2 Chunkserver数据存储节点安装(server2、server3)

Chunkserver负责存储实际数据块,每个数据节点执行安装:

yum install moosefschunkserver

server2安装:

server3安装:

新增磁盘分区格式化挂载

实验环境给虚拟机新增一块20G NVMe磁盘,作为MooseFS数据存储盘。 虚拟机硬件设置:

1)server2磁盘操作 关机重启识别新磁盘,fdisk查看磁盘:

fdisk对/dev/nvme0n2新建主分区:

格式化为xfs文件系统:

mkfs.xfs /dev/nvme0n2p1

创建挂载目录/mnt/ssd01,获取磁盘UUID写入/etc/fstab实现开机自动挂载。

重载systemd,执行mounta挂载,修改目录所有者为mfs用户:

systemctl daemonreload

mount -a

chown mfs.mfs /mnt/ssd01

systemctl enable --now moosefschunkserver

挂载完成截图:

启动chunkserver之后,数据目录自动生成256个子目录(chunk块存储目录):

修改chunkserver配置文件mfschunkserver.cfg,配置数据存储路径:

/mnt/ssd01

2)server3重复磁盘部署流程 fdisk识别磁盘、新建分区、格式化xfs,写入fstab挂载,修改目录权限,启动chunkserver服务。

 fdiskl查看磁盘:

3)分区操作:

格式化磁盘:

修改/etc/fstab:

挂载磁盘并启动chunkserver:

4.3 Client客户端节点(server4)部署

客户端安装moosefsclient软件包,用来挂载分布式文件系统。

yum install moosefsclient -y --nogpgcheck

安装截图:

客户端配置文件mfsmount.cfg,设置默认挂载点:

/mnt/mfs

创建挂载目录,执行mfsmount命令挂载MooseFS分布式文件系统:

mkdir -p /mnt/mfs

mfsmount

df -h

挂载成功:

五、集群Web监控验证

打开CGI监控页面,查看Chunkserver节点状态、磁盘容量、IO统计、挂载客户端信息。 可以看到两台chunkserver节点上线,磁盘容量识别,客户端挂载记录。

六、实验总结

MooseFS集群角色拆分清晰:Master管理元数据,Chunkserver存储真实数据,Client挂载使用分布式存储;所有节点都需要配置MooseFS官方yum源。

Chunkserver节点必须准备独立磁盘,分区格式化,配置fstab开机自动挂载,存储目录权限必须修改为mfs用户,否则chunkserver无法写入数据块。

Master节点对CPU性能敏感,生产环境建议调整CPU电源策略为performance模式,减少延迟抖动。

测试环境可以使用/etc/hosts代替DNS做主机名解析;生产高可用环境必须部署DNS。

Web CGI监控界面可以直观查看集群状态、磁盘、副本、客户端挂载情况,方便运维排错。

本实验使用社区版MooseFS4 CE完成基础集群部署,没有部署元数据备份Metalogger、Master高可用Follower节点。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐