如何搭建MFS分布式文件系统(二)

chunkServer数据储存节点上的操作记录
1)关闭防火墙(selinux也要关闭,执行setenforce 0)
[iyunv@chunkServer1 ~]# /etc/init.d/iptables stop
2)创建mfs用户和组
[iyunv@chunkServer1 ~]# useradd mfs -s /sbin/nologin
3)编译安装mfs(下载地址在上面已经提到)
[iyunv@chunkServer1 ~]# yum install -y gcc c++ zlib-devel
[iyunv@chunkServer1 ~]# tar -zxvf moosefs-3.0.91-1.tar.gz
[iyunv@chunkServer1 ~]# cd moosefs-3.0.91
[iyunv@chunkServer1 moosefs-3.0.91]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[iyunv@chunkServer1 moosefs-3.0.91]# make && make install
[iyunv@chunkServer1 moosefs-3.0.91]# cd /usr/local/mfs/etc/mfs/
[iyunv@chunkServer1 mfs]# ls
mfschunkserver.cfg.sample mfsexports.cfg.sample mfshdd.cfg.sample mfsmaster.cfg.sample mfsmetalogger.cfg.sample mfstopology.cfg.sample
4)chunkserver配置文件如下:
mfschunkserver.cfg 这个是mfschunkserver配置文件
mfshdd.cfg 这个是mfschunkserver上的分区,必须是独立分区!
[iyunv@chunkServer1 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[iyunv@chunkServer1 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 182.48.115.233 //这个填写master管理节点的ip或主机名
MASTER_PORT = 9420
[iyunv@chunkServer1 mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[iyunv@chunkServer1 mfs]# vim mfshdd.cfg //在文件尾行添加下面两行内容

/usr/local/mfsdata //由于mfschunkserver上的分区需要是独立分区!所以这里最好配置成独立分区。比如/data (df -h命令查看,/data要是独立分区)
[iyunv@chunkServer1 mfs]# mkdir /usr/local/mfsdata //这个是数据的真实存放目录。里面存放的是数据的chunks块文件
[iyunv@chunkServer1 mfs]# chown -R mfs:mfs /usr/local/mfsdata/
[iyunv@chunkServer1 mfs]# cd …/…/var/mfs/
[iyunv@chunkServer1 mfs]# ls
metadata.mfs.empty
[iyunv@chunkServer1 mfs]# cp metadata.mfs.empty metadata.mfs
[iyunv@chunkServer1 mfs]# chown -R mfs:mfs /usr/local/mfs
5)启动chunkserver
[iyunv@chunkServer1 mfs]# ln -s /usr/local/mfs/sbin/mfschunkserver /etc/init.d/mfschunkserver
[iyunv@chunkServer1 mfs]# /etc/init.d/mfschunkserver start
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
setting glibc malloc arena max to 4
setting glibc malloc arena test to 4
initializing mfschunkserver modules …
hdd space manager: path to scan: /usr/local/mfsdata/
hdd space manager: start background hdd scanning (searching for available chunks)
main server module: listen on *:9422
no charts data file - initializing empty charts
mfschunkserver daemon initialized properly
[iyunv@chunkServer1 mfs]# ps -ef|grep mfs
mfs 13843 1 1 13:30 ? 00:00:00 /etc/init.d/mfschunkserver start
root 13853 4768 0 13:31 pts/0 00:00:00 grep mfs
[iyunv@chunkServer1 mfs]# lsof -i:9422 #防火墙开启这个端口的访问
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mfschunks 13843 mfs 11u IPv4 54792 0t0 TCP *:9422 (LISTEN)

4)mfs client客户端上的操作记录

1)mfs client安装依赖与系统包fuse,通过yum方式安装(也可以源码安装)
[iyunv@clinet-server ~]# yum -y install fuse fuse-devel
2)创建mfs用户和组
[iyunv@clinet-server ~]# useradd mfs -s /sbin/nologin
3)编译安装mfs
[iyunv@clinet-server ~]# yum install -y gcc c++ zlib-devel
[iyunv@clinet-server ~]# tar -zvxf moosefs-3.0.91-1.tar.gz
[iyunv@clinet-server ~]# cd moosefs-3.0.91
[iyunv@clinet-server moosefs-3.0.91]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
[iyunv@clinet-server moosefs-3.0.91]# make && make install
4)创建mfs挂载目录
[iyunv@clinet-server ~]# mkdir /mnt/mfs //这个是挂载的数据目录,挂载目录可以在客户机上任意定义
[iyunv@clinet-server ~]# mkdir /mnt/mfsmeta //这个是挂载的回收站目录
5)mfs client 挂载命令
[iyunv@clinet-server ~]# /usr/local/mfs/bin/mfsmount /mnt/mfs -H 182.48.115.233 //挂载MFS文件系统的根目录到本机的/mnt/mfs下
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[iyunv@clinet-server ~]# /usr/local/mfs/bin/mfsmount -m /mnt/mfsmeta/ -H 182.48.115.233 //挂载MFS文件系统的mfsmeta,使用回收站功能
mfsmaster accepted connection with parameters: read-write,restricted_ip

