Linux中的MFS分布式文件系统

news/2023/11/29 23:29:03

目录

一、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、应用

在集群所有节点添加解析

测试:


https://www.xjx100.cn/news/3092573.html

相关文章

matlab-BP神经网络的训练参数大全

本文部分图文来自《老饼讲解-BP神经网络》bp.bbbdata.com 本文列兴趣MATLAB神经网络工具箱中,训练参数trainParam的各个参数与意义 以方便在使用matlab工具箱时,用于查阅 一、matlab神经网络工具箱trainParam的参数列表 trainParam中的各个具体参数如下…

美团面试:微服务如何拆分?原则是什么?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如美团、字节、如阿里、滴滴、极兔、有赞、希音、百度、网易的面试资格,遇到很多很重要的面试题: 微服务如何拆分? 微服务拆分的规范和原则…

JavaScript-变量类型判断

更多内容,请访问: 声明和定义区别 JavaScript-变量类型 JavaScript-如何使用变量 JavaScript-undefined和null区别 变量类型判断 typeof 常用于基础数据类型判断: typeof 123 number; // true typeof true boolean; // true typeof 123 string…

基于非链式(数组)结点结构的二叉树的前(先)序输入创建以及遍历

点击链接返回标题->基于非链式(数组)结点结构的二叉树的层序、先序、中序、后序输入创建以及层序、先序、中序、后序输出-CSDN博客 我们采用递归的思想,不断去找空结点(值为-1的结点),在找空结点这个过程中,将输入的…

golang学习笔记——接口和继承比较1

继承 Go 语言的设计之初,就不打算支持面向对象的编程特性,因此 Go 不支持面向对象的三大特性之一——继承。但是 Go 可以通过组合的思想去实现 “继承”。继承是面向对象的三大特性之一,继承是从已有的类中派生出新的类,新的类能…

UEC++ day7

敌人NPC机制 敌人机制分析与需求 新建一个character类来作为敌人,直接建蓝图设置骨骼网格,因为敌人可能多种就不规定死,然后这个敌人肯定需要两个触发器,一个用于大范围巡逻,一个用于是否达到主角近点进行攻击 注意我…

ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

详解Python安装requests库的实例代码

文章目录 前言基本用法基本的get请求带参数的GET请求解析json关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前…