mfs 分布式文件系统 网络存储系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

分布式文件系统MFS(moosefs)实现存储共享(第二版)到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lustre,hadoop,Pnfs等等。我尝试了PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。为什么要选它呢?我来说说我的一些看法:1、实施起来简单。MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。看看lustre700多页的pdf文档,让人头昏吧。2、不停服务扩容。MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。注:hadoop也实现了这个功能。3、恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的,原因参照第1条。4、我在实验过程中得到作者的帮助,这让我很是感激。-r+由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。下面是某个集群使用nfs共享的示意图:这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lustre,hadoop,Pnfs等等。我尝试了PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。为什么要选它呢?我来说说我的一些看法:1、实施起来简单。MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。看看lustre700多页的pdf文档,让人头昏吧。2、不停服务扩容。MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。注:hadoop也实现了这个功能。3、恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的,原因参照第1条。4、我在实验过程中得到作者的帮助,这让我很是感激。MFS特性(根据官方网站翻译)★高可靠性(数据能被分成几个副本存储在不同的计算机里)★通过增加计算机或增加新的硬盘动态扩充可用磁盘空间★可以设置删除文件的空间回收时间[root@mysql-bkserydir]#mfsgettrashtimebind-9.4.0.tar.gzbind-9.4.0.tar.gz:600文件被删除10分钟后(600秒),才真正删除文件,回收磁盘空间。★为文件创建快照MFS文件系统的组成1、元数据服务器。在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个master服务器,进一步提高系统的可靠性。2、元数据日志服务器。备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。当元数据服务器数据丢失或者损毁,可从日志服务器取得文件进行恢复。3、数据存储服务器chunkserver。真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。4、客户端。使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂接MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了。元数据服务器安装和配置元数据服务器可以是linux,也可以是unix,你可以根据自己的使用习惯选择操作系统,在我的环境里,我是用freebsd做为MFS元数据的运行平台。GNU源码,在各种类unix平台的安装都基本一致。(一)安装元数据服务1、下载GNU源码wget、解包tarzxvfmfs-1.6.11.tar.gz3、切换目录cdmfs-1.6.114、创建用户useraddmfs–s/sbin/nologin5、配置./configure--prefix=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs6、编译安装make;makeinstall(二)配置元数据服务元数据服务器的配置文件被放置于安装目录/usr/local/mfs/etc。与mfs-1.5.12版本不同的是:mfs-1.6.x版安装完成只有模版文件,其后缀形如mfsmaster.cfg.dist。为了使mfsmaster正常工作,需要两个配置文件mfsmaster.cfg及mfsexports.cfg,前者为主配置文件,后者为权限控制文件(mfs客户端挂接时使用)。(1)主配置文件mfsmaster.cfg,可直接从模版文件拷贝而来,打开这个配置文件/usr/local/mfs/etc/mfsmaster.cfg,看看都有哪些内容:#WORKING_USER=mfs#WORKING_GROUP=mfs#SYSLOG_IDENT=mfsmaster#LOCK_MEMORY=0#NICE_LEVEL=-19#EXPORTS_FILENAME=/usr/local/mfs/etc/mfsexports.cfg#DATA_PATH=/usr/local/mfs/var/mfs#BACK_LOGS=50#REPLICATIONS_DELAY_INIT=300#REPLICATIONS_DELAY_DISCONNECT=3600#MATOML_LISTEN_HOST=*#MATOML_LISTEN_PORT=9419#MATOCS_LISTEN_HOST=*#MATOCS_LISTEN_PORT=9420#MATOCU_LISTEN_HOST=*#MATOCU_LISTEN_PORT=9421#CHUNKS_LOOP_TIME=300#CHUNKS_DEL_LIMIT=100#CHUNKS_WRITE_REP_LIMIT=1#CHUNKS_READ_REP_LIMIT=5#REJECT_OLD_CLIENTS=0#deprecated,toberemovedinMooseFS1.7#LOCK_FILE=/var/run/mfs/mfsmaster.lock尽管每行都被注释掉了,但它们却是配置文件的默认值,要改变这些值,需要取消注释,然后明确指定其取值。接下来说明一下其中一些项目的含义。◆EXPORTS_FILENAME=/usr/local/mfs/etc/mfsexports.cfg权限控制文件的存放位置。◆DATA_PATH=/usr/local/mfs/var/mfs数据存放路径,只元数据的存放路径。那么这些数据都包括哪些呢?进目录看看,大致分3种类型的文件:这些文件也同样要存储在其他数据存储服务器的相关目录。◆MATOCS_LISTEN_PORT=9420MATOCS--mastertochunkserver,即元数据服务器使用9420这个监听端口来接受数据存储服务器chunkserver端的连接。◆MATOML_LISTEN_PORT=9419MATOML---mastertometalogger,用于备份元数据服务器的变化日志。注:Mfs-1.5.12以前的版本没有这个项目。◆MATOCU_LISTEN_PORT=9421元数据服务器在9421端口监听,用以接受客户端对MFS进行远程挂接(客户端以mfsmount挂接MFS)◆其他部分看字面意思都不难理解。还有几个与时间有关的数值,其单位是秒。这个配置文件,不必做修改就能工作了。(2)配置文件/usr/local/mfs/etc/mfsexports.cfg,也可直接从模版文件复制而来。这个文件的内容,十分类似NFS服务器的exports文件.实际配置时,可参照这个文件的默认行来修改以满足自己的应用需求.我的mfsexports.cfg文件的内容为:192.168.93.0/24/rw(3)复制文件cp/usr/local/mfs/var/mfs/metadata.mfs.empty/usr/local/mfs/var/mfs/metadata.mfs这是一个8字节的文件,为mfs-1.6.x新增项目。(三)元数据服务器master启动元数据服务器可以单独启动,即使没有任何数据存储服务器(chunkserver)也是能正常工作的,因此当我们安装配置完MFS后,即可启动它。执行命令/usr/local/mfs/sbin/mfsmasterstart,如果没有意外,元数据库服务器就应该作为一个守护进程运行起来。现在我们可以通过3个方面来检查一下MFSmaster的运行状况:1、检查进程2、检查网络状态3、检查系统日志MFS的日志会直接写入系统日志。当我们增加数据存储服务器(chunkserver)或数据存储服务器(chunkserver)处故障时,都能在系统日志找到这些记录。注意,这个日志跟元数据变化日志不是一回事情。(四)、关闭元数据服务器关闭元数据服务器,务必使用/usr/local/mfs/sbin/mfsmaster–s这种方式,如果直接使用kill杀死进程,将导致下次启动时出现找不到相关文件,而不能正常启动服务器。这个一定要谨慎。当然,如果发生了这个事情,还是可以通过mfsmetastore来恢复的。元数据日志服务器安装和配置元数据日志服务为mfs1.6以后版本新增的服务,即可以把元数据日志保留在元数据服务器,也可以单独存储。为保证其可靠性,最好单独放置。需要注意的是,源数据日志守护进程跟元数据服务器(master)在同一个服务器上,备份元数据日志的服务器作为它的客户端,从元数据服务器取得日志文件进行备份。(一)安装元数据日志服务器metalogger1、下载GNU源码wget、解包tarzxvfmfs-1.6.11.tar.gz3、切换目录cdmfs-1.6.114、创建用户useraddmfs–s/sbin/nologin5、配置./configure--prefix=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs6、编译安装make;makeinstall(二)元数据日志服务(metalogger)配置该服务仅需要一个配置文件,这里我们只需要从模板文件复制一个,然后稍微加以修改即可,下面是我的某个metalogger的

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功