MFS分布式存储系统(1)-系统部署

一、简介

MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
MFS的组成:
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。所谓元数据记录的是整个分布式文件系统的变化,比如说记录文件存储在哪个主机,有多少个副本、每个文件大小多少、文件名字、文件被分成多少个块儿进行存储等信息,这些数据消耗的是服务器的内存资源,因此元数据不在于存储的数据有多大,而在于其数量。
元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。
数据存储服务器(Chunk Server):真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。
客户端(Client): 可以像挂载NFS一样 挂载MFS文件系统
详细参考链接:https://blog.51cto.com/u_13555423/2082796.

二、系统部署

我们先要准备三台全新的虚拟机:server1、2、3,server1做master,2和3做chunk server

1.镜像源配置、下载

官方网站:https://moosefs.com/download/#current.

[root@server1 ~]# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# ls
MooseFS.repo  redhat.repo  rhel7.6.repo
[root@server1 yum.repos.d]# vim MooseFS.repo       %设置gpgcheck=0
[root@server1 yum.repos.d]# yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y     %安装相关rpm包

在这里插入图片描述

复制源到其它两个结点上:
[root@server1 yum.repos.d]# scp MooseFS.repo server2:/etc/yum.repos.d/
[root@server1 yum.repos.d]# scp MooseFS.repo server3:/etc/yum.repos.d/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.master部署、启动服务

[root@server1 mfs]# vim /etc/hosts         %添加server1的解析mfsmaster
[root@server1 mfs]# scp /etc/hosts server2:/etc/     
[root@server1 mfs]# scp /etc/hosts server3:/etc/
[root@server1 mfs]# systemctl start moosefs-master.service       %启动服务
[root@server1 mfs]# yum install -y net-tools
[root@server1 mfs]# netstat -antulp        %查看开启的端口
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      13463/mfsmaster     
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      13463/mfsmaster     
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      13463/mfsmaster     
[root@server1 mfs]# systemctl start moosefs-cgiserv.service      %开启相关cgi服务(提供可视化界面)
[root@server1 mfs]# netstat -antulp       %新增下面的端口
tcp        0      0 0.0.0.0:9425            0.0.0.0:*               LISTEN      13563/python2       
此时浏览器访问172.25.1.1:9425/mfs.cgi可以看到mfs.info页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.chunk server部署、启动服务

chunk server是真正存储数据的地方,在这里我们首先要划出来一个区域来提供存储,生产环境中一般选择添加一块儿硬盘设备来作为存储挂载点,而不是直接挂载到系统根分区上。这样的存储方式具有很好的隔离性,并且当服务器出现故障时,只需要把硬盘设备取出放置在其它主机上即可,数据不会因系统故障而丢失

server2上:
1、添加一块儿10G的硬盘并设置分区、格式化文件系统,设置开机自动挂载
2、做相关存储设置,并启动服务
[root@server2 yum.repos.d]# yum install moosefs-chunkserver
[root@server2 yum.repos.d]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc44a0076.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc44a0076

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    20971519    10484736   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@server2 yum.repos.d]# mkfs.xfs /dev/vdb1          %格式化文件系统
[root@server2 yum.repos.d]# mkdir /mnt/chunk1           %创建挂载目录
[root@server2 yum.repos.d]# cd
[root@server2 ~]# chown mfs.mfs /mnt/chunk1/            %更改存储的用户及用户组
[root@server2 ~]# blkid                                 %查看设备uid,通过uid来设置开机自动挂载更为稳妥,因为设备名有可能会发生变化,开机启动系统时先加载哪块儿设备则哪块设备的后缀序号会命名为1,一次递增,因此设备名可能会发生变化
/dev/vda1: UUID="c1f6a043-6b4b-4ebe-b26a-8abe45863e5e" TYPE="xfs" 
/dev/vda2: UUID="GbfJPj-WnWt-kpde-YtOV-7NVG-BfWx-qc5BVC" TYPE="LVM2_member" 
/dev/mapper/rhel-root: UUID="769c645b-ba77-4138-864f-72d8f646b6f4" TYPE="xfs" 
/dev/mapper/rhel-swap: UUID="4ba5b817-3c3d-41aa-b88e-33f56bcdd38c" TYPE="swap" 
/dev/vdb1: UUID="f65e8121-23e6-44e5-96b6-b637525ee389" TYPE="xfs" 
[root@server2 ~]# vim /etc/fstab                %设置开机自动挂载
[root@server2 ~]# mount -a
[root@server2 ~]# df
[root@server2 ~]# systemctl start moosefs-chunkserver       %启动服务
[root@server2 ~]# netstat -antulp               %查看启动的端口
[root@server2 ~]# cd /etc/mfs/
[root@server2 mfs]# ls
mfschunkserver.cfg  mfschunkserver.cfg.sample  mfshdd.cfg  mfshdd.cfg.sample
[root@server2 mfs]# vim mfshdd.cfg         %编辑配置文件,指定mfs存储文件
/mnt/chunk1         %添加这行内容
[root@server2 mfs]# systemctl reload moosefs-chunkserver.service     %reload服务

