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/mfscd /mnt
mkdir mfs
mfsmount

所有节点都要添加解析

测试

mkdir dir1
mkdir dir2
cd dir1
touch file1  vim file1  (文件不能为空)
mfsfileinfo file1mfsgetgoal -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.serviceecho 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、应用

在集群所有节点添加解析

测试:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QFontDialog开发详解

QFontDialog 类是 Qt 框架中用于选择字体的对话框类。它允许用户选择字体的各种属性,如字体名称、字号、粗体、斜体等。以下是 QFontDialog 的一些常见用法和详解: 一、QFontDialog基本用法 #include <QApplication> #include <QFontDialog> #include <QMes…

华为云cce健康检查有什么用?配置需要注意什么?

华为云cce健康检查 如上图&#xff0c;华为云健康检查可用来探测cce的实例运行状态&#xff0c;必要时cce会自动重启实例&#xff0c;达到cce持续服务。 但是配置时需要注意一下几个方面&#xff0c;否则cce的状态总是有些不正常。 1、http探查比较友好。因为我们的在cce里面…

构建器模式-C++实现

构建器模式是一种创建型设计模式&#xff0c;主要用于构建需要多个步骤和复杂参数的对象。该模式可以把对象的构建过程和它的表示进行分离&#xff0c;使得同样的构建过程可以有不同的表示。 比如说我们要建造一座房子&#xff0c;这个房子的类型有很多种&#xff0c;比如石头…

C/C++---------------LeetCode第349.两个数组的交集

两个数组的交集 题目及要求哈希算法在main里使用 题目及要求 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出…

【华为OD题库-029】恢复数字序列-java

题目 对于一个连续正整数组成的序列&#xff0c;可以将其拼接成一个字符串&#xff0c;再将字符串里的部分字符打乱顺序。如序列89101112, 拼接成的字符串19810112,打乱部分字符后得908112111。原来的正整数10就被拆成了0和1.现给定一个按如上规则得到的打乱字符的字符串&#…

物联网AI MicroPython学习之语法 ADC数模模块

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; ADC 介绍 模块功能: ADC数模转换模块 ADC功能在ESP32引脚32-39上可用&#xff0c;使用默认配置时&#xff0c;ADC引脚上的输入电压必须介于0.0v和1.0v之间&#xff08;任何高于1.0v的值都将读为4095&#x…

【信息安全】浅谈三种XSS(跨站脚本攻击)的攻击流程与防御措施

XSS 跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称XSS&#xff09;是一种常见的Web安全漏洞&#xff0c;攻击者通过在Web应用中注入恶意脚本&#xff0c;使得浏览器在解析页面时执行该脚本&#xff0c;从而实现攻击目的。 类型 存储型XSS&#xff1a;攻击者…

YoloV8改进策略:WaveletPool解决小目标的混叠问题,提高小目标的检测精度

文章目录 摘要论文:《抗混叠在微小目标检测中的重要性》1、简介2、相关研究2.1、微小物体检测2.2. 抗锯齿过滤器3、方法3.1. Wavelet Pooling3.2 一致顺序的Wavelet Pooling的WaveCNet3.3、Bottom-Heavy Backbone4、实验4.1、预训练数据集4.2、微小目标检测数据集4.3、抗混叠方…

从0开始学习JavaScript--JavaScript类型化数组进阶

前面的文章&#xff0c;已经介绍了JavaScript类型化数组的基本概念、常见类型和基本操作。在本文中&#xff0c;我们将深入探讨类型化数组的一些进阶特性&#xff0c;包括共享内存、大端小端字节序、以及类型化数组与普通数组之间的转换&#xff0c;通过更丰富的示例代码&#…

Keil MDK 安装

0 Preface/Foreword 1 下载和安装 官网&#xff1a;Keil Embedded Development Tools for Arm, Cortex-M, Cortex-R4, 8051, C166, and 251 processor families. Keil MDK 下载链接&#xff1a;Keil MDK 1.1 下载 根据需求下载对应的Keil MDK edition。 不同的editions包括 …

WaveletPool:抗混叠在微小目标检测中的重要性

文章目录 摘要1、简介2、相关研究2.1、微小物体检测2.2. 抗锯齿过滤器3、方法3.1. Wavelet Pooling3.2 一致顺序的Wavelet Pooling的WaveCNet3.3、Bottom-Heavy Backbone4、实验4.1、预训练数据集4.2、微小目标检测数据集4.3、抗混叠方法的选择及应用顺序4.4、小波的选择4.5、T…

Monoxide relay机制和连弩挖矿

这篇文章就两个点&#xff0c;relay机制 、 连弩挖矿 relay 最终原子性 Eventual Atomicity 一笔跨链交易&#xff0c;从取款shard中发出&#xff0c;到存款shard中. 当收款shard中将这笔夸片交易打包上链后&#xff0c;原子性才执行结束。 这样做的延迟是比较小的。 如何应…

Linux awk命令

一. 查询时间超过2000毫秒的请求 ✅log: 20231119-1.log 2023:11:19 09:07:10 SPLEND2000 请求开始 110 END 2023:11:19 09:07:11 SPLEND1000 请求开始 120 END 2023:11:19 09:07:12 SPLEND3000 请求开始 119 END 2023:11:19 09:07:13 SPLEND4000 请求开始 156 END 2023:11:1…

深度神经网络下的风格迁移模型

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 斯坦福大学李飞飞团队的风格迁移模型是一种基于深度学习的图像处理技术&#xff0c;可以将一张图像的风格转移到另一张图像上。该模型…

Go 命名规范:全面指南

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等&#xff0c;您的关注将是我的更新动力&#xff01; 在软件开发领域中&#xff0c;命名规范在提升代码可读性、可维护性和一致性方面起着至关重要的作用。良好定义的命名规范确保代码…

python之循环

知识点&#xff1a;while 使用while循环一般需要定义一个标志位&#xff0c;用来开始和结束循环 flag True 注意&#xff1a;这里的True一定要大写&#xff0c;否则无法识别 当要循环结束的时候 flag False 例子 # 遍历所有的子列表&#xff0c;找出列表之和为最大的列表 d…

notepad++

目录 notepad标签自动补齐notepad安装插件&#xff1a;Emmet 和 Python Script第 1 步&#xff0c;安装emmet第 2 步&#xff0c;安装 Python Script第 3 步 更改快捷键 安装html代码格式化插件tidy21 安装2 使用2.1 效果 notepad快捷键 notepad标签自动补齐 1 2 3 打标签时…

MySQL数据库备份与恢复:物理备份和逻辑备份详解

MySQL数据库的备份与恢复是数据库管理中至关重要的一环&#xff0c;它确保了数据的安全性和可恢复性。在本文中&#xff0c;我们将深入讨论如何进行MySQL数据库的备份和恢复&#xff0c;并详解物理备份和逻辑备份的概念及区别。 1. 如何备份和恢复MySQL数据库&#xff1f; 1.…

编写函数求定积分的通用函数

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 不积跬步无以至千里&#xff0c;…

Hfish安全蜜罐部署

一、Hfish蜜罐介绍 HFish蜜罐官网 HFish是一款社区型免费蜜罐&#xff0c;侧重企业安全场景&#xff0c;从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发&#xff0c;为用户提供可独立操作且实用的功能&#xff0c;通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷…