Linux中的MFS分布式文件系统

目录

一、MFS分布式文件系统

1、MooseFS简介

2、Moose File System的体系结构

(1)MooseFS Master

(2)MooseFS Chunk Server

(3)MooseFS Metalogger

(4)MooseFS Client

(5)MooseFS CLI

二、MFS命令介绍

三、集群部署

四、Storage Classes

1、Storage Classes简介

2、 LABEL简介

3、示例:

五、Moose File System的pacemaker高可用

1、安装 Master Servers

2、pacemaker高可用

3、ISCSI

4、添加集群资源

5、应用


一、MFS分布式文件系统

1、MooseFS简介

      MFS(Moose File System)是一个基于分布式网络文件系统的开源存储系统。MFS可以在多台计算机上组织文件并提供统一的文件系统访问。MFS的主要特点是高可用性、可靠性和扩展性。它使用存储在多个节点上的数据进行数据冗余,并使用快速而可靠的网络传输数据。MFS还支持在运行时动态添加和删除节点,以便随着系统需求的变化而进行快速和灵活的扩展。

2、Moose File System的体系结构

Moose File System是一个分布式文件系统,它由多个组件组成。

(1)MooseFS Master

      MooseFS Master是一个开源的分布式文件系统管理器,它能够管理一个或多个MooseFS Chunk Servers,为客户端提供可靠的文件存储和访问服务。MooseFS Master使用Master-Slave架构,它可以处理超过数百个Chunk Server的集群,并且具有高可用性和可伸缩性。它支持多种数据备份策略,可以将数据备份到多个Chunk Server上,从而提高数据的可靠性和容错性。MooseFS Master还提供了Web界面和命令行工具,方便用户管理和监控文件系统的运行状态。

(2)MooseFS Chunk Server

      MooseFS Chunk Server 是MooseFS 分布式文件系统中的组成部分之一,主要负责存储和管理文件系统中的文件数据块。每个 MooseFS Chunk Server 可以存储多个数据块,并与 MooseFS Master Server 进行通信以保持文件系统的一致性和可用性。MooseFS Chunk Server 可以在多台服务器上部署,因此 MooseFS 文件系统可以通过多个节点并行地处理文件的存储、访问和备份。

(3)MooseFS Metalogger
  • MooseFS Metalogger是一个MooseFS集群的组件,它负责管理和记录MooseFS文件系统的元数据。它的作用是确保元数据的一致性和可靠性,以避免数据丢失或损坏的情况发生。
  • MooseFS Metalogger可以运行在独立的服务器上,也可以与其他MooseFS组件一起运行在同一台服务器上。它使用特殊的协议与其他MooseFS组件进行通信,以确保数据和元数据的一致性。
  • 在MooseFS集群中,Metalogger通常设置为主/备两个节点,以确保在主节点故障时备用节点能够接管并继续提供服务,从而实现高可用性。
(4)MooseFS Client
  • MooseFS是一种开源的分布式文件系统,它允许用户在多台服务器之间共享数据。MooseFS Client是MooseFS文件系统的客户端,用户可以使用MooseFS Client来访问MooseFS文件系统中存储的数据。 
  • MooseFS Client提供了一个用户空间工具,它包括了一个命令行界面和一个文件系统挂载程序。使用MooseFS Client,用户可以将MooseFS文件系统挂载到本地文件系统中,就像挂载任何其他文件系统一样。这意味着用户可以直接在本地系统上访问MooseFS文件系统中的数据,而无需知道它实际上存储在哪个服务器上。
  • MooseFS Client使用自身的协议来访问MooseFS服务器,这意味着它可以在不同的操作系统上运行,包括Linux、BSD、Solaris和Windows。此外,MooseFS Client还支持许多其他高级功能,例如安全访问、文件缓存、数据压缩和限制带宽等功能。
