目录
简介
角色
read
工作方式
write
mfs分布式文件系统搭建
master
chunk server
client
找回元数据
大文件存储分块
扩容
存储方式改变 标签
1.存储方式改变
2.修改标签及存储类别
3.对文件的保存和打包时间策略
简介
MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。从其对文件 *** 作的情况看,MooseFS就相当于一个类UNIX文件系统。
角色- MooseFS的文件系统结构体系可分为以下四种角色,分别对应不同的功能:
- 1.管理服务器managing server (master)
- 2.元数据日志服务器metalogger server(metalogger)
- 3.数据存储服务器data servers (chunkservers)
- 4.客户机挂载使用client computers
工作方式
如上图中 Master Server用三角形表示,Chunk Server用圆形表示,Client 用方形表示。整个读过程有以下四个步骤:
- 首先client客户端访问主服务器master,获取文件实体的位置等相关信息。
- 主服务器master查询缓存记录,把文件实体的位置等相关信息发给client客户端。
- Client客户端根据拿到的信息去访问对应的存储实体数据的服务器(data servers或者chunk servers)。
- 存储实体数据的服务器(data servers或者chunk servers)把对应的数据返回给Client客户端。
我们还可以看出,当多个MFS客户端读数据的时候,master服务器充当路由为这些客户端分发指路的作用,而数据的返回时由不同的数据服务器直接返回给请求的客户端,这样的模式可以极大的减轻主服务器的系统及网络瓶颈,增加了整个系统的吞吐。
writeMooseFS文件系统写过成比读过成相对复杂的多,如上图:
- Client客户端访问主服务器master,请求写入数据。
- 主服务器master查询缓存记录,如果是新文件,则会联系后面的数据服务器创建对应的chunk对象准备存放文件。
- 数据服务器返回创建对应的chunk对象成功给主服务器。
- 主服务器master把文件实体的位置等相关信息发给client客户端。
- Client客户端访问对应的数据服务器写数据。
- 数据服务器之间进行数据同步,互相确认成功。
- 数据服务器返回成功写入信息给Client客户端。
- Client客户端回报给主服务器master写入结束
下载网站https://moosefs.com/download/
vm1
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y 报错,修改gpgcheck=0
vm2,vm3
yum install moosefs-chunkserver -y
配置
vm1
[root@vm1 yum.repos.d]# cd /etc/mfs/ [root@vm1 mfs]# ls mfsexports.cfg mfsmaster.cfg mfstopology.cfg mfsexports.cfg.sample mfsmaster.cfg.sample mfstopology.cfg.sample [root@vm1 mfs]# vim mfsmaster.cfg 配置文件不修改 [root@vm1 mfs]# systemctl start moosefs-master [root@vm1 mfs]# netstat -antlp 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 4355/mfsmaster tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 4355/mfsmaster tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 4355/mfsmaster tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3208/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3307/master tcp 0 0 172.25.7.5:22 172.25.7.250:41282 ESTABLISHED 4093/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 3208/sshd tcp6 0 0 ::1:25 :::* LISTEN 3307/master [root@vm1 mfs]# systemctl start moosefs-cgiserv.service [root@vm1 mfs]# netstat -antlp 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 4355/mfsmaster tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 4355/mfsmaster tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 4355/mfsmaster tcp 0 0 0.0.0.0:9425 0.0.0.0:* LISTEN 4456/python2 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3208/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3307/master tcp 0 0 172.25.7.5:9420 172.25.7.6:36964 ESTABLISHED 4355/mfsmaster tcp 0 0 172.25.7.5:9420 172.25.7.7:42104 ESTABLISHED 4355/mfsmaster tcp 0 0 172.25.7.5:22 172.25.7.250:41282 ESTABLISHED 4093/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 3208/sshd tcp6 0 0 ::1:25 :::* LISTEN 3307/masterchunk server
vm2,3
[root@vm3 ~]# cd /etc/mfs/ [root@vm3 mfs]# ls mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample [root@vm3 mfs]# vim mfschunkserver.cfg 配置文件不修改 [root@vm3 mfs]# vim /etc/hosts 所有节点都要有 [root@vm3 mfs]# scp /etc/hosts vm1:/etc/hosts [root@vm3 mfs]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.25.254.7 www.students72.nodec.org 172.25.7.250 students72.nodec.org 172.25.7.1 server1 172.25.7.2 server2 172.25.7.3 server3 172.25.7.4 server4 172.25.7.5 vm1 mfsmaster 172.25.7.6 vm2 172.25.7.7 vm3 172.25.7.8 vm4 172.25.7.9 vm5 [root@vm3 mfs]# systemctl start moosefs-chunkserver
http://172.25.7.5:9425访问浏览器
把vm2加进去
[root@vm2 yum.repos.d]# cd /etc/mfs/ [root@vm2 mfs]# ls mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample [root@vm2 mfs]# mkdir /mnt/chunk1 [root@vm2 mfs]# chown mfs.mfs /mnt/chunk1 [root@vm2 mfs]# ll -d /mnt/chunk1 drwxr-xr-x 2 mfs mfs 6 Dec 27 11:34 /mnt/chunk1 [root@vm2 mfs]# systemctl restart moosefs-chunkserver vim mfshdd.cfg 将/mnt/chunk1写进去 最好挂载磁盘
vm3
[root@vm3 mfs]# systemctl start moosefs-chunkserver
[root@vm3 mfs]# cd /etc/mfs/
[root@vm3 mfs]# mkdir /mnt/chunk2
[root@vm3 mfs]# chown mfs.mfs /mnt/chunk2/
[root@vm3 mfs]# ll -d /mnt/chunk2/
drwxr-xr-x 2 mfs mfs 6 Dec 27 11:41 /mnt/chunk2/
[root@vm3 mfs]# ls
mfschunkserver.cfg mfschunkserver.cfg.sample mfshdd.cfg mfshdd.cfg.sample
[root@vm3 mfs]# vim mfshdd.cfg
[root@vm3 mfs]# vim mfshdd.cfg
[root@vm3 mfs]# systemctl restart moosefs-chunkserver
[root@vm3 mfs]#
used%都有值
client用本机rhel8.2安装client
[root@students72 ~]# curl "http://ppa.moosefs.com/MooseFS-3-el8.repo" > /etc/yum.repos.d/MooseFS.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 168 100 168 0 0 89 0 0:00:01 0:00:01 --:--:-- 89 [root@students72 ~]# cd /etc/yum.repos.d/ [root@students72 yum.repos.d]# ls MooseFS.repo redhat.repo rhel7.6.repo westos.repo [root@students72 yum.repos.d]# vim MooseFS.repo 修改grgcheck=0 [root@students72 yum.repos.d]# yum install moosefs-client -y vim /etc/hosts mfsmaster 本地解析
[root@students72 mfs]# mkdir /mnt/mfs
[root@students72 mfs]# vim /etc/mfs/mfsmount.cfg
[root@students72 mfs]# mfsmount 自动读取挂载
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@students72 mfs]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 3669344 0 3669344 0% /dev
tmpfs 3697640 176564 3521076 5% /dev/shm
tmpfs 3697640 119220 3578420 4% /run
tmpfs 3697640 0 3697640 0% /sys/fs/cgroup
/dev/nvme0n1p4 490819428 104072228 386747200 22% /
/dev/nvme0n1p2 1038336 226824 811512 22% /boot
/dev/nvme0n1p1 306584 32688 273896 11% /boot/efi
/dev/loop0 8238560 8238560 0 100% /var/www/html/westosir
/dev/loop1 4391278 4391278 0 100% /var/www/html/rhel7.6
tmpfs 739528 16 739512 1% /run/user/42
tmpfs 739528 184 739344 1% /run/user/1000
mfs#mfsmaster:9421 56579072 2858176 53720896 6% /mnt/mfs
[root@students72 mfs]# cd /mnt/mfs/ [root@students72 mfs]# mkdir dir1 [root@students72 mfs]# mkdir dir2 [root@students72 mfs]# cd dir1/ [root@students72 dir1]# cp /etc/passwd . [root@students72 dir1]# cd .. [root@students72 mfs]# ll total 978 drwxr-xr-x. 2 root root 1000280 Dec 28 01:07 dir1 drwxr-xr-x. 2 root root 1 Dec 28 01:06 dir2 [root@students72 mfs]# [root@students72 mfs]# mfsgetgoal dir1 一般默认为3 dir1: 2 [root@students72 mfs]# mfsgetgoal dir2 dir2: 2
修改副本
mfssetgoal -r 1 dir1/
查看件信息
把vm2的服务停掉
dir1中没有副本了
dir2中只有一个副本
重新开启恢复
[root@students72 dir1]# mfsgettrashtime passwd
回收时间
找回元数据master允许数据读写
元数据目录挂载
mkdir /mnt/mfsmeta mfsmount -m /mnt/mfsmeta/
mount查看
进入回收站
[root@students72 mfsmeta]# cd /mnt/mfsmeta/ [root@students72 mfsmeta]# ls sustained trash [root@students72 mfsmeta]# cd trash/ [root@students72 trash]# ls
find -name *passwd* 查找源数据 ls -id .. undel/ 硬连接
恢复数据
mv 00000004|dir1|passwd undel/大文件存储分块
dd if=/dev/zero of=bigfile bs=1M count=100 制作100K文件 大文件分成区块存储
扩容
增加新的节点
vim /etc/hosts yum install moosefs-chunkserver -y mkdir /mnt/chunk3 cd /etc/mfs/ ls vim mfshdd.cfg chown mfs.mfs /mnt/chunk3 systemctl start moosefs-chunkserver存储方式改变 标签 1.存储方式改变
vim /etc/mfs/mfschunkserver.cfg systemctl reload moosefs-chunkserver.service
3.4也修改标签
修改存储地
client
mfsscadmin create A,B AB_class 创建存储方式 mfsscadmin list mfssetsclass AB_class fstab 生效
对比前后存储方式发生了改变
2.修改标签及存储类别vim /etc/mfs/mfschunkserver.cfg
vm2
vm3
vm4
重启chunck 服务
如图标签已经被修改
mfsscadmin create AS,2H[A+B] 2s_class mfssetsclass -r 2s_class fstab mfsfileinfo fstab
3.对文件的保存和打包时间策略
vm3
重启服务
[root@students72 dir2]# mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 7 3s_class storage class make 3s_class: ok [root@students72 dir2]# mfssetsclass -r 3s_class fstab fstab: inodes with storage class changed: 1 inodes with storage class not changed: 0 inodes with permission denied: 0 [root@students72 dir2]# mfsfileinfo fstab fstab: chunk 0: 0000000000000002_00000001 / (id:2 ver:1) copy 1: 172.25.7.6:9422 (status:VALID) copy 2: 172.25.7.7:9422 (status:VALID)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)