mfs

网友投稿 256 2022-11-02

mfs

MFS分布式文件系统 文件系统:ext4、xfs、ext3 mooseFS(moose 驼鹿)是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类UNIX文件系统一样,包含了层级结构(目录树),存储着文件属性(权限、最后访问和修改时间),常见特殊的文件(块设备、字符设备、管道、套接字),符号链接,硬链接。

MooseFS[MFS]是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,但呈现给用户的则是一个统一的资源

MFS特征: 1、层析结构(目录树) 2、存储文件属性(权限、访问和修改时间) 3、支持特殊文件(块设备,字符设备,管道) 4、符号链接,软硬链接 5、对文件系统访问可以通过IP地址或者密码进行访问限制 6、高可靠(数据的多个拷贝存储在不同的计算机上) 7、通过附加新的计算机或者硬盘可以实现容量的动态扩展 8、删除文件可以根据一个可配置的时间周期进行保留 9、不受访问和写入影响的文件连贯快照

应用场景:分布式文件系统的应用场景 1、大规模高并发的数据存储及访问(小文件,大文件) 2、大规模的数据处理,如日志分析

MFS分布式文件系统部署方案: Moosefs是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色: 1、管理服务器 managing server(master) 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝 2、元数据日志服务器 Metalogger Server(Metalogger) 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作。 3、数据存储服务器data servers(chunk servers) 听从管理服务器调度,提供存储空间,并为客户提供数据传输。真正存储用户数据的服务器。 存储文件时,首先把文件分出块,然后这些块在数据服务区chunk server之间复制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。 4、客户机挂载使用client computers 客户端:挂载远程mfs服务器共享出的存储并使用。 通过fuse内核接口挂载进程管理服务器上所管理的数据存储服务器共享出的硬盘。 共享的文件系统的用法和nfs相似。 使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂载MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了

分布式文件系统原理: 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。对于用户来说,要访问这些共享文件夹时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件是分散于各个计算机上的。

分布式文件系统优势: 1. 集中访问 2. 简化操作 3. 数据容灾 4. 提高文件存取性能、在线扩容

MFS读取数据原理 1.客户端向元数据服务器发出读请求 2.元数据服务器把所需数据存放的位置(Chunk Servert的IP地址和Chunk编号)告知客户端 3.客户端向己知的Chunk Serve请求发送数据 4.Chunk Server向客户端发送数据

过程: 1.客户端向元数据服务器发送写请求 2.元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行这个交互),但元数据服务器只在某些服务器创建新的分块Chunks,创建完告知元数据服务器操作成功 3.元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据 4.客户端向指定的Chunk Server写入数据 5.该Chunk Serve与其他Chunk Serve进行数据同步,之后Chunk Server告知客户端数据写入成功 6.客户端告知元数据服务器本次写入完毕

端口号: 9420:MFS master和MFS chunk通信端口 9421:MFS master和MFS client端通信端口 9419:MFS master和MFS metalogger端通信端口 9422:MFS chunk和MFS client端通信端口 9425:MFS master web界面监听端口,查看整体运行状态

系统环境

主机 系统操作 IP地址 软件包
master centos7.4 192.168.80.100 mfs
metalogger centos7.4 192.168.80.101 mfs
chunk01 centos7.4 192.168.80.102 mfs
chunk02 centos7.4 192.168.80.103 mfs
chunk03 centos7.4 192.168.80.104 mfs
client centos7.4 192.168.80.105 mfs 、fuse

开启6台虚拟机(所有服务器都得执行) systemctl stop firewalld //关闭防火墙 setenforce 0 //关闭监控 一、搭建master server(80.100) 1、安装相关编译器、工具包(所有服务器都得安装) yum install gcc gcc-c++ make zlib-devel fuse-devel -y

yum install lrz* -y //安装上传软件 把包拉入 scp moosefs-master.zip root@192.168.80.101:/root/ 传送(101~105)

2、创建进程用户 useradd -M -s /sbin/nologin mfs

3、安装mfs软件包 yum install unzip -y unzip moosefs-master.zip -d /opt //解压软件包

cd /opt/moosefs-master ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs

