实验名称:搭建mfs分布式存储
MFS的特点(我这里简单介绍一下): MooseFS[MFS]是一个具有容错性的网络分布式文件系统
。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
MFS的特征
1:层析结构(目录树)
2:存储文件属性(权限,访问和修改时间)
3:支持特殊文件(块设备,字符设备,管道)
4:支持符号链接,软硬链接
5:对文件系统访问可以通过IP地址或者密码进行访问限制
6:高可靠(数据的多个备份存储在不同的计算机上)
7:通过附加新的计算机或者硬盘可以实现容量的动态拓展
8:删除文件可以根据一个可配置的时间周期进行保留
9:不受访问和写入影响的文件连贯快照
应用场景
谈及MooseFS的应用场景,其实就是去谈分布式文件系统的应用场景。
1)大规模高并发的数据存储及访问(小文件、大文件),
2)大规模的数据处理,如日志分析
实验结构:
软件包:链接:https://pan.baidu.com/s/1Q1nCI3qTVMKDPX21cOduVQ
提取码:rqf0
实验步骤:
更改主机名:hostnamectl set-hostname master && bash…
三台同时上传软件包:rz
查看:ls
配置yum源(省略),安装依赖环境:yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
创建用户:useradd -s /sbin/nologin mfs
完毕后再master上操作
解压后进入解压目录:unzip moosefs-master.zip && cd moosefs-master
编译软件包:./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
;
[root@master moosefs-master]# make -j 4 && make install
查看生成的目录文件:cd /usr/local/mfs/etc/mfs/ && ll
备份文件:
[root@master mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg
[root@master mfs]# cp mfsexports.cfg.sample mfsexports.cfg
[root@master mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@master mfs]# cd /usr/local/mfs/var/mfs/ && cp metadata.mfs.empty metadata.mfs
给目录添加权限:[root@master mfs]# chown -R mfs:mfs /usr/local/mfs/
启动服务:[root@master mfs]# /usr/local/mfs/sbin/mfsmaster start
查看端口:
设置开机自启:
[root@master mfs]# vim /etc/rc.local
添加这行:/usr/local/mfs/sbin/mfsmaster start
给权限:[root@master mfs]# chmod +x !$ 注:!$ 的意思是进入上一条命令的最后一个参数
查看生成的日志: ll /usr/local/mfs/var/mfs
指定共享的主机权限:[root@master mfs]# cd /usr/local/mfs/etc/mfs/ && vim mfsexports.cfg
添加主机,网段:
启动服务:[root@master mfs]# sh /etc/rc.local
安装MFS元数据日志服务器
回/root/下:cd
进入目录编译安装:
[root@master ~]# cd moosefs-master && ./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs
[root@master moosefs-master]# make && make install
查看生成的配置文件并备份更改:
[root@master moosefs-master]# cd /usr/local/mfsmeta/etc/mfs/ && cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@master mfs]# vim !$ 注:!$ 的意思是进入上一条命令的最后一个参数
给权限:[root@master mfs]# chown -R mfs:mfs /usr/local/mfsmeta/
启动服务:[root@master mfs]# /usr/local/mfsmeta/sbin/mfsmetalogger start
设置开机自启:echo "/usr/local/mfsmeta/sbin/mfsmetalogger start" >> /etc/rc.local
关闭元数据日志服务:/usr/local/mfsmeta/sbin/mfsmetalogger stop
在开启查看端口:/usr/local/mfsmeta/sbin/mfsmetalogger start && netstat -anput | grep 9419
有端口以后 master上就完成了,现在去**slave1**
上配置
创建用户:[root@slave1 ~]# useradd -M -s /sbin/nologin mfs
安装依赖环境:[root@slave1 ~]# yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
解压软件包:[root@slave1 ~]# unzip moosefs-master.zip
进入生成文件编译安装:
[root@slave1 ~]# cd moosefs-master && ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
进入生成的配置文件并修改:
[root@slave1 moosefs-master]# cd /usr/local/mfs/etc/mfs/ && cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@slave1 mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[root@slave1 mfs]# vim !$ 注:!$ 的意思是进入上一条命令的最后一个参数
[root@slave1 mfs]# vim mfschunkserver.cfg
指定主服务器ip、端口:
给目录添加权限:[root@slave1 mfs]# chown -R mfs:mfs /usr/local/mfs/
启动服务:[root@slave1 mfs]# /usr/local/mfs/sbin/mfschunkserver start
设置开机自启:[root@slave1 ~]# vim /etc/rc.local
/usr/local/mfs/sbin/mfschunkserver start (添加这句,保存退出)
添加权限:[root@slave1 ~]# chmod +x !$
查看数据:
然后去**slave2**
上配置
解压软件包并进入目录:[root@slave2 ~]# unzip moosefs-master.zip && cd moosefs-master
编译安装:[root@slave2 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount (因为是客户端,所以必须有这个)
make -j 4 && make install
创建一个新目录一会要用:mkdir /mfs
加载模块:
创建软连接:[root@slave2 moosefs-master]# ln -s /usr/local/mfs/bin/mfsmount /usr/bin/mfsmount
将刚刚创建的新目录挂载到存储空间:[root@slave2 ~]# mfsmount /mfs -H192.168.100.101
查看:
添加开机自启:[root@slave2 ~]# vim /etc/rc.local
给权限:[root@slave2 ~]# chmod +x !$
然后回到slave1上安装一个tree工具:[root@slave1 ~]# yum install -y tree
用tree查看目录:
去slave2上往/tmp中添加一些信息:
再回slave1上查看:
多了两个文件
然后回到master上启动服务:root@master mfs]# /usr/local/mfs/sbin/mfscgiserv start
用浏览器访问:
- http://192.168.100.101:9425/mfs.cgi
可以登陆上去查看
现在设置密码:
**Master
**上
[root@master mfs]# cd /usr/local/mfs/etc/mfs/ && vim mfsexports.cfg
重启master服务:
[root@master mfs]# /usr/local/mfs/sbin/mfsmaster restart
去slave2上重新挂载:
查看:
新加一台主机(这里就用slave2了)
更改配置文件:
[root@slave2 ~]# cd /usr/local/mfs/etc/mfs/ && cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@slave2 mfs]# vim !$
[root@slave2 mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[root@slave2 mfs]# vim !$
给权限:[root@slave2 mfs]# chown -R mfs:mfs /usr/local/mfs/
启动mfschunkserver:[root@slave2 mfs]# /usr/local/mfs/sbin/mfschunkserver start
安装tree工具:[root@slave2 mfs]# yum install -y tree
去master上重启服务:/usr/local/mfs/sbin/mfsmaster restart
[root@master mfs]# /usr/local/mfsmeta/sbin/mfsmetalogger restart
去slave2上查看:文件号变了。
看到数据碎片增加
去网站上查看server:
现在已经有两个主机了。
设置复制的份数:
查看复制份数:
查看文件保存位置:[root@localhost bin]# ./mfsfileinfo /abc/passwd
故障测试: 关闭slave1的服务
[root@slave1 ~]# /usr/local/mfs/sbin/mfschunkserver stop
去slave2上写入东西,
可以写入,成功!
再去网页上查看 还有几台server
Server 192.168.100.102 已经关闭啦。
如有不懂或建议请私信我qq:34997003 欢迎交流(加好友表明来意)。