MFS 是一个具备容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。php
管理服务器 Master: 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
元数据日志服务器 MetaLogger: 负责备份 master 服务器的变化日志文件,文件类型为 changelog_ml.*.mfs,以便于在 master 出问题的时候。从日志服务器取得文件,进行恢复
数据存储服务器 chunk servers: 遵从管理服务器调度,提供存储空间,并为客户提供数据传输.。 真正存储用户数据的服务器。存储文件时,首先把文件分红块,而后这些块在数据服务器 之间复制。 数据服务器能够是多个,而且数量越多,可以使用的“磁盘空间”越大,可靠性也越高。
客户机 client :挂载使用 挂载进程 mfs 服务器共享出的存储并使用。html
名称 | IP | 操做系统 | 须要环境 |
---|---|---|---|
Master servicer | centos7.3 | 192.168.100.21 | mfs |
Metalogger sevicer | centos7.3 | 192.168.100.22 | mfs |
chunk server1 | centos7.3 | 192.168.100.23 | mfs |
chunk server2 | centos7.3 | 192.168.100.24 | mfs |
client | centos7.3 | 192.168.100.25 | mfs fuse |
安装方法一使用yum 在在线安装前端
使用YUM安装配置 添加键值: # curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS 添加适当的库条目 # curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo 而后安装适当的MooseFS组件 主服务器:Master # yum install -y moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli # systemctl start moosefs-master //启动主服务 # ps -ef | grep mfs //查看端口 元数据日志服务器 Metaloggers # yum install -y moosefs-metalogger # vim mfsmetalogger.cfg MASTER_HOST=192.168.200.129 # systemctl start moosefs-metalogger //启动日志服务器
yum install -y zlib-devel gcc gcc-c++ useradd mfs -s /sbin/nologin #添加管理用户 ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --disable-mfsmount make && make install cd /usr/local/mfs/etc/mfs/ #配分 而且重命名系统识别的文件 cp mfsmaster.cfg.dist mfsmaster.cfg # 主配置文件 也能够算是重命名 cp mfsexports.cfg.dist mfsexports.cfg #日志文件 cp mfstopology.cfg.dist mfstopology.cfg # 放断裂 cd /usr/local/mfs/var/mfs/ 配挂在目录权限配置文件 cp metadata.mfs.empty metadata.mfs /usr/local/mfs/sbin/mfsmaster start //开启 /usr/local/mfs/sbin/mfsmaster -s \\中止 主的就不用在配置了
搭建MetaLogger serverc++
useradd mfs -s /sbin/nologin ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster \ --disable-mfsmount make && make install cd /usr/local/mfs/etc/mfs/ cp mfschunkserver.cfg.dist mfschunkserver.cfg cp mfshdd.cfg.dist mfshdd.cfg vi mfsmetalogger.cfg MASTER_HOST = 192.168.100.21 vi mfshdd.cfg /data #指明共享的文件 mkdir /data #建立共享目录 chown -R mfs:mfs /data #给与权限 /usr/local/mfs/sbin/mfschunkserver start # 开启服务
搭建两台chunkserverweb
两台都是同样的配置 yum install -y zlib-devel gcc gcc-c++ useradd mfs -s /sbin/nologin -M //建立管理用户 tar xzvf mfs-1.6.27-5.tar.gz -C /opt/ cd /opt/mfs-1.6.27/ ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfsmaster \ --disable-mfsmount make && make install cd /usr/local/mfs/etc/mfs/ cp mfschunkserver.cfg.dist mfschunkserver.cfg cp mfshdd.cfg.dist mfshdd.cfg vim mfschunkserver.cfg ...... MASTER_HOST = 192.168.10.154 //IP指向master vim mfshdd.cfg ...... /data //添加一行/data,在这里/data是一个给MFS的分区,生产环境最好使用独立的分区或磁盘挂载到此目录 mkdir /data chown -R mfs:mfs /data /usr/local/mfs/sbin/mfschunkserver start //开启 /usr/local/mfs/sbin/mfschunkserver start -s \\中止
客户端配置vim
yum install -y zlib-devel gcc gcc-c++ tar xzvf fuse-2.9.2.tar.gz -C /opt //mfs客户端依赖于fuse cd /opt/fuse-2.9.2 ./configure make && make install vi /etc/profile export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH source /etc/profile --安装mfs客户端---- useradd mfs -s /sbin/nologin -M tar xzvf mfs-1.6.27-5.tar.gz -C /opt/ cd /opt/mfs-1.6.27/ ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --disable-mfschunkserver \ --enable-mfsmount //注意此处开启客户端 make && make install 将MFS文件系统挂载在前端PHP服务器的/var/www/html/webphp/uploads/photos目录下 --------------------------------------------------- mkdir -p /var/www/html/webphp/uploads/photos //建立挂载点 modprobe fuse //加载fuse模块到内核 /usr/local/mfs/bin/mfsmount /var/www/html/webphp/uploads/photos -H 192.168.100.21 //挂载MFS ------------------------------------------- -----MASTER-server-----启动监控程序-- /usr/local/mfs/sbin/mfscgiserv http://192.168.175.128:9425