MFS分布式文件系统的部署
MFS简介
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
- MFS文件系统的组成。
元数据服务器(master):负责管理文件系统,维护元数据。 元数据日志服务器(MetaLogger):存放日志文件。 数据存储服务器(Chunk Server):真正存储数据的服务器。 客户端(client):用来挂载MFS文件文件系统的。
- MFS读取数据的处理过程。
1. 客户端向元数据服务器发出读请求。 2. 元数据服务器把所需数据存放的位置告知客户端。 3. 客户端向已知的Chunk Server请求发送数据。 4. Chunk Server向客户端发送数据。
- MFS写入数据的处理过程。
- 客户端向元数据服务器发送写入请求。
- 元数据服务器与(ChunkServer进行交互)。
- 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据。
- 客户端向指定的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 |
实验部署
搭建Master Server
- 首先安装环境包
yum -y install zlib-devel gcc gcc-c++
- 创建管理用户
useradd -s /sbin/nologin -M mfs
- 解压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 #拓扑架构感知
- 开启master服务
/usr/local/mfs/sbin/mfsmaster start #开启服务
这里可以看到服务已经启动了,然后关闭服务可以使用/usr/local/mfs/sbin/mfsmaster -s
搭建MetaLogger server
- 首先安装环境包
yum -y install zlib-devel gcc gcc-c++
- 创建管理用户
useradd -s /sbin/nologin -M mfs
- 解压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
- 修改配置文件使地址指向master服务器
vim mfsmetalogger.cfg
MASTER_HOST=172.16.10.138 #指向master服务器
- 开启MetaLogger Server服务
/usr/local/mfs/sbin/mfsmetalogger start #开启服务
搭建chunkserver
- 首先安装环境包
yum -y install zlib-devel gcc gcc-c++
- 创建管理用户
useradd -s /sbin/nologin -M mfs
- 解压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
- 修改配置文件使地址指向master服务器
vim mfschunkserver.cfg
MASTER_HOST=172.16.10.138 #指向master服务器
- 修改mfshdd.cfg,添加共享的文件目录
vim mgshdd.cfg
/data #添加
- 创建共享目录,修改属主属组
mkdir /data
chown -R mfs:mfs /data
- 开启chunkserver服务
/usr/local/mfs/sbin/mfschunkserver start #开启服务
注:另一台chunkserver服务器和这台配置一样
搭建客户端client
- 首先安装环境包
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 #刷新生效
- 搭建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
- 挂载MFS文件系统
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
- MFS网页监控
/usr/local/mfs/sbin/mfscgiserv #开启
- 测试
至此实验成功,MFS分布式文件系统就全部介绍完了!!!
原文地址:http://blog.51cto.com/13659301/2153514