(5)MooseFS CLI
  • MooseFS CLI是一个基于命令行界面的管理工具,用于管理MooseFS文件系统。它提供了一组命令,可用于查看和修改MooseFS中的文件、目录和元数据,以及监控系统性能和状况。
  • MooseFS CLI可以通过SSH远程连接到MooseFS服务器,也可以在本地运行。它可以执行诸如创建、删除、重命名、移动和复制文件等基本操作,同时还可以进行更高级的操作,如设置文件ACL、挂载磁盘、调整容量限制等操作。
  • MooseFS CLI还支持命令行自动补全和命令历史记录等功能,使得操作更加方便和高效。它是MooseFS系统中一个十分重要的管理工具,非常适合那些需要以命令行方式管理文件系统的用户。

      这些组件共同协作,实现文件的存储和访问。MooseFS的设计使得它能够扩展到数百个节点,可以存储数PB的数据。

二、MFS命令介绍

  1. mfsmount:将 MooseFS 挂载到本地文件系统。

  2. mfsmetarestore:用于将备份中的元数据恢复到 MooseFS 文件系统中。

  3. mfsbackup:用于对 MooseFS 文件系统创建备份。它可以备份整个文件系统或单个目录。

  4. mfsmount.cfg:MooseFS Mount 配置文件。它包含有关如何将 MooseFS 文件系统挂载到本地文件系统的信息。

  5. mfsgooglecache:使用 Google Cloud Storage 作为 MooseFS 缓存。它可以帮助用户提高 MooseFS 系统的性能。

  6. mfshdd:硬盘诊断工具。它可以帮助检测 MooseFS 存储节点中硬盘的健康状态。

  7. mfsgetgoal: 查看设置的副本数

  8. mfssetgoal:设置副本数。(必须设置在 1 到 9 之间,建议不要使用 1)。如果设置的副本数高于 Chunkservers 的总数,则副本数为 Chunkservers 的总数。

  9. mfsdirinfo:查看目录详细信息。

  10. mfsfileinfo:查看文件详细信息。

  11. mfsgettrashtime:查看已删除文件(垃圾)的保留时间(默认为 1天)。

  12. mfssettrashtime:修改已删除文件(垃圾)的保留时间。

  13. mfsscadmin:用于管理MoosesFS存储集群中的文件系统实例。行实例的创建、删除、添加和删除存储节点,以及设置哈希分片策略等操作。

  14. mfssetsclass:用来设置一个或多个文件或目录的存储类别。存储类别确定了文件或目录在存储设备上的位置和使用的存储策略,例如,高速缓存、磁盘存储、或者归档存储。

    mfssetsclass [-c class] [-s] [-r] [-d] [-f] file or directory ...
    

    等;

三、集群部署

主机

ip

角色

mfs1

192.168.67.41

Master Servers

mfs2

192.168.67.42

Chunkservers
mfs3

192.168.67.43

Chunkservers
mfs4

192.168.67.44

Clients
mfs5

192.168.67.45

Chunkservers

软件安装(Master Servers):

软件仓库(所有节点)

curl "https://repository.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://repository.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo

安装:

yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
systemctl enable --now moosefs-master.service
systemctl enable --now moosefs-cgiserv.service

添加解析

 Chunkservers节点安装

yum install moosefs-chunkserver

修改配置:

cd /etc/mfs/
vim mfshdd.cfg
mkdir chunk1

三节点同上

Clients节点安装:

yum install moosefs-client

修改文件(挂载点)

cd /etc/mfs/
vim mfsmount.cfg
/mnt/mfs

cd /mnt
mkdir mfs
mfsmount

所有节点都要添加解析

测试

mkdir dir1
mkdir dir2
cd dir1
touch file1  vim file1  (文件不能为空)
mfsfileinfo file1

mfsgetgoal -k dir2/ 
mfssetgoal -r 1 dir2/
cd dir2
touch file1
mfsfileinfo file1

四、Storage Classes