make && make install#编译及编译安装

4、修改相关文件信息 cd /usr/local/mfs/etc/mfs/ cp mfsexports.cfg.sample mfsexports.cfg #输出目录配置文件,定义挂载以及权限设定文件 cp mfsmaster.cfg.sample mfsmaster.cfg #主配置文件 cp mfstopology.cfg.sample mfstopology.cfg #元数据日志文件

cd /usr/local/mfs/var/mfs/ cp metadata.mfs.empty metadata.mfs #master元数据文件

5、详解主配置文件 cd /usr/local/mfs/etc/mfs/ vi mfsmaster.cfg #此文件中,有注释符号的就是默认配置 # WORKING_USER = mfs #运行master服务的用户 # WORKING_GROUP = mfs #运行master服务的组 # SYSLOG_IDENT = mfsmaster #在syslog中表示是mfsmaster产生的日志,在syslog的标识,说明由master服务产生的 # LOCK_MEMORY = 0 #是否执行mlockall(),避免master进程溢出(默认为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连接的端口IP地址(默认是9420) # MATOCL_LISTEN_HOST = * # MATOCL_LISTEN_PORT = 9421 # CHUNKS_LOOP_MAX_CPS = 100000 # CHUNKS_LOOP_MIN_TIME = 300 #chunks的回环频率(默认是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

6、详解被挂载目录及权限配置文件 cd /usr/local/mfs/etc/mfs/ vi mfsexports.cfg # Allow everything but "meta". * / rw,alldirs,maproot=0 # Allow "meta". * . rw

#详解 根据文件的显示,可以看出,该文件每一个条目分为三个部分 第一部分:客户端的IP地址 第二部分:被挂载的目录 第三部分:客户端拥有的权限   客户端的IP地址部分 *:代表所有的IP地址 192.168.100.71:代表单个IP地址 192.168.100.0/24:代表整个网段 192.168.100.71-192.168.100.100:代表指定网段   被挂载的目录部分 /:标识MFS根 .:标识MFSMETA文件系统   客户端拥有的权限部分 ro:代表只读模式 rw:代表读写方式共享 alldirs:允许挂载任何指定的子目录 admin:管理员权限 maproot:映射为root,还是指定的用户 Password:指定客户端的密码