`server3上和server2上一样的配置`

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.client端部署、启动服务

[root@foundation1 mnt]# yum install -y moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm   %先配置好源,然后下载相应rpm包
[root@foundation1 mnt]# vim /etc/hosts              %添加server1的mfsmaster解析
[root@foundation1 mnt]# cd /etc/mfs/
[root@foundation1 mfs]# ls
mfsmount.cfg  mfsmount.cfg.sample
[root@foundation1 mfs]# vim mfsmount.cfg            %/mnt/mfs注释打开
[root@foundation1 mfs]# cd
[root@foundation1 ~]# mkdir /mnt/mfs
[root@foundation1 ~]# mfsmount                      %挂载mfs存储
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@foundation1 ~]# df
Filesystem                        1K-blocks     Used Available Use% Mounted on
devtmpfs                            3924804        0   3924804   0% /dev
tmpfs                               3940708     9484   3931224   1% /dev/shm
tmpfs                               3940708    10036   3930672   1% /run
tmpfs                               3940708        0   3940708   0% /sys/fs/cgroup
/dev/mapper/rhel_foundation1-root 225251880 73110828 152141052  33% /
/dev/sda1                           1038336   683544    354792  66% /boot
tmpfs                                788140       36    788104   1% /run/user/1000
/dev/loop0                          4391278  4391278         0 100% /var/www/html/rhel7.6
mfsmaster:9421                     20948992   590592  20358400   3% /mnt/mfs

在这里插入图片描述
在这里插入图片描述

5.client端做存储测试

[root@foundation1 ~]# cd /mnt/mfs/
[root@foundation1 mfs]# ls
[root@foundation1 mfs]# mkdir dir1
[root@foundation1 mfs]# mkdir dir2
[root@foundation1 mfs]# mfsgetgoal dir1          %因为有两个chunk server,因此默认存储的数据备份两份,server2和server3上各一份
dir1: 2
[root@foundation1 mfs]# mfsgetgoal dir2
dir2: 2
[root@foundation1 mfs]# mfsgetgoal dir1
dir1: 2
[root@foundation1 mfs]# mfssetgoal -r 1 dir1     %备份的份数可以自己设置
dir1:
 inodes with goal changed:                       1
 inodes with goal not changed:                   0
 inodes with permission denied:                  0
[root@foundation1 mfs]# mfsgetgoal dir1
dir1: 1
[root@foundation1 mfs]# cp /etc/passwd dir1/
[root@foundation1 mfs]# cp /etc/fstab dir2/
[root@foundation1 mfs]# cd dir1
[root@foundation1 dir1]# mfsfileinfo passwd      %查看文件的存储分配信息
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.0.3:9422 (status:VALID)   %被分配存储到server3上
[root@foundation1 dir1]# cd ..
[root@foundation1 mfs]# cd dir2
[root@foundation1 dir2]# ls
fstab
[root@foundation1 dir2]# mfsfileinfo fstab 
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.0.2:9422 (status:VALID)
		copy 2: 172.25.0.3:9422 (status:VALID)
[root@foundation1 dir2]# mfsfileinfo fstab      %当某个存储节点down掉之后,另外一台节点上的存储不会收到影响
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.1.2:9422 (status:VALID)
[root@foundation1 dir2]# cd ..
[root@foundation1 mfs]# cd dir1
[root@foundation1 dir1]# mfsfileinfo passwd 
passwd:
	chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
		copy 1: 172.25.1.2:9422 (status:VALID)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值