首页IT科技分布式存储软件有哪些(分布式文件系统MFS(moosefs)实现存储共享(一) sery 51CTO技术博客)

分布式存储软件有哪些(分布式文件系统MFS(moosefs)实现存储共享(一) sery 51CTO技术博客)

时间2025-08-02 01:05:44分类IT科技浏览5205
导读:标签:MFS 存储共享 实现存储共享 文件系统MFS 分布式...

标签:MFS 存储共享 实现存储共享 文件系统MFS 分布式

原创作品             ,允许转载                        ,转载时请务必以超链接形式标明文章 原始出处                 、作者信息和本声明             。否则将追究法律责任                        。http://sery.blog.51cto.com/10037/147756
分布式文件系统MFS(moosefs)实现存储共享
作者:田逸(sery@163.com) from: [url]http://net.it168.com/a2009/0403/270/000000270867.shtml[/url]
由于用户数量的不断攀升,我对访问量大的应用实现了可扩展                    、高可靠的集群部署(即lvs+keepalived的方式)       ,但仍然有用户反馈访问慢的问题       。通过排查个服务器的情况         ,发现问题的根源在于共享存储服务器NFS         。在我这个网络环境里                       ,N个服务器通过nfs方式共享一个服务器的存储空间           ,使得NFS服务器不堪重负                       。察看系统日志      ,全是nfs服务超时之类的报错           。一般情况下                      ,当nfs客户端数目较小的时候               ,NFS性能不会出现问题;一旦NFS服务器数目过多   ,并且是那种读写都比较频繁的操作                     ,所得到的结果就不是我们所期待的      。下面是某个集群使用nfs共享的示意图:
这种架构除了性能问题而外                   ,还存在单点故障,一旦这个NFS服务器发生故障                 ,所有靠共享提供数据的应用就不再可用                       ,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份   ,但这对提高整个系统的性能毫无帮助                      。基于这样一种需求             ,我们需要对nfs服务器进行优化或采取别的解决方案                        ,然而优化并不能对应对日益增多的客户端的性能要求       ,因此唯一的选择只能是采取别的解决方案了;通过调研         ,分布式文件系统是一个比较合适的选择               。采用分布式文件系统后                       ,服务器之间的数据访问不再是一对多的关系(1NFS服务器           ,多个NFS客户端)      ,而是多对多的关系                      ,这样一来               ,性能大幅提升毫无问题   。
到目前为止   ,有数十种以上的分布式文件系统解决方案可供选择                     ,如lustre,hadoop,Pnfs等等                     。我尝试了PVFS,hadoop,moosefs这三种应用                   ,参看了lustre        、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器                   。为什么要选它呢?我来说说我的一些看法:
1            、实施起来简单。MFS的安装                    、部署           、配置相对于其他几种工具来说                 ,要简单和容易得多                 。看看lustre 700多页的pdf文档                       ,让人头昏吧                       。
2        、不停服务扩容   。MFS框架做好后   ,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务             。注:hadoop也实现了这个功能                        。
3                     、恢复服务容易       。除了MFS本身具备高可用特性外             ,手动恢复服务也是非常快捷的                        ,原因参照第1条         。
4              、我在实验过程中得到作者的帮助       ,这让我很是感激                       。
MFS文件系统的组成
1    、元数据服务器           。在整个体系中负责管理管理文件系统         ,目前MFS只支持一个元数据服务器master                       ,这是一个单点故障           ,需要一个性能稳定的服务器来充当      。希望今后MFS能支持多个master服务器      ,进一步提高系统的可靠性                      。
2                      、数据存储服务器chunkserver               。真正存储用户数据的服务器   。存储文件时                      ,首先把文件分成块               ,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定   ,建议设置副本数为3)                     。数据服务器可以是多个                     ,并且数量越多                   ,可使用的“磁盘空间             ”越大,可靠性也越高                   。
3                 、客户端。使用MFS文件系统来存储和访问的主机称为MFS的客户端                 ,成功挂接MFS文件系统以后                       ,就可以像以前使用NFS一样共享这个虚拟性的存储了                 。
元数据服务器安装和配置
元数据服务器可以是linux,也可以是unix,你可以根据自己的使用习惯选择操作系统,在我的环境里,我是用freebsd做为MFS元数据的运行平台                       。GNU源码   ,在各种类unix平台的安装都基本一致   。
(一)安装元数据服务
1、下载GNU源码 wget [url]http://www.moosefs.com/files/mfs-1.5.12.tar.gz[/url]
2                   、解包 tar zxvf mfs- 1.5.12.tar.gz
3                    、切换目录 cd mfs-1.5.12
4    、创建用户 useradd mfs –s /sbin/nologin
5                、配置./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
6                    、编译安装 make ; make install
(二)配置元数据服务
元数据服务器的配置文件是mfsmaster.cfg,我在安装MFS时指定了前缀             ,因此这个文件的位置在/usr/local/mfs/etc/mfsmaster.cfg.我们打开这个配置文件                        ,看看都有哪些内容:
尽管每行都被注释掉了       ,但它们却是配置文件的默认值         ,要改变这些值                       ,需要取消注释           ,然后明确指定其取值             。接下来说明一下其中一些项目的含义                        。
LOCK_FILE = /var/run/mfs/mfsmaster.pid 文件锁所在的位置      ,它的功能是避免启动多次启动同一个守护进程       。由于系统中本来不存在目录 /var/run/mfs                      ,因此需要手动创建 mkdir /var/run/mfs               ,然后更改其属主 chown –R mfs:mfs /var/run/mfs 这样MFS 服务就能对这个目录有创建/写入 mfsmaster.pid 文件的权限了         。
DATA_PATH = /usr/local/mfs/var/mfs 数据存放路径   ,只元数据的存放路径                       。那么这些数据都包括哪些呢?进目录看看                     ,大致分3种类型的文件:
这些文件也同样要存储在其他数据存储服务器的相关目录           。
MATOCS_LISTEN_PORT = 9420 MATOCS--master to chunkserver                   ,即元数据服务器使用9420这个监听端口来接受数据存储服务器chunkserver端的连接      。
MATOCU_LISTEN_PORT = 9421 元数据服务器在9421端口监听,用以接受客户端对MFS进行远程挂接(客户端以mfsmount挂接MFS
其他部分看字面意思都不难理解                      。还有几个与时间有关的数值                 ,其单位是秒               。
这个配置文件                       ,不必做修改就能工作了   。
(一)元数据服务器master启动
元数据服务器可以单独启动   ,即使没有任何数据存储服务器(chunkserver)也是能正常工作的             ,因此当我们安装配置完MFS后                        ,即可启动它                     。执行命令 /usr/local/mfs/sbin/mfsmaster start       ,如果没有意外         ,元数据库服务器就应该作为一个守护进程运行起来                   。现在我们可以通过3个方面来检查一下MFS master的运行状况:
(四)        、关闭元数据服务器
关闭元数据服务器                       ,务必使用 /usr/local/mfs/sbin/mfsmaster –s 这种方式           ,如果直接使用kill杀死进程      ,将导致下次启动时出现找不到相关文件                      ,而不能正常启动服务器。这个一定要谨慎                 。当然               ,如果发生了这个事情   ,还是可以通过 mfsmetastore 来恢复的                       。
数据存储chunkserver服务器的安装配置
数据存储服务器chunkserver也是可以运行在各种类unix平台的                     ,因此不再多说   。一个MFS环境到底能集群多少服务器                   ,作者的说法是上PB容量,个人建议                 ,最好3台以上;并且专门用来做存储                       ,不要把它跟master搞到一个机器(理论上没问题   ,实现也是可以的             ,但这不是一个好策略)             。因为每个数据存储服务器的安装和配置都是相同的                        ,所以只需按照一个服务器的操作就可以了                        。
(一)            、安装数据存储服务器 chunkserver
1                    、下载GNU源码 wget [url]http://www.moosefs.com/files/mfs-1.5.12.tar.gz[/url]
2           、解包 tar zxvf mfs-1.5.12.tar.gz
3        、切换目录 cd mfs-1.5.12
4                     、创建用户 useradd mfs –s /sbin/nologin
5              、配置./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
6    、编译安装 make ; make install
(二)配置数据存储服务器chunkserver
数据存储服务器有2个配置服务器需要修改       ,一个是主配置文件 mfschunkserver.cfg ,另一个配置文件是 mfshdd.cfg       。每个服务器用来分配给 MFS使用的空间最好是一个单独的硬盘或者一个raid卷         ,最低要求是一个分区         。作者举的例子是创建一个大文件                       ,然后挂接在本地           ,这不好      ,只能用来做实验了                       。

1                      、修改配置文件 /usr/local/mfs/etc/mfschunkserver.cfg           。下面是修改了的配置文件:

这个配置文件里                      ,没有注释符号“#                        ”就是被修改过的项了               ,接下来是里面某些项的含义说明:
MASTER_HOST = 192.168.0.19 元数据服务器的名称或地址   ,可以是主机名                     ,也可以是ip地址                   ,只要数据存储服务器能访问到元数据服务器就行      。
LOCK_FILE = /var/run/mfs/mfschunkserver.pid 与元数据服务器master的处理完全相同.
CSSERV_LISTEN_PORT = 9422 CSSERV—chunkserver,这个监听端口用于与其它数据存储服务器间的连接,通常是数据复制                      。
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg分配给MFS使用的磁盘空间配置文件的位置               。
2                 、修改配置文件/usr/local/mfs/etc/mfshdd.cfg   。在我的服务器上                 ,只有一个1TSATA硬盘                       ,分了一个800G容量的分区来做为MFS存储服务的组成部分                     。为了使mfs拥有写目录的权限   ,需要修改目录的属主                   。我的服务器的分区挂接点是 /data , chown –R mfs:mfs /data 把属主改变。因为我的每个服务器只需贡献一个分区做为MFS,因此配置文件只需要如下一行内容就可以了:
(四)关闭数据存储服务器
跟元数据服务器master相似             ,执行命令 /usr/local/mfs/sbin/mfschunkserver –s , chunkserver服务就停下来了                 。为了使系统重启过程能自动启动chunkserver服务                        ,可以通过在/etc/rc.local文件追加行 /usr/local/mfs/sbin/mfschunkserver start 来达到这个目的(master的自动重启处理也可同样处理)                       。

本文出自 “sery       ” 博客       ,请务必保留此出处http://sery.blog.51cto.com/10037/147756

声明:本站所有文章         ,如无特殊说明或标注                       ,均为本站原创发布   。任何个人或组织           ,在未征得本站同意时      ,禁止复制、盗用                   、采集                    、发布本站内容到任何网站    、书籍等各类媒体平台             。如若本站内容侵犯了原著者的合法权益                      ,可联系我们进行处理                        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
递归树求解递归式例题(分享关于递归树形结构增删改查的方法) systeminfo无法启动服务(电脑systeminfo命令打不开提示systeminfo.exe丢失怎么办?)