7、授权、优化路径 chown -R mfs.mfs /usr/local/mfs ln -s /usr/local/mfs/sbin/* /usr/local/bin/

8、启动服务 mfsmaster start

netstat -anpt | grep mfs

9、编辑启动脚本(主要用方法二) 方法一: vi /lib/systemd/system/mfs.service   [Unit] Description=mfs After=network.target   [Service] Type=forking ExecStart=/usr/local/mfs/sbin/mfsmaster start #启动服务 ExecStop=/usr/local/mfs/sbin/mfsmaster stop #关闭服务 PrivateTmp=true   [Install] WantedBy=multi-user.target   systemctl enable mfs.service #服务开机自启动 systemctl stop mfs.service #关闭服务 systemctl start mfs.service #启动服务

方法二: echo "/usr/local/mfs/sbin/mfsmaster start" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local

二、搭建MetaLogger Server(元数据日志服务器)(80.101) 1、安装相关编译器、工具包 yum install gcc gcc-c++ make zlib-devel fuse-devel -y

2、创建进程用户 useradd -M -s /sbin/nologin mfs

3、安装mfs软件包 yum install unzip -y unzip moosefs-master.zip -d /opt

cd /opt/moosefs-master ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs

make && make install

4、修改主配置文件 cd /usr/local/mfs/etc/mfs/ cp mfsmaster.cfg.sample mfsmaster.cfg cp mfsexports.cfg.sample mfsexports.cfg cp mfsmetalogger.cfg.sample mfsmetalogger.cfg

cd /usr/local/mfs/var/mfs cp metadata.mfs.empty metadata.mfs

cd /usr/local/mfs/etc/mfs/ vi mfsmetalogger.cfg 修改以下内容: MASTER_HOST = 192.168.80.100 #执行master服务器的ip地址,去掉注释符号 META_DOWNLOAD_FREQ = 24 #备份频率时间

5、授权、优化路径 chown -R mfs.mfs /usr/local/mfs ln -s /usr/local/mfs/sbin/* /usr/local/bin/

6、启动服务 mfsmetalogger start

netstat -anpt | grep mfsmetalogger

echo "/usr/local/mfs/sbin/mfsmetalogger start" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local

三、搭建Chunk Server(三台Chunk Server主机搭建步骤相同)(80.102~104) 安装数据服务器(chunkservers),这些机器的磁盘上要有适当的剩余空间,而且操作系统要遵循POSIX标准(验证了的有这些:Linux、FreeBSD、Mac OS X and OpenSolaris)。 chunkserver存储数据时,是在一个普通的文件系统如ext4上存储数据块或碎片(chunks/fragments)作为文件。你在chunkserver上看不到完整的文件。

1、安装相关编译器、工具包 yum install gcc gcc-c++ make zlib-devel fuse-devel -y

2、创建程序用户 useradd -M -s /sbin/nologin mfs

3、安装mfs软件包 yum install unzip -y unzip moosefs-master.zip -d /opt

cd /opt/moosefs-master ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs

make && make install

4、修改相应配置文件 cd /usr/local/mfs/etc/mfs/ cp mfschunkserver.cfg.sample mfschunkserver.cfg cp mfshdd.cfg.sample mfshdd.cfg

vi mfschunkserver.cfg 修改以下内容: MASTER_HOST = 192.168.80.100 #指向master服务器的ip地址,去掉注释符号 MASTER_PORT = 9420

vi mfshdd.cfg 添加一行: /data #这是一个给MFS的分区,生产环境中最好使用独立的分区,或者磁盘挂载到此目录下

5、创建MFS分区目录 mkdir /data chown -R mfs:mfs /data/

6、授权、优化路径 chown -R mfs.mfs /usr/local/mfs ln -s /usr/local/mfs/sbin/* /usr/local/bin/

7、启动服务 mfschunkserver start

netstat -anpt | grep mfschunkserver #看9422 端口是否在工作

echo "/usr/local/mfs/sbin/mfschunkserver start" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local

四、配置客户端(80.105)   1、安装相关编译器、工具包 yum install gcc gcc-c++ make zlib-devel fuse-devel -y

4、创建进程用户 useradd -M -s /sbin/nologin mfs

5、安装mfs软件包 yum install unzip -y unzip moosefs-master.zip -d /opt

cd /opt/moosefs-master ./configure \ --prefix=/usr/local/mfs \ --with-default-user=mfs \ --with-default-group=mfs \ --enable-mfsmount

make && make install

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

6、挂载MFS文件系统 mkdir /mnt/mfs #创建挂载点 modprobe fuse #加载fuse模块到内核 mfsmount /opt/mfs/ -H 192.168.80.100 #挂载MFS

df -hT #查看挂载情况 unzip moosefs-master.zip -d /opt cd /opt/moosefs-master echo "modprobe fuse" >> /etc/rc.d/rc.local echo "/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.80.100" >> /etc/rc.d/rc.local

在chunkserver上查看: tree /data

7、在master上开启web监控服务 mfscgiserv start

8、访问MFS监控工具 #client端访问web

9、配置密码认证挂载 在master上 cd /usr/local/mfs/etc/mfs/ vi mfsexports.cfg 192.168.80.0/24 / rw,alldirs,maproot=0,password=123456 mfsmaster restart

在客户端查看数据备份情况: mfsgetgoal /opt/mfs 查看备份的数据: mfsfileinfo /opt/mfs/hosts 查看备份时间: mfsgettrashtime /opt/mfs

集群启动和关闭循序: MFS集群启动: 1、启动master server 2、启动chunk server 3、启动metalogger 4、启动客户端,使用mfsmount挂载相关目录 MFS集群停止: 1、所有客户端卸载MooseFS文件系统 2、停止chunkserver 3、停止metalogger 4、停止master server

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:福音分线器生产厂家具有多种接口兼得的接口
下一篇:redis集群
相关文章

 发表评论

暂时没有评论,来抢沙发吧~