MFS是一个具备容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。c++
MFS文件系统的组成。vim
元数据服务器(master):负责管理文件系统,维护元数据。 元数据日志服务器(MetaLogger):存放日志文件。 数据存储服务器(Chunk Server):真正存储数据的服务器。 客户端(client):用来挂载MFS文件文件系统的。
MFS读取数据的处理过程。服务器
1. 客户端向元数据服务器发出读请求。 2. 元数据服务器把所需数据存放的位置告知客户端。 3. 客户端向已知的Chunk Server请求发送数据。 4. Chunk Server向客户端发送数据。
MFS写入数据的处理过程。网络
客户端向元数据服务器发送写入请求。架构
元数据服务器与(ChunkServer进行交互)。分布式
元数据服务器告知客户端,能够在哪一个Chunk Server的哪些Chunks写入数据。ide
客户端向指定的Chunk Server写入数据。工具
该Chunk Server 与其余Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。测试
主机名称及角色 | IP地址 | 主要软件 |
---|---|---|
CentOS7-1(master) | 172.16.10.138 | mfs-1.6.27-5.tar.gz |
CentOS7-2(MetaLogger) | 172.16.10.137 | mfs-1.6.27-5.tar.gz |
CentOS7-3(chunkserever1) | 172.16.10.133 | mfs-1.6.27-5.tar.gz |
CentOS7-4(chunkserever2) | 172.16.10.136 | mfs-1.6.27-5.tar.gz |
CentOS7-6(client) | 172.16.10.135 | mfs-1.6.27-5.tar.gz、fuse-2.9.2.tar.gz |
yum -y install zlib-devel gcc gcc-c++日志
useradd -s /sbin/nologin -M mfs
tar xf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \ #工做目录
--with-default-user=mfs \ #运行masterserver的用户
--with-default-group=mfs \ #运行masterserver的组
--disable-mfschunkserver \
--disable-mfsmount #关闭功能make && make install #编译安装
cd /usr/local/mfs/var/mfs
cp metadata.mfs.empty metadata.mfs
cd /usr/local/mfs/etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg #主配置文件
cp mfsexports.cfg.sample mfsexports.cfg #被挂载目录及权限配置文件
cp mfstopology.cfg.sample mfstopology.cfg #拓扑架构感知
/usr/local/mfs/sbin/mfsmaster start #开启服务
这里能够看到服务已经启动了,而后关闭服务能够使用/usr/local/mfs/sbin/mfsmaster -s
yum -y install zlib-devel gcc gcc-c++
useradd -s /sbin/nologin -M mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmountmake && make install
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs
cd /usr/local/mfs/etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vim mfsmetalogger.cfg
MASTER_HOST=172.16.10.138 #指向master服务器
/usr/local/mfs/sbin/mfsmetalogger start #开启服务
yum -y install zlib-devel gcc gcc-c++
useradd -s /sbin/nologin -M mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmountmake && make install
cd /usr/local/mfs/etc/mfs
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
vim mfschunkserver.cfg
MASTER_HOST=172.16.10.138 #指向master服务器
vim mgshdd.cfg
/data #添加
mkdir /data
chown -R mfs:mfs /data
/usr/local/mfs/sbin/mfschunkserver start #开启服务
注:另外一台chunkserver服务器和这台配置同样
yum -y install zlib-devel gcc gcc-c++
useradd -s /sbin/nologin -M mfs
tar xf fuse-2.9.2.tar.gz -C /opt
cd /opt/fuse-2.9.2/
./configure
make && make install
vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH #添加source /etc/profile #刷新生效
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmountmake && make install
mkdir /opt/mfs //建立挂载点//
modprobe fuse //加载fuse模块到内核//
/usr/local/mfs/bin/mfsmount /opt/mfs -H 172.16.10.138 //挂载MFS
若是要卸载MFS,使用命令umount /opt/mfs
vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH #添加环境变量,方便相关命令的使用source /etc/profile
/usr/local/mfs/sbin/mfscgiserv #开启
至此实验成功,MFS分布式文件系统就所有介绍完了!!!