1、Storage Classes简介

       MooseFS的Storage classes可以根据数据的需求来灵活的配置和选择不同的存储类型。它们可以根据应用需求来提供高性能的读写速度、数据的冗余备份和大规模的数据存储。

2、 LABEL简介

       label是指对文件或目录进行标记,以便于对它们进行管理和区分。label可以是任何文本字符串,通常用于指示文件或目录的用途、状态或其他属性。例如,您可以为某个目录设置一个label,以指示它是用于存储备份文件,或者为某个文件设置一个label,以指示它是具有高优先级的任务数据。MooseFS使用label可以帮助用户更好地组织和管理文件系统中的数据。

3、示例:

同理扩容节点三

修改配置 添加标签

创建存储类及应用

(1)2S

mfsscadmin create 2S class 2s
cd dir1
mfssetsclass -r class 2s file1
mfsfileinfo file1

(2) A,B

mfsscadmin create A,B class_ab
mfssetsclass -r class ab file1
mfsfileinfo file1

(3)S,H

mkdir dir3
mfsscadmin create S,H class sh
touch file1
mfssetsclass -r class sh file1

(4)3S

mfssetgoal -r 3 dir3/
修改标签
mfsscadmin create 3S class 3s
mfssetsclass -r class 3s file1
mfsfileinfo file1

所以创建的存储类

各种组合都可以有 

五、Moose File System的pacemaker高可用

主机

ip

角色

mfs1

192.168.67.41

Master Servers    +   pacemaker    +   ISCSI(Client)

mfs2

192.168.67.42

Chunkservers
mfs3

192.168.67.43

Chunkservers
mfs4

192.168.67.44

Clients    +   ISCSI(Server)
mfs5

192.168.67.45

Chunkservers
mfs6

192.168.67.46

Master Servers    +   pacemaker    +   ISCSI(Client)

1、安装 Master Servers

防止两台高可用主机mfs用户id不同

curl "https://repository.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://repository.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
systemctl enable --now moosefs-master.service
systemctl enable --now moosefs-cgiserv.service

查看id

2、pacemaker高可用

配置软件仓库

vim /etc/yum.repo.d/yyl.repo


[HighAvailability]
name=rhel7.6 HighAvailability
baseurl=file:///media/addons/HighAvailability
gpgcheck=0

安装高可用

yum install -y pacemaker pcs psmisc policycoreutils-python

启动pcsd服务  设置用户密码   节点认证

systemctl enable --now pcsd.service
ssh mfs6 systemctl enable --now pcsd.service
 
echo westos | passwd --stdin hacluster
ssh mfs6 'echo westos | passwd --stdin hacluster'
 
 
pcs cluster auth mfs1 mfs6

创建集群

pcs cluster auth mfs1 mfs6

启动集群

pcs cluster start--all
pcs cluster enable --all

禁用stonith

pcs property set stonith-enabled=false

3、ISCSI

服务端配置:

在mfs4上添加一块硬盘

yum install targetcli -y
systemctl enable --now target

配置

/backstores/block create yyl:storage /dev/sdb1
/iscsi create iqn.2023-11.org.yyl:storage
/iscsi/iqn.2023-11.org.yyl:storage/tpg1/luns create /backstores/block/yyl:storage
/iscsi/iqn.2023-11.org.yyl:storage/tpg1/acls create iqn.2023-11.org.yyl:yylkey1

 在高可用集群做客户端(mfs1,mfs6)

安装客户端:

yum install iscsi-initiator-utils.x86_64 -y

编辑认证文件

vim /etc/iscsi/initiatorname.iscsi 
systemctl restart iscsid 

 

客户端测试

iscsiadm -m discovery -t st -p 192.168.67.44
iscsiadm -m node -T iqn.2023-11.org.yyl:storage -p 192.168.67.44 -l

在服务端创建分区 格式化:

fdisk /dev/sdb
mkfs.xfs /dev/sdb1

 测试挂载

