MFS分布式文件系统安装部署

比眉伴天荒 2022-10-07 08:54 321阅读 0赞

1.MFS简介

1.1 MFS基本概念

  1. MooseFS是一个容错,高可用,高性能,扩展,网络分布式文件系统。它将数据分布在多个物理商品服务器上,这些服务器对用户可视为一个虚拟磁盘。它符合POSIX并且像任何其他类Unix文件系统一样支持:
  • 分层结构:文件和文件夹,
  • 文件属性,
  • 特殊文件:管道,插座,块和字符设备,
  • 符号和硬链接,
  • 安全属性和ACL。它适用于需要标准文件系统的所有应用程序。

1.2 MFS原理

  1. 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单来说,就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。对于用户来说,要访问这些共享文件时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件是分布于各个计算机上的。分布式文件系统的好处是集中访问、简化操作、数据容灾,以及提高文件的存取性能。MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是统一的资源。

1.3 MFS文件系统的组成

  • 元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
  • 元数据日志服务器(Metalogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。当Master服务器数据丢失或损坏时,可以从日志服务器中取得文件,进行恢复。
  • 数据存储服务器(Chunk Server):真正存储数据的服务器。存储文件时,会把文件分块保存,并在数据服务器间进行复制。数据服务器越多,能使用的“容量”也越大,可靠性越高,性能也就越好。
  • 客户端(Client):可以直接挂载MFS文件系统。

1.4 MFS读取数据的处理过程

  • 客户端向元数据服务器发出读请求
  • 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端
  • 客户端向已知的Chunk Server请求发送数据
  • Chunk Server向客户端发送数据

1.5 MFS写入数据的处理过程

  • 客户端向元数据服务器发送写入请求
  • 元数据服务器与Chunk Server进行交互(只有当所需的分块Chunk存在的时候才进行交互),但元数据服务器只在某些服务器创建新的分块chunks,创建成功后由Chunk Servers告知元数据服务器操作成功
  • 元数据服务器告知客户端,可以在哪个Chunk Server的那些chunks写入数据
  • 客户端向指定的Chunk Server写入数据
  • 该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功
  • 客户端告知元数据服务器本次写入完毕

1.6 MFS优势

  • 高可用性:没有单点故障也称为无SPOF配置。文件系统的元数据在物理冗余服务器上保存为两个或多个副本。用户数据冗余地分布在系统中的存储服务器上。
  • 低成本的数据安全:MooseFS使用户能够节省大量硬盘空间,保持相同的数据冗余级别。在大多数常见情况下,将节省至少55%的硬盘空间.
  • 可扩展性:存储可以扩展到16字节(~16000千兆字节),这使我们可以存储超过20亿个文件
  • 高性能:旨在支持高性能I/O操作。用户数据可以在许多存储节点上同时读取/写入,从而避免单个中央服务器或单个网络连接瓶颈。

2 MFS文件系统安装

2.1 环境准备

  • 操作系统采用Centos7.6
  • 具备Yum软件安装工具
  • 关闭防火墙及selinu

    关闭防火墙

    systemctl stop firewalld

    开机启动关闭防火墙

    systemctl disable firewalld
    setenforce 0

  • 使用三台服务器模拟搭建MFS文件系统


























服务器 ip MFS服务组件 服务器配置
service1 192.168.10.151 Master Server、Client cpu:≥2核;内存:≥2G
service2 192.168.10.152 Chunk Server1、Client
service3 192.168.10.153 Chunk Server2、MetalLogger Server
  1. 这里采用两个Client客户端,主要为了便于展示在service1节点复制文件,service2客户端也能感知到。在实际的部署环境中,建议每台服务器尽量部署一个服务节点。

2.2 搭建Master Server

2.2.1 安装软件

  1. curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
  2. curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo //添加适当的库条目
  3. yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y

2.2.2 启动服务

  1. # 启动服务
  2. systemctl start moosefs-master
  3. # 开机自启服务
  4. systemctl enable moosefs-master

2.2.3 简单验证服务是否启动成功

  1. netstat -ntap | grep mfs

20210617100300202.png

2.3 搭建MetalLogger Server

2.3.1 安装软件

  1. curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
  2. curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo //添加适当的库条目
  3. yum install moosefs-metalogger -y

2.3.2 修改配置文件

  1. vim /etc/mfs/mfsmetalogger.cfg
  2. MASTER_HOST = 192.168.10.151 //地址指向主服务器

2.3.3 启动服务

  1. systemctl start moosefs-metalogger
  2. systemctl enable moosefs-metalogger

2.3.4 验证服务是否启动成功

  1. netstat -ntap | grep mfs

2.4 搭建Chunk Server

  1. 项目中的两台Chunk Server的搭建步骤是完全相同

2.4.1 安装软件

  1. curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
  2. curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo //添加适当的库条目
  3. yum install moosefs-chunkserver -y

2.4.2 修改配置文件

2.4.2.1 修改mfschunkserver.cfg

  1. vim /etc/mfs/mfschunkserver.cfg
  2. MASTER_HOST = 192.168.10.151 //在配置文件中修改,将地址指向主服务器

2.4.2.2 修改mfshdd.cfg

  1. vim /etc/mfs/mfshdd.cfg
  2. //在末行添加共享目录
  3. /liang

20210617101100920.png

2.4.2.3 创建并设置共享文件夹

  1. mkdir /liang
  2. chown -R mfs:mfs /liang

2.4.3 启动服务

  1. systemctl start moosefs-chunkserver
  2. systemctl enable moosefs-chunkserver

2.4.4 验证服务是否启动成功

  1. netstat -ntap | grep mfs

20210617101412358.png

2.5 安装Client

项目中的两台Client的搭建步骤是完全相同

2.5.1 安装软件

  1. curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
  2. curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo //添加适当的库条目
  3. yum install moosefs-client -y

2.5.2 加载fuse模块到内核

  1. modprobe fuse

2.5.3 挂载共享目录

  1. mkdir /opt/mfs //创建挂载点
  2. mfsmount /opt/mfs/ -H 192.168.10.151 //挂载,地址为master地址

2.5.4 查看挂载

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZaW5IZVpoaUd1YW5n_size_16_color_FFFFFF_t_70

3 MFS监控

  1. Mfscgiserv是一个用[Python][]编写的web服务器,监听端口是9425,可以在Master Server启动监控,用户利用浏览器就可以全面监控所有客户挂载、Chunk ServerMaster Server,以及客户端的各种操作等。

3.1 主服务器上开启监控

  1. mfscgiserv
  2. 主服务器即安装Master Server的服务器。

Yum简单安装MFS分布式文件系统

3.2 MFS监控查看安装状况

  1. http://192.168.10.151:9425/mfs.cgi

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZaW5IZVpoaUd1YW5n_size_16_color_FFFFFF_t_70 1

在这里,我们也可以看到两个Chunk服务以及两个客户端的信息

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZaW5IZVpoaUd1YW5n_size_16_color_FFFFFF_t_70 2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZaW5IZVpoaUd1YW5n_size_16_color_FFFFFF_t_70 3

3.3 数据拷贝的各个服务验证

3.3.1 拷贝前各个服务的情况

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZaW5IZVpoaUd1YW5n_size_16_color_FFFFFF_t_70 4

3.3.2 拷贝文件后的效果

在192.168.10.151的/opt/mfs文件夹下拷贝一个文件,查看效果。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ZaW5IZVpoaUd1YW5n_size_16_color_FFFFFF_t_70 5

发表评论

表情:
评论列表 (有 0 条评论,321人围观)

还没有评论,来说两句吧...

相关阅读