mfs分布式存储搭建应用


MFS 分布式存储的运行方式MFS工作原理MooseFS是一款具有冗余容错功能的分布式文件系统。它把数据分散在多台服务器上,确保一份数据多个备份副本,对外提供统一的结构。功能特性对于标准的文件操作,MooseFS表现与其他类Unix文件系统一致。支持的通过文件系统特性:层次结构(目录树)兼容POSIX文件属性支持特殊文件符号链接和硬链接基于IP地址和密码的访问控制独有特性高可靠性(数据的多个副本存储在不同服务器)容量动态扩展(添加新硬盘或者服务器)可以回收在制定时间内删除的文件,类似回收站功能可以对整个文件甚至是正在被写入的文件创建文件快照MFS整体架构的四种角色Master(元数据服务器)负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝。存储着每个文件的元数据(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)Metalogger(元数据日志服务器)负责备份Master服务器的changelog。文件类型为changelog.*.mfs,以便在Master出问题时接替其工作Chunk(数据存储服务器)负责连接Master,听从Master调度,提供存储空间,并为客户端提供数据传输Client(客户端挂载)通过FUSE内核接口挂载远程管理服务器(master)上所管理的数据存储服务器,使用起来和本地文件系统一样## MFS读处理过程:
1、客户端向元数据服务器发出读请求。
2、元数据服务器把所需数据存放的位置(Chunk ServerIP地址和chunk编号)告知客户端。
3、客户端向已知的Chunk Server请求发送数据。
4Chunk Server向客户端发送数据。## MFS写处理过程:
1、客户端向元数据服务器发送写入请求。
2、元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行这个交互):
a、元数据服务器只是在某些服务器创建新的分块chunks
bChunk Servers告知元数据服务器,步骤a已经操作成功。
3、元数据服务器告知客户端,你可以在哪个Chunk Server的哪些Chunks写入数据。
4、客户端向指定的Chunk Server写入数据
5Chunk Server与其他Chunk Server进行数据同步。
6Chunk Server之间同步成功。
7Chunk Server告知客户端数据写入成功。
8、客户端告知元数据服务器本次写入完毕。实验拓扑一、搭建master server1.安装依赖包[root@centos1 ~]# yum -y install zlib-devel2.创建用户[root@centos1 ~]# useradd mfs -s /sbin/nologin3.安装源码包[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/[root@centos1 mfs-1.6.27]# ./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfschunkserver –disable-mfsmount[root@centos1 mfs-1.6.27]# make&&make install4.复制文件[root@centos1 mfs-1.6.27]# cd /usr/local/mfs/etc/mfs[root@centos1 mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg[root@centos1 mfs]# cp mfsexports.cfg.dist mfsexports.cfg[root@centos1 mfs]# cp mfstopology.cfg mfstopology.cfg[root@centos1 mfs]# cd /usr/local/mfs/var/mfs/[root@centos1 mfs]# cp metadata.mfs.empty metadata.mfs5.配置文件(只需了解,不用改动)// mfsmaster.cfg(主配置文件)/usr/local/mfs/etc/mfs目录下# WORKING_USER = mfs 运行 master server 的用户# WORKING_GROUP = mfs 运行 master server 的组# SYSLOG_IDENT = mfsmaster master server syslog中的标识,说明是由 master serve 产生的# LOCK_MEMORY = 0 是否执行 mlockall()以避免 mfsmaster 进程溢出(默认为 0# NICE_LEVEL = -19 运行的优先级(如果可以默认是 -19; 注意: 进程必须是用 root启动)# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg 被挂接目录及其权限控制文件的存放位置# TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg# DATA_PATH = /usr/local/mfs/var/mfs 数据存放路径,此目录下大致有三类文件,changelogsessionsstats# BACK_LOGS = 50 metadata 的改变 log 文件数目(默认是 50);# BACK_META_KEEP_PREVIOUS = 1# REPLICATIONS_DELAY_INIT = 300 延迟复制的时间(默认是 300s;# REPLICATIONS_DELAY_DISCONNECT = 3600 chunkserver 断开的复制延迟(默认是 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);# MATOCU_LISTEN_HOST = * 用于客户端挂接连接的 IP 地址(默认是*,代表任何 IP)# MATOCU_LISTEN_PORT = 9421 用于客户端挂接连接的端口地址(默认是 9421);# CHUNKS_LOOP_MAX_CPS = 100000# CHUNKS_LOOP_MIN_TIME = 300 chunks 的回环频率(默认是:300 秒);mfsexportes.cfg为共享mfs文件系统的控制文件,NFS要共享一个目录时,我们会使用vim /etc/exports命令,编写共享给谁,所要共享的目录,共享出去的属性这些内容,而mfsexports.cfg的作用与其类似其书写格式如下:对客户端的配置Allow everything but meta* / rw,alldirs,maproot=0Client(客户端)支持格式:ipip/netmaskip/位数掩码、ip-ip*该文件每一个条目分为三部分:第一部分:客户端的ip 地址第二部分:被挂接的目录第三部分:客户端拥有的权限//地址可以指定的几种表现形式:* 所有的ip 地址n.n.n.n 单个ip 地址n.n.n.n/b IP 网络地址/位数掩码n.n.n.n/m.m.m.m IP 网络地址/子网掩码f.f.f.f-t.t.t.t IP //目录部分需要注意两点:/ 标识MooseFS ;. 表示MFSMETA 文件系统//权限部分:ro 只读模式共享rw 读写的方式共享alldirs 许挂载任何指定的子目录6.启动服务/usr/local/mfs/sbin/mfsmaster start[root@centos1 mfs]# netstat -anptActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 7599/mfsmaster tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 7599/mfsmaster tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 7599/mfsmaster tcp 0 0 192.168.1.1:9419 192.168.1.2:37816 ESTABLISHED 7599/mfsmaster tcp 0 0 192.168.1.1:9420 192.168.1.3:48107 ESTABLISHED 7599/mfsmaster tcp 0 0 ::1:25 :::* LISTEN 1732/master 7.查看进程[root@centos1 mfs]# ps -ef|grep mfs8.停止mfsmaster[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster -sstop二、搭建metalogger server1.安装依赖包[root@centos1 ~]# yum -y install zlib-devel2.创建用户[root@centos1 ~]# useradd mfs -s /sbin/nologin3.安装源码包[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/[root@centos1 mfs-1.6.27]# ./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfschunkserver –disable-mfsmount[root@centos1 mfs-1.6.27]# make && make install4.复制文件[root@centos1 mfs-1.6.27]# cd /usr/local/mfs/etc[root@centos2 mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg[root@centos2 mfs]# vim mfsmetalogger.cfgMASTER_HOST=192.168.1.1//手工添加MASTER SERVERip地址5.启动服务[root@centos2 mfs]#/usr/local/mfs/sbin/mfsmetalogger start三、搭建chunk server1.安装依赖包[root@centos1 ~]# yum -y install zlib-devel2.创建用户[root@centos1 ~]# useradd mfs -s /sbin/nologin3.安装[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/[root@centos3 mfs-1.6.27]# ./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster –disable-mfsmount[root@centos3 mfs-1.6.27]# make &&make install4.复制配置文件[root@centos3 mfs]# cd /usr/local/mfs/etc/mfs/#cp mfschunkserver.cfg.dist mfschunkserver.cfg[root@centos3 m开发云主机域名fs]# cp mfshdd.cfg mfshdd.cfg5.修改配置文件[root@centos3 mfs]# vim mfschunkserver.cfgMASTER_HOST = 192.168.1.1 //master服务器的ip地址[root@centos3 mfs]# vim mfshdd.cfg/data //设置chunkserver存放数据的目录4.设置目录权限,启动mfschunkserver[root@centos3 mfs]# mkdir /data//创建/data[root@centos3 mfs]# chown -R mfs:mfs /data//设置权限[root@centos3 mfs]# /usr/local/mfs/sbin/mfschunkserver start//启动服务四、搭建第二个chunkserver1.[root@centos3 ~]# useradd mfs -s /sbin/nologin2.安装[root@centos4 mfs-1.6.27]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src[root@centos4 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/[root@centos4 mfs-1.6.27]# ./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster –disable-mfsmount[root@centos4 mfs-1.6.27]#make && make install3.复制配置文件[root@centos3 mfs-1.6.27]# cd /usr/local/mfs/etc/mfs[root@centos4 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg[root@centos4 mfs]# cp mfshdd.cfg.dist mfshdd.cfg4.修改配置文件[root@centos3 mfs]# vim mfschunkserver.cfgMASTER_HOST = 192.168.1.1 //master服务器的ip地址[root@centos3 mfs]# vim mfshdd.cfg/data //存放数据的目录5.设置目录权限,启动mfschunkserver#mkdir /data[root@centos3 mfs]# chown -R mfs:mfs /data[root@centos3 mfs]# /usr/local/mfs/sbin/mfschunkserver start五、客户端配置1.安装fusefuse的功能简单概括一下,fuse提供一个文件操作的接口,然后fuse在这个接口上监听文件操作,并把这些对文件的操作传给我们自己的相关代码进行处理。也就是说,fuse提供一个挂载点,然后他会在这个挂在点上进行监听,一旦有操作(新建、读取、修改)发生,他会把控制权交给我们的代码,这些操作的具体代码都在mfsmount模块中实现[root@centos1 fuse-2.9.2]# tar xf /mnt/fuse-2.9.2.tar.gz -C /usr/src[root@centos1 fuse-2.9.2]# cd /usr/src/fuse-2.9.2/[root@centos1 fuse-2.9.2]# ./configure[root@centos1 fuse-2.9.2]# make &&make install2.设置环境变量[root@centos1 fuse-2.9.2]# vim /etc/profileexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH//环境变量PKG_CONFIG_PATH是用来设置.pc文件的搜索路径的[root@centos1 fuse-2.9.2]# source /etc/profile//刷新环境变量3.安装mfs客户端[root@centos3 ~]# useradd -s /sbin/nologin mfs[root@centos1 mfs-1.6.27]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/[root@centos1 mfs-1.6.27]# ./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster –disable-mfschunkserv

相关推荐: mfs分布式存储搭建应用

MFS 分布式存储的运行方式MFS工作原理MooseFS是一款具有冗余容错功能的分布式文件系统。它把数据分散在多台服务器上,确保一份数据多个备份副本,对外提供统一的结构。功能特性对于标准的文件操作,MooseFS表现与其他类Unix文件系统一致。支持的通过文件…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/31 17:11
下一篇 03/31 17:11