应用:

在mfs文件系统

修改权限    可以启动就表示成功

取消挂载

4添加集群资源

pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.67.200 op monitor interval=30s
pcs resource create mfs ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mfs fstype=xfs
pcs resource create mfs-master systemd:moosefs-master op monitor interval=60s
pcs resource group add groupmfs vip mfs mfs-master

5、应用

在集群所有节点添加解析

测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/176459.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序的执行原理(下)

文章目录 系统的硬件组成总线I/0设备主存处理器程序计数器(PC)加载:存储:操作:跳转: 运行 hello 程序读入寄存器,再把它存放到内存从磁盘加载程序到主存处理器执行程序并显示 参考 系统的硬件组成 总线 贯穿整个系统的是一组电子管道&#…

人工标签不准确的一种解决方案:PCA降维可视化筛选正样本

背景 在实际的业务场景里,用会话文本构建模型(机器学习/深度学习)来做意图分类之类的任务时,经常会出现人工打标不够准确的问题,标签都不准确的话模型当然无法学习到有效信息了。这个问题真的非常头疼…除了与业务沟通…

工业风格大屏:让数据更生动,直观更简单

硬工业风格可视化大屏是一种以工业为主题的大屏展示方式,具有极强的视觉冲击力和直观性。它将大屏展示和硬件设计融为一体,将数据以可视化的方式呈现出来,帮助用户更好地理解数据背后的含义和价值。 硬工业风格可视化大屏如: 硬工…

《QT从基础到进阶·三十五》QT插件实现侧边工具栏tabBar

tabBar是用QT插件实现的一个dll,对于插件的使用可以参考文章: 《QT从基础到进阶三十三》QT插件开发QtPlugin 源码放在文章末尾 该功能类似侧边工具栏,可以在该标签栏上添加自己开发的界面,实现代码如下: 1、所有功能…

modbus协议及modbus TCP协议

