MFS原理
-
MFS 是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
- MFS的组成
管理服务器 Master: 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
元数据日志服务器 MetaLogger: 负责备份 master 服务器的变化日志文件,文件类型为 changelog_ml.*.mfs,以便于在 master 出问题的时候。从日志服务器取得文件,进行恢复
数据存储服务器 chunk servers: 听从管理服务器调度,提供存储空间,并为客户提供数据传输.。 真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器 之间复制。 数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。
客户机 client :挂载使用 挂载进程 mfs 服务器共享出的存储并使用。
名称 | 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 //启动日志服务器
- 搭建Master server 我使用的手工编译安装所有要安装一些环境
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 server
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 # 开启服务
搭建两台chunkserver
两台都是一样的配置
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 \\停止
客户端配置
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
转载于:https://blog.51cto.com/13660858/2151564