#https://www.iyunv.com/thread-384506-1-1.html
182.48.115.0/27 / rw,alldirs,maproot=0

  •                   .          rw                        
    

设置解释:
第一个设置,代表让182.48.115.0网段机器可以挂载mfs的根分区;如果将"/“改为”."符号则表示允许访问所有
注意这里机器的netmask是255.255.255.224,所以子网掩码是27位,如果是255.255.255.0,那么掩码就是24位。
第二个设置是允许客户端挂载使用回收站功能。如果决定了挂载mfsmeta,那么一定要在mfsmaster的mfsexport.cfg文件中添加这条记录:
权限说明:
ro 只读模式
rw 读写模式
alldirs 允许挂载任何指定的子目录
maproot 映射为root,还是指定的用户
参数解释:
META_DOWNLOAD_FREQ 表示源数据备份下载请求频率,这里设置为1小时。默认为24小时,即每隔一天从元数据服务器(MASTER)下载一个metadata.mfs.back 文件。
当元数据服务器关闭或者出故障时,matedata.mfs.back 文件将消失,那么要恢复整个mfs,则需从metalogger 服务器取得该文件。请特别注意这个文件,它与日志
文件(即changelog_ml.0.mfs文件)一起,才能够恢复整个被损坏的分布式文件系统。元数据日志服务器的备份数据存放目录是/usr/local/mfs/var/mfs/。

5)MFS日常操作(都在client端下操作)
回收站功能

mfs文件系统是正规的mfs挂载系统,里面包含了所有的mfs存储的文件与目录。
mfsmeta文件系统是mfs提供用于辅助的文件系统,相当于windows的回收站。
如上,在clinet端启动管理服务器进程时,用了一个-m选项,这样可以挂载一个辅助的文件系统mfsmeta,辅助文件系统可以在如下两个方面恢复丢失的数据:
1)MFS卷上误删除了文件,而此文件又没有过垃圾文件存放期。
2)为了释放磁盘空间而删除或者移动的文件,当需要恢复这些文件时,文件又没有过垃圾文件的存放期。
要使用MFS辅助文件系统,可以执行如下指令:
需要注意的是,如果决定了挂载mfsmeta,那么一定要在mfsmaster的mfsexport.cfg文件中添加下面这条记录(前面已提到):

  •       .                   rw
    

挂载文件系统就可以执行所所有标准的文件操作了。如创建,删除,复制,重命名文件等。MFS由于是一个网络文件系统,所以操作进度比本地的偏慢。
需要注意的是,每个文件都可以存储为多个副本,在这种情况下,每一个文件所占用的空间要比其他文件本身大的多,此外,被删除且在有效期内的文件都放在
一个“垃圾箱”中,所以他们也占用的空间,其大小也依赖文件的分钟。。为防止删除被其他进程打开的文件,数据将一直被存储,直到文件被关闭。
被删文件的文件名在“垃圾箱”目录里还可见,文件名由一个八位十六进制的数i-node 和被删文件的文件名组成,在文件名和i-node 之间不是用“/”,而是用了“|”替代。
如果一个文件名的长度超过操作系统的限制(通常是255 个字符),那么部分将被删除。通过从挂载点起全路径的文件名被删除的文件仍然可以被读写。
移动这个文件到trash/undel 子目录下,将会使原始的文件恢复到正确的MooseFS 文件系统上路径下(如果路径没有改变)。如果在同一路径下有个新的同名文件,
那么恢复不会成功。从“垃圾箱”中删除文件结果是释放之前被它站用的空间(删除有延迟,数据被异步删除)。
删除的文件通过一个单独安装的mfsmeta辅助文件系统来恢复。这个文件系统包含了目录trash(含有仍然可以被还原的删除文件的信息)和目录trash/undel(用于获取文件)。
只有管理员权限访问mfsmeta辅助文件系统(通常是root)

猜你喜欢

转载自blog.csdn.net/weixin_43546282/article/details/83992428