mfs存储集群配置

什么是MFS?

MooseFS是一个容错,高可用,高性能,扩展,网络分布式文件系统。它将数据分布在多个物理商品服务器上,这些服务器对用户可视为一个虚拟磁盘。它符合POSIX并且像任何其他类Unix文件系统一样支持:

  • 分层结构:文件和文件夹,
  • 文件属性,
  • 特殊文件:管道,插座,块和字符设备,
  • 符号和硬链接,
  • 安全属性和ACL。
    它适用于需要标准文件系统的所有应用程序。

分布式原理

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

MFS原理

MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是统一的资源。

MFS文件系统的组成

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

MFS读取数据的处理过程

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

MFS写入数据的处理过程

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

MFS优势

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

官方源: https://moosefs.com/download/

一、前提准备

每个节点执行

[root@master ~]# systemctl stop firewall.service
[root@master ~]# setenforce 0
[root@master ~]# curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
[root@master ~]# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
二、master
[root@master ~]# yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y
[root@master ~]# systemctl start moosefs-master
[root@master ~]# systemctl enable moosefs-master
Created symlink from /etc/systemd/system/multi-user.target.wants/moosefs-master.service to /usr/lib/systemd/system/moosefs-master.service.
[root@master ~]# netstat -ntap | grep mfs
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      6527/mfsmaster
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      6527/mfsmaster
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      6527/mfsmaster
[root@master ~]#

三、搭建MetalLogger Server
[root@metallogger ~]# yum install moosefs-metalogger -y
[root@metallogger ~]# vim /etc/mfs/mfsmetalogger.cfg
[root@metallogger ~]# grep -i "master_host" /etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 192.168.40.11
[root@metallogger ~]# systemctl start moosefs-metalogger
[root@metallogger ~]# systemctl enable moosefs-metalogger
Created symlink from /etc/systemd/system/multi-user.target.wants/moosefs-metalogger.service to /usr/lib/systemd/system/moosefs-metalogger.service.
[root@metallogger ~]# netstat -ntap | grep mfs
tcp        0      0 192.168.40.12:35318     192.168.40.11:9419      ESTABLISHED 4892/mfsmetalogger
[root@metallogger ~]#
四、搭建Chunk Server

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

[root@server1 ~]# yum install moosefs-chunkserver -y
[root@server1 ~]# grep -i "master_host" /etc/mfs/mfschunkserver.cfg
MASTER_HOST = 192.168.40.11
[root@server1 ~]# tail -1 /etc/mfs/mfshdd.cfg
/jiang
[root@server1 ~]# mkdir /jiang
[root@server1 ~]# chown mfs:mfs /jiang
[root@server1 ~]# systemctl start moosefs-chunkserver
[root@server1 ~]# systemctl enable moosefs-chunkserver
Created symlink from /etc/systemd/system/multi-user.target.wants/moosefs-chunkserv                                                                                                       er.service to /usr/lib/systemd/system/moosefs-chunkserver.service.
[root@server1 ~]# netstat -ntap | grep mfs
tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      22                                                                                                       770/mfschunkserve
tcp        0      0 192.168.40.23:47333     192.168.40.11:9420      ESTABLISHED 22                                                                                                       770/mfschunkserve
[root@server1 ~]#
五、client
[root@client ~]# yum install moosefs-client -y
[root@client ~]# modprobe fuse
[root@client ~]# mkdir /mfs/jiang -p
[root@client ~]# mfsmount /mfs/jiang -H 192.168.40.11
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@client ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   36G  2.3G   34G   7% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G  8.5M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M  26% /boot
tmpfs                    378M     0  378M   0% /run/user/0
tmpfs                    1.9G     0  1.9G   0% /tmp
192.168.40.11:9421        37G  5.4G   32G  15% /mfs/jiang
[root@client ~]#
六、master节点开启web视图
[root@master ~]# mfscgiserv
lockfile created and locked
starting simple cgi server (host: any , port: 9425 , rootpath: /usr/share/mfscgi)
[root@master ~]#

七、创建文件测试
[root@client jiang]# mfsfileinfo 1.txt
1.txt:
        chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
                copy 1: 192.168.40.23:9422 (status:VALID)
                copy 2: 192.168.40.24:9422 (status:VALID)
[root@client jiang]#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值