欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MFS分布式文件系统

程序员文章站 2022-03-21 18:09:31
...

MFS分布式文件系统

MFS是什么?

是一个具有容错性的网络分布式文件系统,分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹

MFS框架的组成成员

元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用

元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复

数据存储服务器(Chunk):真正存储数据的服务器

客户端(Client): 可以像挂载NFS一样 挂载MFS文件系统

如下图所示是MFS的环境结构图

MFS分布式文件系统

MFS搭建

搭建Master服务器

1.安装依赖包

yum -y install gcc gcc-c++ zlib-devel

2.建立管理用户

useradd -s /sbin/nologin mfs

3.解压源码包编译安装

 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

4.复制模板创建配置文件(Master服务器需要mfsexports、mfsmaster、mfsmetalogger这三个文件)

cd /usr/local/mfs/etc/mfs/

cp mfsexports.cfg.dist mfsexports.cfg

cp mfsmaster.cfg.dist mfsmaster.cfg

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

cd /usr/local/mfs/var/mfs/

cp metadata.mfs.empty metadata.mfs

5.将该文件目录的属组和属主改为mfs

chown -R mfs.mfs /usr/local/mfs

6.Master服务器需要mfsmaster.cfg(主配置文件)mfsexports.cfg(被挂载目录及权限配置文件),这里不需要修改

mfsmaster.cfg(主配置文件)

#WORKING_USER = mfs \\运行masterserver的用户
#WORKING_GROUP = mfs \\运行masterserver的组
#SYSLOG_IDENT = mfsmaster \\在syslog中表示是mfsmaster产生的日志
#LOCK_MEMORY = 0 \\是否执行mlockall(),以避免mfsmaster进程溢出(默认为0)
#NICE_LEVEL = -19 \\运行的优先级(如果可以,默认是-19;注意:进程必须用root启动)
#EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg \\被挂载目录及其权限控制文件的存放位置
#TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg
#DATA_PATH = /usr/local/mfs/var/mfs \\数据存放路径
#BACK_LOGS = 50 \\metadata改变的log文件数目(默认是50)
#BACK_META_KEEP_PREVIOUS = 1
#REPLICATIONS_DELAY_INIT = 300
#REPLICATIONS_DELAY_DISCONNECT = 3600
#MATOML_LISTEN_HOST = \\metalogger监听的IP地址(默认是,代表任何IP)
#MATOML_LISTEN_PORT = 9419 \\metalogger监听的端口地址(默认是9419)
#MATOML_LOG_PRESERVE_SECONDS = 600
#MATOCS_LISTEN_HOST = \\用于chunkserver连接的IP地址(默认是,代表任何IP)
#MATOCS_LISTEN_PORT = 9420 \\用于chunkserver连接的端口地址(默认是9420)
#MATOCL_LISTEN_HOST =  \\用于客户端挂接连接的IP地址(默认是,代表任何IP)
#MATOCL_LISTEN_PORT = 9421  \\用于客户端挂接连接的端口地址(默认是4921)
#CHUNKS_LOOP_MAX_CPS = 100000
#CHUNKS_LOOP_MIN_TIME = 300  \\chunk的回环频率(默认是300秒)
#CHUNKS_SOFT_DEL_LIMIT = 10
#CHUNKS_HARD_DEL_LIMIT = 25
#CHUNKS_WRITE_REP_LIMIT = 2  \\在一个循环里复制到一个chunkserver的最大chunk数
#CHUNKS_READ_REP_LIMIT = 10  \\在一个循环里从一个chunkserver复制的最大chunk数
#ACCEPTABLE_DIFFERENCE = 0.1
#SESSION_SUSTAIN_TIME = 86400
#REJECT_OLD_CLIENTS = 0
#deprecated:
#CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead
#LOCK_FILE - lock system has been changed, and this option is used only to search for old lockfile

mfsexports.cfg(被挂载目录及权限配置文件)

#Allow everything but "meta".
/ rw,alldirs,maproot=0
#Allow "meta".
. rw
#第一部分:客户端的IP地址
#*表示所有IP地址
#单个IP地址
#IP地址/子网掩码
#IP地址网段
#第二部分:被挂接的目录 
#/标识MFS根 .表示MFSMETA文件系统
#第三部分:客户端拥有的权限
#ro——只读模式共享
#rw——读写的方式共享
#alldirs——允许挂载任何指定的子目录
#admin——管理员权限
#maproot——映射为root,还是指定的用户
#Password——指定客户端密码

7.启动服务并查看是否开启成功

/usr/local/mfs/sbin/mfsmaster start

ps -ef | grep mfs

搭建Metalogge服务器

1.安装依赖包

yum -y install gcc gcc-c++ zlib-devel

2.创建管理用户

useradd -s /sbin/nologin mfs

3.解压安装包并编译安装

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

4.复制配置文件模板使用(本服务器只需开启日志文件)

cd /usr/local/mfs/etc/mfs/

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

5.编辑日志配置文件添加Master服务器的IP地址

vim mfsmetalogger.cfg

MASTER_HOST = 192.168.199.129

6.修改文件的属组和属主为mfs

chown -R mfs.mfs /usr/local/mfs/

7.开启MetaLog服务并查看开始是否成功

/usr/local/mfs/sbin/mfsmetalogger start

ps -ef | grep mfs

搭建Chunk服务器(两台搭建步骤一样)

1.安装依赖包

yum -y install gcc gcc-c++ zlib-devel

2.建立管理用户

useradd -s /sbin/nologin mfs

3.解压源码包编译安装

 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

4.复制模板配置开启mfschunkservermfshdd两个文件使用

cd /usr/local/mfs/etc/mfs/

cp mfschunkserver.cfg.dist mfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

5.编辑mfschunkserver.cfg配置文件添加Master服务器IP地址

vim mfschunkserver.cfg

MASTER_HOST = 192.168.0.101

6.修改mfshdd.cfg文件,添加本地挂载之类需要共享的目录或磁盘,生存环境最好使用独立的分区或磁盘挂载到此目录

vim mfshdd.cfg

/test

7.创建挂载目录

mkdir /test

chown -R mfs.mfs /data

8.开启服务并查看启动服务情况是否成功

/usr/local/mfs/sbin/mfschunkserver start

ps -ef | grep mfs

搭建客户端

1.安装依赖包

yum install gcc gcc-c++ zlib-devel fuse fuse-devel -y

2.在/etc/profile最后添加环境变量并运行该文件

vim /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

source /etc/profile

3.创建进程管理用户

useradd -s /sbin/nologin mfs

4.解压安装包,编译安装

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

5.加载fuse模块到内核

modprobe fuse

6.创建挂载点并挂载MFS

mkdir /mfs

/usr/local/mfs/bin/mfsmount /mfs -H 192.168.0.101

7.查看挂载情况:df -hT

MFS分布式文件系统

8.创建测试文件测试

MFS分布式文件系统

补充:命令路径优化

ln -s /usr/local/mfs/bin/* /usr/bin/

ln -s /usr/local/mfs/sbin/* /usr/sbin/

这样使用命令就可以不用输入那么长的路径

MFS分布式文件系统

开启master的图形管理界面(如下图)

/usr/local/mfs/sbin/mfscgiserv

直接访问9425端口就行

MFS分布式文件系统

 

相关标签: 云计算学习笔记