mfs介绍
mooseFS(moose 驼鹿)是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。
MooseFS[MFS]是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
mfs特征
1:层析结构(目录树)
2:存储文件属性(权限,访问和修改时间)
3:支持特殊文件(块设备,字符设备,管道)
4:支持符号链接,软硬链接
5:对文件系统访问可以通过IP地址或者密码进行访问限制
6:高可靠(数据的多个备份存储在不同的计算机上)
7:通过附加新的计算机或者硬盘可以实现容量的动态拓展
8:删除文件可以根据一个可配置的时间周期进行保留
9:不受访问和写入影响的文件连贯快照
内部运行机制
1:客户端请求访问存储,请求发送到了MFS Master
2:MFS Master根据我们的请求,查询所需要的文件分布在那些服务器上
3:客户端直接和存储服务器进行数据存储和读写
端口关系图
端口号:
9420 : MFS master和MFS chunck通信端口
9421 : MFS master和MFS Client端通信端口
9419 : MFS master和MFS metalogger端通信端口
9422 : MFS chunck 和MFS Client端通信端口
9425 : MFS master web界面监听端口,查看整体运行状态
部署mfs
1,准备三台虚拟机
2安装moosefs-master
yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel ##安装依赖环境
useradd -s /sbin/nologin mfs ##创建用户
上传安装包
预编译安装
unzip moosefs-master.zip && cd moosefs-master
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make -j 4 && make install #编译安装
3,查看生成的配置文件
cp mfsmaster.cfg.sample mfsmaster.cfg # Master配置文件
cp mfsexports.cfg.sample mfsexports.cfg #输出目录配置文件
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg #元数据日志
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs
mfs]# chown -R mfs:mfs /usr/local/mfs/ ##添加权限
mfs]# /usr/local/mfs/sbin/mfsmaster start ##启动服务
mfs]# netstat -antup | grep 94* ##查看端口
4,添加开机自启
echo "/usr/local/mfs/sbin/mfsmaster start" >> /etc/rc.local
chmod +x /etc/rc.local ##添加权限
5,关闭服务
/usr/local/mfs/sbin/mfsmaster stop
查看生成的日志
6,指定需要共享的权限
cd /usr/local/mfs/etc/mfs
vim mfsexports.cfg ##进入添加标记的地方
7,启动服务 sh /etc/rc.local
8.安装mfs元数据日志服务器
cd moosefs-master
./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs
make && make install
生成配置文件mfsmetalogger.cfg
cd /usr/local/mfsmeta/etc/mfs/
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
进入配置文件修改id
vim mfsmetaloogger.cfg
chown -R mfs:mfs /usr/local/mfsmeta/ ##给目录添加权限
9,启动元数据日志服务
/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
在slave1上配置
useradd -s /sbin/nologin mfs ##创建用户
1,上传安装包,预编译安装
yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel ##安装依赖环境
编译安装
unzip moosefs-master.zip
cd moosefs-master
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
2,修改配置文件
cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
vim mfschunkserver.cfg ##进入配置文件修改id 端口号
vim mfshdd.cfg ##进入配置文件添加以下部分
#~/mnt/hd7
/tmp
#在这里/tmp 是一个给 mfs 的分区,但在生产环境是一个独立的磁盘的挂载目录
chown -R mfs:mfs /usr/local/mfs ##添加权限
/usr/local/mfs/sbin/mfschunkserver start ##启动服务
echo "/usr/local/mfs/sbin/mfschunkserver start" >> /etc/rc.local ##假人开机自启
chmod +x /etc/rc.local ##添加权限
查看数据 ls /tmp
/usr/local/mfs/sbin/mfschunkserver stop ###关闭服务
在第slave2上配置
1,创建用户,上传压缩包,编译安装
useradd -s /sbin/nologin mfs ##创建服务用户
yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel -y ##安装依赖环境
unzip moosefs-master.zip && cd moosefs-master
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount #开启mfsmount必须有,作为客户端必须有的这一个选项。
make -j 4 && make install ##编译安装
mkdir /mfs ##创建目录
2,加载fuse模块 查看
modprobe fuse
lsmod | grep fuse
ln -s /usr/local/mfs/bin/mfsmount /usr/bin/mfsmount ##给mfsmount添加软连接
3,将mfs共享出来的储存空间挂载到/mfs目录下;
mfsmount /mfs -H 192.168.100.10 -p
Df查看
添加开机加载模块和开机挂载
echo "modprobe fuse" >> /etc/rc.local
echo "/usr/local/mfs/bin/mfsmount /mfs -H 192.168.1.11" >> /etc/rc.local
chmod +x /etc/rc.local
测试
在slave1上用tree监控状态
yum install -y tree ##安装
tree /tmp
Slave2客户端写入数据
Cp -r /boot/* /mfs
在slave1存储服务器监控 tree /tmp
在master上配置web监控
/usr/local/mfs/sbin/mfscgiserv restart ##启动网页监控
实验做到这里就结束啦,可能有点乱请谅解,如果有什么问题请小伙伴们留言,谢谢~