MFS分布式存储系统(2)-文件写入方式与文件恢复、存储类

一、文件写入方式与文件恢复

1.文件写入

mfs默认的单个chunk大小为50M,如果写入文件大于50M,则mfs会为其分配多个chunk来存储
mfs写入过程图解:
在这里插入图片描述
在这里插入图片描述

2.文件恢复

[root@foundation1 mfs]# cd dir1
[root@foundation1 dir1]# ls
passwd
[root@foundation1 dir1]# rm -rf passwd     %删除passwd文件
[root@foundation1 dir1]# ls
[root@foundation1 dir1]# cd
[root@foundation1 mnt]# mkdir mfsmeta      %创建元数据目录
[root@foundation1 mnt]# cd mfsmeta/
[root@foundation1 mfsmeta]# ls     
[root@foundation1 mfsmeta]# mfsmount -m /mnt/mfsmeta/       %-m参数是指定元数据的意思  
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@foundation1 mfsmeta]# df
Filesystem                        1K-blocks     Used Available Use% Mounted on
devtmpfs                            3924804        0   3924804   0% /dev
tmpfs                               3940708    18720   3921988   1% /dev/shm
tmpfs                               3940708    10044   3930664   1% /run
tmpfs                               3940708        0   3940708   0% /sys/fs/cgroup
/dev/mapper/rhel_foundation1-root 225251880 73165968 152085912  33% /
/dev/sda1                           1038336   683544    354792  66% /boot
tmpfs                                788140       32    788108   1% /run/user/1000
/dev/loop0                          4391278  4391278         0 100% /var/www/html/rhel7.6
mfsmaster:9421                     20948992   590656  20358336   3% /mnt/mfs
[root@foundation1 mfsmeta]# ls
sustained  trash
[root@foundation1 mfsmeta]# cd trash/
[root@foundation1 trash]# ls
[root@foundation1 trash]# ls | wc -l
4097
[root@foundation1 trash]# find -name *passwd*
./004/00000004|dir1|passwd
[root@foundation1 trash]# cd 004/
[root@foundation1 004]# ls
'00000004|dir1|passwd'   undel
[root@foundation1 004]# mv 00000004\|dir1\|passwd undel/       %相当于撤销的动作
[root@foundation1 004]# cd /mnt/mfs/dir1/
[root@foundation1 dir1]# ls      %删除的文件已经恢复
passwd

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

二、存储类

master内存的开销主要取决于整个分布式文件系统中文件的数量而不是大小,cpu的消耗主要来源于用户的操作。为了更合理的利用系统资源,我们需要来创建存储类来对存储进行管理

1.添加chunk server节点

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

1.示例1

更改chunk server配置文件,添加LABEL:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@foundation1 mfs]# cd dir2
[root@foundation1 dir2]# ls
bigfile  fstab
[root@foundation1 dir2]# mfsscadmin create 2A class_2A     %创建存储类,2A表示存两份,两份都在有标签A的节点上
storage class make class_2A: ok
[root@foundation1 dir2]# mfsscadmin create AB class_AB     %AB表示存一份,在具有A和B标签的节点上
storage class make class_AB: ok
[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]# mfssetsclass class_2A fstab         %设置文件的存储类
fstab: storage class: 'class_2A'
[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.4:9422 (status:VALID)
[root@foundation1 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000003_00000001 / (id:3 ver:1)
		copy 1: 172.25.0.2:9422 (status:VALID)
		copy 2: 172.25.0.3:9422 (status:VALID)
	chunk 1: 0000000000000004_00000001 / (id:4 ver:1)
		copy 1: 172.25.0.2:9422 (status:VALID)
		copy 2: 172.25.0.3:9422 (status:VALID)
[root@foundation1 dir2]# mfssetsclass class_AB bigfile 
bigfile: storage class: 'class_AB'
[root@foundation1 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000003_00000001 / (id:3 ver:1)
		copy 1: 172.25.0.3:9422 (status:VALID)
	chunk 1: 0000000000000004_00000001 / (id:4 ver:1)
		copy 1: 172.25.0.3:9422 (status:VALID)
[root@foundation1 dir2]# mfsscadmin delete class_AB       %删除存储类
storage class remove class_AB: error: Class in use
[root@foundation1 dir2]# mfsscadmin create A,B classAB    %A,B表示存两份,一份在具有标签A的节点上,一份在具有标签B的节点上
storage class make classAB: ok
[root@foundation1 dir2]# mfssetsclass classAB bigfile
bigfile: storage class: 'classAB'
[root@foundation1 dir2]# mfsscadmin delete class_AB
storage class remove class_AB: ok
[root@foundation1 dir2]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 0000000000000003_00000001 / (id:3 ver:1)        %因为bigfile为100M大小,因此分为两个chunk(块)来存
		copy 1: 172.25.0.3:9422 (status:VALID)
		copy 2: 172.25.0.4:9422 (status:VALID)
	chunk 1: 0000000000000004_00000001 / (id:4 ver:1)
		copy 1: 172.25.0.3:9422 (status:VALID)
		copy 2: 172.25.0.4:9422 (status:VALID)

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

2.示例2

server2上:
[root@server2 mfs]# vim mfschunkserver.cfg
LABELS = A S   %更改标签
[root@server2 mfs]# systemctl reload moosefs-chunkserver.service 

server3上:
[root@server3 mfs]# vim mfschunkserver.cfg
LABELS = A B S H  %更改标签
[root@server3 mfs]# systemctl reload moosefs-chunkserver.servic512e 

server4上:
[root@server4 ~]# vim /etc/mfs/mfschunkserver.cfg
LABELS = A H   %更改标签
[root@server4 ~]# systemctl reload moosefs-chunkserver.service

客户端:
[root@foundation1 dir2]# mfsscadmin create AS,BS class_ASBS         %创建存储类
storage class make class_ASBS: ok
[root@foundation1 dir2]# ls
bigfile  fstab
[root@foundation1 dir2]# mfssetsclass class_ASBS fstab              %设置文件以指定存储类型存储
fstab: storage class: 'class_ASBS'
[root@foundation1 dir2]# mfsfileinfo fstab 
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.1.2:9422 (status:VALID)
		copy 2: 172.25.1.3:9422 (status:VALID)
[root@foundation1 dir2]# mfsscadmin create BS,2A[S+H] class4
storage class make class4: ok
[root@foundation1 dir2]# mfssetsclass class4 fstab 
fstab: storage class: 'class4'
[root@foundation1 dir2]# mfsfileinfo fstab 
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.1.2:9422 (status:VALID)
		copy 2: 172.25.1.3:9422 (status:VALID)
		copy 3: 172.25.1.4:9422 (status:VALID)
[root@foundation1 dir2]# mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 30 class5   %表示创建一个存储类class5,存储两份,在AS上,-K参数指定数据保留在AS和BS上各一份,-d指定30天后,-A指定迁移到AH和BH上
storage class make class5: ok
[root@foundation1 dir2]# mfssetsclass class5 fstab 
fstab: storage class: 'class5'
[root@foundation1 dir2]# mfsfileinfo fstab 
fstab:
	chunk 0: 0000000000000002_00000001 / (id:2 ver:1)
		copy 1: 172.25.1.2:9422 (status:VALID)
		copy 2: 172.25.1.3:9422 (status:VALID)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值