linux cpu占用率如何看
260
2022-10-14
轻松部署MFS分布式文件系统 【内附源码包】
MFS概述
MFS是一种分布式文件系统,它把数据分散存放在多个物理服务器上,前面只放置一台负责“调度”元数据服务器,最终呈现给用户的则是一个统一的资源。优点:相对于集中式文件系统来说,分布式系统拥有更好的扩展性、稳定性、数据的安全性。缺点:master只能做单点,会出现单点故障
常规特征
对标准的文件操作来说,mfs用起来跟其它的类unix系统类似:1.分层次的结构(目录树)2.存储POSIX文件属性(权限、最后访问和修改时间)3.支持特殊文件(块和字符设备、管道以及套接字)4.符号连接和硬连接5.对文件系统的访问可以通过IP地址和(或者)密码进行限制
独有特征
1.高可靠(数据的多个拷贝被存储在不同的计算机上)2.通过附加新的计算机或者硬盘可以实现容量的动态扩展3.删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站)4.不受访问和写入影响的文件连贯快照
体系机构
1.管理服务器(master server)一台管理整个文件系统的独立主机,存储着每个文件的元数据(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)2.数据服务器群(chunk servers)任意数目的商用服务器,用来存储文件数据并在彼此之间同步(如果某个文件有超过一个备份的话)3.元数据备份服务器(metalogger server)任意数量的服务器,用来存储元数据变化日志并周期性下载主要元数据文件,以便用于管理服务器意外停止时好接替其位置。4.访问mfs的客户端5.任意数量的主机,可以通过mfsmount进程与管理服务器(接收和更改元数据)和数据服务器(改变实际文件数据)进行交流。
架构及实现原理
1.MFS文件系统架构包括以下四种角色:
a.管理服务器 managing server (Master):负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝。 b.元数据日志服务器 Metalogger server(Metalogger):负责备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作。 c.数据存储服务器 (chunkservers):负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输 d.客户机挂载使用client computers:通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文件系统和本地 unix 文件系统使用一样的效果。
2.实现原理
(1) MFS 写入数据过程:• 客户端向元数据服务器发送写入请求。• 元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks不存在的时候才进行这个交互):• 元数据服务器只是在某些服务器创建新的分块chunks。• Chunk Servers告知元数据服务器,步骤a已经操作成功。• 元数据服务器告知客户端,你可以在哪个Chunk Server的哪些Chunks写入数据。• 客户端向指定的Chunk Server写入数据• Chunk Server与其他Chunk Server进行数据同步。• Chunk Server之间同步成功。• Chunk Server告知客户端数据写入成功。 (2 )MFS 读取数据数据过程:• 客户端向元数据服务器发出读请求。• 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和chunk编号)告知客户端。• 客户端向已知的Chunk Server请求发送数据。• Chunk Server向客户端发送数据
实验案例:
实验环境
软件包链接:sever
1.关闭防火墙
systemctl stop firewalld.service setenforce 0
2.解压软件包
yum install -y gcc gcc-c++ zlib-devel #安装环境工具包useradd mfs -s /sbin/nologin #添加进程用户tar zvxf mfs-1.6.27-5.tar.gz -C /opt #解压软件包
3.编译安装
cd /opt/mfs-1.6.27/ #切换到此目录下./configure \--prefix=/usr/local/mfs \ #指定安装目录--with-default-user=mfs \ #指定运行用户--with-default-group=mfs \ #指定运行组--disable-mfschunkserver \ #禁用mfs的chunk功能--disable-mfsmount #禁用mfs的mount功能make && make install #编译安装
4.复制文件
cd /usr/local/mfs/etc/mfscp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件cp mfsexports.cfg.dist mfsexports.cfg #挂载以及权限设定文件cp mfsmetalogger.cfg.dist mfsmetalogger.cfg #日志文件cd /usr/local/mfs/var/mfscp metadata.mfs.empty metadata.mfs #master元数据文件
5.创建软连接
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
6.开启服务
mfsmaster start #开启mfsps -ef | grep mfs # 查看启动端口/usr/local/mfs/sbin/mfsmaster -s #停止
搭建logger server服务
1.解压软件包
useradd mfs -s /sbin/nologin #创建进程用户tar zvxf mfs-1.6.27-5.tar.gz -C /opt #解压软件包
2.编译安装
cd /opt/mfs-1.6.27/./configure \--prefix=/usr/local/mfs \ --with-default-user=mfs \--with-default-group=mfs \--disable-mfschunkserver \ #禁用mfs的chunk功能--disable-mfsmount #禁用mfs的mount功能make && make install
3.复制文件
cd /usr/local/mfs/etc/mfscp mfsmetalogger.cfg.dist mfsmetalogger.cfg
4.修改配置文件
vim mfsmetalogger.cfg#约15行MASTER_HOST = 192.168.65.159 #指向master的IP地址
5.开启服务
/usr/local/mfs/sbin/mfsmetalogger startps -ef | grep mfs #查看端口/usr/local/mfs/sbin/mfsmetalogger -s 停止
搭建chunkserver1 (2配置相同)
1.环境包
yum install -y gcc gcc-c++ zlib-devel #安装工具包useradd mfs -s /sbin/nologin #创建进程用户
2.解压软件包
tar zvxf mfs-1.6.27-5.tar.gz -C /opt
3.编译安装
cd /opt/mfs-1.6.27/./configure \--prefix=/usr/local/mfs \--with-default-user=mfs \--with-default-group=mfs \--disable-mfsmaster \ #禁用mfs的master功能--disable-mfsmount #禁用mfs的mount功能make && make install #编译安装
4.复制文件
cd /usr/local/mfs/etc/mfscp mfschunkserver.cfg.dist mfschunkserver.cfgcp mfshdd.cfg.dist mfshdd.cfg
5.修改配置文件
vim mfschunkserver.cfg #约12行MASTER_HOST = 192.168.65.159 #指向master的IPvim mfshdd.cfg/data #添加目录
6.创建mfs分区目录
mkdir /data #创建mfs分区目录chown -R mfs.mfs /data/ #赋予权限
7.启动服务
/usr/local/mfs/sbin/mfschunkserver start
搭建client
1.解压fuse软件包
yum install -y gcc gcc-c++ zlib-develtar zvxf fuse-2.9.2.tar.gz -C /opt
2.编译安装
cd /opt/fuse-2.9.2/./configuremake && make install
3.添加环境变量
vim /etc/profileexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKGCONFIGPATHsource /etc/profile
4.解压mfs软件包
tar zvxf mfs-1.6.27-5.tar.gz -C /optuseradd -s /sbin/nologin mfs
5.编译安装
cd /opt/mfs-1.6.27/./configure \--prefix=/usr/local/mfs \--with-default-user=mfs \--with-default-group=mfs \--disable-mfsmaster \--disable-mfschunkserver \ #禁用mfs的chunk功能--enable-mfsmount # 开启mfs的mount功能make && make install #编译安装
6.挂载mfs文件系统
cd /usr/local/mfs/etc/mfsmkdir /opt/mfs #创建挂载点modprobe fuse #加载fuse模块到内核/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.65.159 #挂载MFS
7.优化客户端
vim /etc/profileexport PATH=/usr/local/mfs/bin:$PATH source /etc/profile #刷新环境变量使其生效mfsgetgoal -r /opt/mfs #复制文本
8.启动监控
/usr/local/mfs/sbin/mfscgiservnetstat -ntap | grep 9425
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~