一、Modbus协议 1.起源 Modbus由Modicon公司于1979年开发,是一种工业现场总线协议标准。 Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,其中最著名的是Modbus RTU(通信效率最高,基于串口&am…

【鸿蒙生态千帆起】HarmonyOS 系统级地图与位置服务,赋能广大开发者

在"与 HarmonyOS 同行,开放生态,共赢未来"为主题的 HUAWEI Developer Day(简称 HDD)沙龙中,Petal Maps 为开发者们带来了在 HarmonyOS 下地图领域的最新技术探索与实践成果。 得益于 HarmonyOS 一次开发多端…

[点云分割] 欧式距离分割

效果&#xff1a; 代码&#xff1a; #include <iostream> #include <chrono>#include <pcl/ModelCoefficients.h> // 模型系数的定义 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> // 各种点云数据类型 #include <pcl/sample_c…

探讨大型公共建筑能耗监测与信息管理系统研究及应用

安科瑞 华楠 摘要&#xff1a;文章通过阐述大型公共建筑能耗现状&#xff0c;突出大型公共建筑实施节能监管的必要性&#xff0c;并在系统总结运用技术手段实施建筑能耗监测的基础上&#xff0c;介绍了江苏省建筑能耗监测系统研究过程中的技术创新和应用情况。 关键词&#x…

新手做抖店,这6点建议一定要收好,能让你不亏钱!

我是电商珠珠 我呢&#xff0c;目前身居郑州。 电商这个行业也做了5年多了&#xff0c;抖店从20年开始做&#xff0c;到现在也已经快3年了。 其实&#xff0c;我做抖店期间呢&#xff0c;踩过很多坑&#xff0c;所以今天就把我所踩过的坑&#xff0c;给做抖店的新手总结了6点…

opencv-图像对比度增强

对比度增强&#xff0c;即将图片的灰度范围拉宽&#xff0c;如图片灰度分布范围在[50,150]之间&#xff0c;将其范围拉升到[0,256]之间。这里介绍下 线性变换&#xff0c;直方图正规化&#xff0c;伽马变换&#xff0c;全局直方图均衡化&#xff0c;限制对比度自适应直方图均衡…

SSM客户管理系统CRM开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 客户管理系统CRM是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

left join查询耗时太慢,添加索引解决问题

背景 因为最近自己用的小app越用感觉加载越慢&#xff0c;以为是自己app开发逻辑出现问题了&#xff0c;结果才发现是自己很早以前的代码用到的是left join多表联查&#xff0c;以前因为数据少&#xff0c;所以没有感觉&#xff0c;现在数据量稍微一大&#xff0c;耗时就非常严…

git命令 cherry-pick

参考&#xff1a;https://blog.csdn.net/weixin_42585386/article/details/128256149 https://blog.csdn.net/weixin_44799217/article/details/128279250 merge和cherry-pick的区别&#xff1a; merge&#xff1a;是把某一个代码分支完全合并到当前的代码分支。完全合并的意…

redis的性能管理及集群架构(主从复制、哨兵模式)

一、redis的性能管理 1、内存指标info memory 内存指标&#xff08;重要&#xff09; used_memory:853736 数据占用的内存 used_memory_rss:10551296 redis向操作系统申请的内存 used_memory_peak:853736 redis使用内存的峰值 注&#xff1a;单位&#xff1a;字节 系…

向日葵x华测导航:远程控制如何助力导航测绘设备运维

导航测绘在各个领域均在发挥积极作用&#xff0c;其中RTK载波相位差分技术是导航测绘领域所常用的主流技术&#xff0c;该技术基于卫星定位系统的基础定位数据&#xff0c;可以实现在野外实时获取厘米级精度的定位数据&#xff0c;一定程度上省去了事后解算的麻烦。相应的&…

macos端文件夹快速访问工具 Default Folder X 最新for mac

Default Folder X 是一款实用的工具&#xff0c;提供了许多增强功能和快捷方式&#xff0c;使用户能够更高效地浏览和管理文件。它的快速导航、增强的文件对话框、自定义设置和快捷键等功能&#xff0c;可以大大提升用户的工作效率和文件管理体验。 快速导航和访问&#xff1a;…

steam游戏找不到steam_api64.dll,分享三个有效的解决方法

在现代科技发展的时代&#xff0c;游戏已经成为了许多人生活中不可或缺的一部分。而Steam作为全球最大的数字发行平台之一&#xff0c;拥有着庞大的游戏库和活跃的用户群体。然而&#xff0c;在使用Steam时&#xff0c;有些用户可能会遇到Steam_api64.dll丢失的问题&#xff0c…

QT mysql 数据库线程池 与数据库操作封装

最近事情比较多很久没有写学习笔记了&#xff0c;数据库线程池&#xff0c; 数据库封装&#xff0c;虽说数据库操作有很多不需要写sql 的&#xff0c;ORM 封装的方式去操作数据库。但是从业这些年一直是自己动手写sql &#xff0c;还是改不了这个习惯。不说了直接上代码。 数据…

想打造私域流量帝国?先解决这4个难题!

一、谁是你的目标用户 1. 清晰界定目标用户&#xff1a;确定你的产品或服务主要面向的用户群体&#xff0c;如年龄段、性别、职业等特征。 2. 确定最有购买力的用户群体&#xff1a;分析哪个用户群体在购买你的产品或服务时更容易乐于支付&#xff0c;并将其作为重点关注对象。…

skywalking中gateway的拓扑图没有出现

背景&#xff1a; 刚开始的时候gateway没有出现&#xff0c;后来百度说添加插件的jar包&#xff0c; apm-spring-cloud-gateway-2.1.x-plugin-8.15.0.jar apm-spring-webflux-5.x-plugin-8.15.0.jar 然后解决了gateway节点出来了&#xff0c; 但是&#xff1a;拓扑图却是User指…