MFS分布式文件系统
一、实验环境
三、Mfs分布式文件系统详解
1、分布式原理
分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。
2、MFS原理
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
3、MFS读数据的处理过程
n 客户端向元数据服务器发出读请求
n 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端
n 客户端向已知的Chunk Server请求发送数据
n Chunk Server向客户端发送数据
4、MFS的组成
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用。
元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。
数据存储服务器(Chunk Server):真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。
客户端(Client):可以像挂载NFS一样挂载MFS文件系统
5、写入的过程
n 客户端向元数据服务器发送写入请求
n 元数据服务器与Chunk Server进行交互,但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Servers告知元数据服务器操作成功
n 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据
n 客户端向指定的Chunk Server写入数据
n 该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功
n 客户端告知元数据服务器本次写入完毕
四、实验步骤
Master:192.168.1.10
MetaLogger:192.168.1.20
Chunk 1:192.168.1.30
Chunk 2:192.168.1.40
搭建Master server
下载源码包及安装准备
#service iptables stop
#yum -y install zlib-devel
创建用户
#useradd mfs -s /sbin/nologin
安装源码包
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./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
配置文件
#ln -s /usr/local/mfs/sbin/mfsmaster /usr/local/sbin
启动Master server
#mfsmaster start
#mfsmaster -s 停止 Master Server
#ps -ef | grep mfs //检查是否启动
搭建MetaLogger Server
#service iptables stop 关闭防火墙
#yum install -y gcc gcc-c++
创建用户
#useradd mfs -s /sbin/nologin
编译安装mfs
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./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 mfsmetalogger.cfg.dist mfsmetalogger.cfg
修改为master server的IP地址
#echo "MASTER_HOST = 192.168.1.10" >> /usr/local/mfs/etc/mfs/mfsmetalogger.cfg
做软连接
#ln -s /usr/local/mfs/sbin/mfsmetalogger /usr/local/sbin
启动mfsmetaLogger
#mfsmetalogger start 启动mfsmetalogger 服务
#ps -ef | grep mfs 检查是否启动
搭建Chunk Server 1,Chunk Server 2
#service iptables stop
# yum install -y gcc gcc-c++ zlib-devel
创建用户
#useradd mfs -s /sbin/nologin
编译安装mfs
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd 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
修改为master server 的IP地址
#echo "MASTER_HOST = 192.168.1.10" >> /usr/local/mfs/etc/mfs/mfschunkserver.cfg
在这里/data是一个给mfs的分区,生产环境最好使用
独立分区或磁盘挂载到此目录
#echo "/data" >> /usr/local/mfs//etc/mfs/mfshdd.cfg
创建目录
#mkdir /data
给目录赋予属主属组的权限
#chown -R mfs:mfs /data
做软连接以便启动不需绝对路径
#ln -s /usr/local/mfs/sbin/mfschunkserver /usr/local/sbin
#mfschunkserver start 启动mfschunkserver服务
mfschunkserver -s 停止mfschunkserver服务
#ps -ef | grep mfs
客户端配置
#service iptables stop
#yum install -y gcc gcc-c++
创建用户
#useradd mfs -s /sbin/nologin
MFS依赖于FUSE,编译安装fuse
#cd /usr/src
#tar zxf fuse-2.9.2.tar.gz
#cd fuse-2.9.2
./configure && make && make install
设置环境变量
#echo "expor" PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> /etc/profie
#source /etc/profile
编译安装mfs客户端
#cd /usr/src
#tar zxf mfs-1.6.27-5.tar.gz
#cd mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount && make && make install
#mkdir /zc 创建挂接点
#modprobe fuse 加载fuse模块到内核
挂接MFS
#/usr/local/mfs/bin/mfsmount /zc -H 192.168.1.10
查看挂载情况
#df -HT
MFS安装完毕后,会生成/usr/local/mfs/bin目录,在这个目录下有很多命令,是用户所需的。为了方便,可将/usr/local/mfs/bin加入环境变量。
#echo "export PATH=/usr/local/mfs/bin:$PATH" >> /etc/profile
生产环境Chunk server节点数量应大于2,文件副本小于等于Chunk server 服务器的数量。
#mfssetgoal -r 2 /zc
#mfsgetgoal -r /zc
创建测试文件
#cd /zc
#touch 123
#mfsgetgoal test
客户端测试访问:http://192.168.1.10:9425
info:显示MFS的基本信息
Servers:列出现有的Chunk Server
Disks:列出现有的硬盘信息
Exports:列出可被挂载的目录
Mounts:列出被挂载的目录
Operations:显示正在执行的操作
Master Charts :显示Master Server的操作情况,读,写,删除等操作。
Server Charts:显示Chunk Server的操作情况,数据传输率及系统状态。