MFS常用操作
MFS客户端安装完毕后,会在mfs/bin 下生成很多命令时用户需要的,如核心命令
mfstools
/usr/local/mfs/bin/:
mfsappendchunks mfsfileinfo mfsgettrashtime mfsrgettrashtime mfssetgoal
mfscheckfile mfsfilerepair mfsmakesnapshot mfsrsetgoal mfssettrashtime
mfsdeleattr mfsgeteattr mfsmount mfsrsettrashtime mfssnapshot
mfsdirinfo mfsgetgoal mfsrgetgoal mfsseteattr mfstools
可以把以上命令cp 到/bin下,或者 将/usr/local/mfs/bin/ 添加到用户的环境变量中去!
[root@12 ~]# tail -6 .bash_profile
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
MFS_COMM=/usr/local/mfs/bin
PATH=$MFS_COMM:$PATH
----------------------------------------------------------------------
mfsgetgoal mfssetgoal 命令
目标(goal)是指文件被复制的份数,设定了复制的份数就可以通过mfsgetgoal来查看
也可以通过mfssetgoal来改变设定
例子:
[root@12 /]# mfsgetgoal /mnt/mfs/file1
/mnt/mfs/file1: 1
[root@12 /]# mfssetgoal 3 /mnt/mfs/file1
/mnt/mfs/file1: 3
[root@12 /]# mfsgetgoal /mnt/mfs/file1
/mnt/mfs/file1: 3
------------------------------
利用mfsgetgoal mfssetgoal -r可以对整个树形目录进行递归操作
例子:
[root@12 mfs]# mfsgetgoal -r /mnt/mfs/
/mnt/mfs/:
files with goal 3 : 1
directories with goal 3 : 2
[root@12 mfs]# mfssetgoal -r 6 /mnt/mfs
/mnt/mfs:
inodes with goal changed: 3
inodes with goal not changed: 0
inodes with permission denied: 0
[root@12 mfs]# mfsgetgoal -r /mnt/mfs/
/mnt/mfs/:
files with goal 6 : 1
directories with goal 6 : 2
[root@12 mfs]# mfsgetgoal mfssetgoal
-------------------------------------------------------------------------
mfscheckfile mfsfileinfo 命令
实际的副本份数可以通过mfscheckfile和mfsfileinfo命令来证实
如:
为了演示效果,在加一台chunkserver
命令如下,再次就比细说了,
tar -xf mfs-1.6.11.tar.gz
cd mfs-1.6.11
useradd mfs -s /sbin/nologin
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make ; make install
fdisk /dev/sdb
mkfs.ext3 /dev/sdb1
partprobe
mkdir /data
mount /dev/sdb1 /data/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
vim mfschunkserver.cfg
vim mfshdd.cfg
service iptables stop
/usr/local/mfs/sbin/mfschunkserver start
/usr/local/mfs/sbin/mfschunkserver start
chown mfs:mfs /data/
/usr/local/mfs/sbin/mfschunkserver start
[root@12 mfs]# mfscheckfile /mnt/mfs/file1
/mnt/mfs/file1:
2 copies: 1 chunks
[root@12 mfs]# mfsfileinfo /mnt/mfs/file1
/mnt/mfs/file1:
chunk 0: 000000000000010B_00000001 / (id:267 ver:1)
copy 1: 192.168.3.11:9422
copy 2: 192.168.3.13:9422
注意如果是一个零长度或者说不包含数据的文件,虽然没有被设置成非零目标,但是查询后返回的是一个空结果
例如:
[root@12 mfs]# mfsfileinfo emputy_file
emputy_file:
[root@12 mfs]# echo testfile > emputy_file
[root@12 mfs]# mfsfileinfo emputy_file
emputy_file:
chunk 0: 000000000000010C_00000001 / (id:268 ver:1)
copy 1: 192.168.3.11:9422
copy 2: 192.168.3.13:9422
文件清空后副本依然存在
对于一个目录设定“目标”,此目录下新创建的文件盒子目录均会继承此目录的设定,但不会改变已经存在的文件及目录的副本份数
如:
[root@12 mfs]# mkdir zhoutao
[root@12 mfs]# cd zhoutao
[root@12 zhoutao]# touch 1
[root@12 zhoutao]# echo zhoutao1 > 1
[root@12 zhoutao]# mfsfileinfo 1
1:
chunk 0: 0000000000000112_00000001 / (id:274 ver:1)
copy 1: 192.168.3.11:9422
[root@12 zhoutao]# cd ..
[root@12 mfs]# mfssetgoal 2 zhoutao/
zhoutao/: 2
[root@12 mfs]# cd zhoutao/
[root@12 zhoutao]# touch 2
[root@12 zhoutao]# echo zhoutao2 > 2
[root@12 zhoutao]# mfsfileinfo 2
2:
chunk 0: 0000000000000113_00000001 / (id:275 ver:1)
copy 1: 192.168.3.11:9422
copy 2: 192.168.3.13:9422
mfsdirinfo可以显示整个目录树的内容摘要,
如:
[root@12 mfs]# mfsdirinfo zhoutao/
zhoutao/:
inodes: 3
directories: 1
files: 2
chunks: 2
length: 18 #表示文件大小的综合
size: 141312 #表示快长度综合
realsize: 211968 #表示磁盘空间的使用,包括所有副本
为垃圾箱设定隔离时间
删除文件存放在垃圾箱 (trash bin )的时间就是隔离时间(quarantine time ) ,这个时间可以用mfsgettrashtime命令来验证
用mfsettrashtime命令来设置
如:
[root@12 mfs]# mfsgettrashtime zhoutao/
zhoutao/: 86400
[root@12 mfs]# mfssettrashtime 0 zhoutao/1 #数字0意味着一个文件被删除后,就是被彻底删除的
zhoutao/1: 0
[root@12 mfs]# mfssettrashtime 60 zhoutao/1
zhoutao/1: 60
[root@12 mfs]# mfssettrashtime 0 zhoutao/2
zhoutao/2: 0
[root@12 mfs]#
[root@12 mfs]# mfssettrashtime -r 1209600 zhoutao/ (-r 可以对整个目录递归处理)
zhoutao/:
inodes with trashtime changed: 3
inodes with trashtime not changed: 0
inodes with permission denied: 0
[root@12 mfs]# mfsgettrashtime zhoutao/2
zhoutao/2: 1209600 #之前做的设置被覆盖了
[root@12 mfs]# mfsgettrashtime zhoutao/1
zhoutao/1: 1209600 #同理如上,设置被zhoutao这个目录覆盖了
[root@12 mfs]#
被删除的文件可以再垃圾箱中找到
例子:
[root@12 mfs]# mfssettrashtime 999999 zhoutao/1
zhoutao/1: 999999
[root@12 mfs]# mfsgettrashtime zhoutao/1
zhoutao/1: 999999
[root@12 mfs]# rm -rf zhoutao/1
[root@12 mfs]# ls zhoutao/1
ls: zhoutao/1: No such file or directory
[root@12 mfs]# ls -l /mnt/mfsmeta/trash/
00000009|test|1 0000000C|dir|1 undel/
0000000A|test|2 0000000E|zhoutao|1
被删除的文件在使用全路径文件名,一定要单引号引起来,例如:
[root@12 mfs]# cat '/mnt/mfsmeta/trash/0000000E|zhoutao|1'
zhoutao/1
文件的恢复
[root@12 mfs]# mv '/mnt/mfsmeta/trash/0000000E|zhoutao|1' /mnt/mfsmeta/trash/undel/
[root@12 mfs]# ls zhoutao/
1 2
快照
MFS系统的另外一个特征是利用命令mfsmakesnapshot给文件或者目录树做快照
如:
[root@12 mfs]# mfsmakesnapshot zhoutao/1 /mnt/mfs/snapzhoutao1
[root@12 mfs]# mfsmakesnapshot zhoutao /mnt/mfs/snapzhoutao
[root@12 mfs]# ls
1 emputy_file file1 snapzhoutao snapzhoutao1 zhoutao
注意:
1:对于一个MFS系统下的文件做快照,查看两个文件的快信息,他们是同一块,如果把源文件删除,删除后的原文件,快照文件依然存在,并且可以访问,
使用mfsfileinfo 查看,发现任然是原来的快,
2:对于一个文件做快照后,查看两个文件的快信息,发现时用一个快,原文件修改后,发现原文件使用的快信息变了,而快照文件仍然使用原来的快,且保持文件内容不变
转载于:https://blog.51cto.com/fghjk/829367