• MFS文件系统


    一、MFS文件系统概论

         MFS是linux下的开源存储系统,是由波兰人开发的。MFS文件系统能够实现RAID的功能,不但能够节约存储成本,而且不逊于专业的存储系统,能够实现在线扩展。MFS是一种半分布式文件系统。

    MFS的网络分三部分组成,MASTER SERVER、CHUNK SERVER 和 CLIENT,其中MASTER SERVER只有一个,而CHUNK SERVER 和CLIENT可以有多个。

    二、MFS文件系统体系结构

    MFS文件系统结构包含4种角色,分别是:

    1、管理服务器(元数据服务器)--MASTER SERVER

    2、元数据日志服务器--Metalogger

    3、数据存储服务器--CHUNK SERVER

    4、客户端--client

      三、MFS的编译与安装实例

    安装环境:Centos 6.5

    系统内核:2.6.32-431.el6.x86_64

    软件版本:mfs-1.6.11-1.tar.gz

    客户端软件 :fuse-2.7.4.tar.gz

    服务器分配:

    服务分配   IP地址
    主控服务器(Master server) 10.10.100.114
    主控备份服务器(Metalogger server) 10.10.100.115
    存储块服务器(Chunk server) 10.10.100.116
    存储块服务器(Chunk server) 10.10.100.117
    客户端主机(Clients) 10.10.100.93

    echo "10.10.100.114 mfsmaster" >> /etc/hosts   #在各主机上面将主控服务器写入host,这样就不用改配置文件了

    主控服务器(Master server) 安装:

    [root@localhost ~]# groupadd mfs
    [root@localhost ~]# useradd -g mfs mfs 或者  useradd -s /sbin/nologin mfs
    [root@localhost soft]#mfs-1.6.11-1.tar.gz
    [root@localhost soft]#cd mfs-1.6.11
    
    #当我们安装主控服务器时,在配置过程中(./configure),可以取消安装chunk server(--disable-mfschunkserver)以及MooseFS 客户端(--disable-mfsmount)安装
    [root@localhost mfs-1.6.11]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
    [root@localhost mfs-1.6.11]# make
    [root@localhost mfs-1.6.11]# make install
    [root@localhost mfs-1.6.11]# cd /usr/local/mfs/etc
    [root@localhost etc]# pwd
    /usr/local/mfs/etc
    [root@localhost etc]# cp mfsmaster.cfg.dist mfsmaster.cfg				#拷贝模板文件重命名得到主配置文件
    
    #拷贝模板文件重命名得到权限控制文件
    [root@localhost etc]# cp mfsexports.cfg.dist mfsexports.cfg
    [root@localhost etc]# cd ../var/mfs/
    [root@localhost mfs]# cp metadata.mfs.empty metadata.mfs
    #配置文件mfsexports.cfg指定那些客户端主机可以远程挂接MooseFS文件系统,以及赋予客户端什么样的访问权限
    
    例如.我们指定只有10.10.100.*网段的主机可以以读写模式访问MooseFS的整个共享资
    [root@localhost etc]# vim mfsexports.cfg
    10.10.100.0/24          /       rw,alldirs,maproot=0  
    #主配置文件的内容以及含义
    vim mfsmaster.cfg
    
    # 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 被挂接目录及其权限控制文件的存放位置
    # DATA_PATH = /usr/local/mfs/var/mfs     数据存放路径,此目录下大致有三类文件,changelog,sessions和stats;
    # BACK_LOGS = 50 metadata 的改变log 文件数目(默认是50);
    # REPLICATIONS_DELAY_INIT = 300     延迟复制的时间(默认是300s);
    # REPLICATIONS_DELAY_DISCONNECT = 3600 chunkserver     断开的复制延迟(默认是3600);
    # MATOML_LISTEN_HOST = * metalogger     监听的IP 地址(默认是*,代表任何IP);
    # MATOML_LISTEN_PORT = 9419 metalogger     监听的端口地址(默认是9419);
    # MATOCS_LISTEN_HOST = *         用于chunkserver 连接的IP 地址(默认是*,代表任何IP);
    # MATOCS_LISTEN_PORT = 9420     用于chunkserver 连接的端口地址(默认是9420);
    # MATOCU_LISTEN_HOST = *             用于客户端挂接连接的IP 地址(默认是*,代表任何IP);
    # MATOCU_LISTEN_PORT = 9421   用于客户端挂接连接的端口地址(默认是9421);
    # CHUNKS_LOOP_TIME = 300           chunks 的回环频率(默认是:300 秒);
    注:原文为Chunks loop frequency in seconds (default is 300)
    # CHUNKS_DEL_LIMIT = 100
    # CHUNKS_WRITE_REP_LIMIT = 1     在一个循环里复制到一个chunkserver 的最大chunk数目(默认是1)
    # CHUNKS_READ_REP_LIMIT = 5     在一个循环里从一个chunkserver 复制的最大chunk数目(默认是5)
    # REJECT_OLD_CLIENTS = 0             弹出低于1.6.0的客户端挂接(0 或1,默认是0)
    主配置文件的内容以及含义

    启动前准备:

    echo "10.10.100.114  mfsmaster">> /etc/hosts
    
    启动mfsmaster: /usr/local/mfs/sbin/mfsmaster start
    
    启动监控服务:/usr/local/mfs/sbin/mfscgiserv
    
    浏览器访问地址:http://10.10.100.114:9425/mfs.cgi,可以看到MFS信息。
    

    元数据日志服务器的安装和配置

    [root@localhost soft]# tar -zxvf mfs-1.6.11-1.tar.gz 
    [root@localhost soft]# useradd -s /sbin/nologin mfs
    [root@localhost soft]# cd mfs-1.6.11
    [root@localhost mfs-1.6.11]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
    [root@localhost mfs-1.6.11]# make && make install
    
    #生成MFS备份服务器的配置文件
    [root@localhost mfs-1.6.11]# cd /usr/local/mfs/etc/
    [root@localhost etc]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
    
    启动元数据日志服务前准备.
    echo "10.10.100.114  mfsmaster">> /etc/hosts
    
    [root@localhost etc]# /usr/local/mfs/sbin/mfsmetalogger start
    working directory: /usr/local/mfs/var/mfs
    lockfile created and locked
    initializing mfsmetalogger modules ...
    mfsmetalogger daemon initialized properly
    

    可以查看日志验证备份服务器是否安装成功

    Mar 25 15:12:04 localhost mfsmetalogger[27148]: set gid to 501
    Mar 25 15:12:04 localhost mfsmetalogger[27148]: set uid to 501
    Mar 25 15:12:04 localhost mfsmetalogger[27150]: connecting ...
    Mar 25 15:12:04 localhost mfsmetalogger[27150]: open files limit: 5000
    Mar 25 15:12:04 localhost mfsmetalogger[27150]: connected to Master
    Mar 25 15:13:00 localhost mfsmetalogger[27150]: sessions downloaded 8B/0.000502s (0.016 MB/s)
    Mar 25 15:14:00 localhost mfsmetalogger[27150]: sessions downloaded 8B/0.000631s (0.013 MB/s)
    可以看到我们的备份服务器正常启动
    

    设置开机启动服务编辑/etc/rc.local添加

    /uar/local/mfs/sbin/mfsmetalogger start
    

    存储服务器Chunk Server的安装

    [root@localhost soft]#tar zxvf mfs-1.6.11.tar.gz
    [root@localhost soft]# useradd -s /sbin/nologin mfs
    [root@localhost soft]# cd mfs-1.6.11
    [root@localhost soft]#./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster
    [root@localhost mfs-1.6.11]# make && make install
    
    准备Chunk Server所需要的配置文件
    
    [root@localhost mfs-1.6.11]# cd /usr/local/mfs/etc/
    [root@localhost etc]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
    [root@localhost etc]# cp mfshdd.cfg.dist mfshdd.cfg
    
    #编辑主配置文件[如果写了hosts echo "10.10.100.114  mfsmaster">> /etc/hosts]则不用修改配置文件.
    #[root@localhost etc]# vim mfschunkserver.cfg
    #MASTER_HOST = 10.10.100.114
    #MASTER_PORT = 9420
    
    [root@localhost etc]# vim mfshdd.cfg
    /data
    

    启动数据存储服务器

    echo "10.10.100.114  mfsmaster">> /etc/hosts
    [root@localhost etc]# /usr/local/mfs/sbin/mfschunkserver start
    working directory: /usr/local/mfs/var/mfs
    lockfile created and locked
    initializing mfschunkserver modules ...
    init: hdd space manager failed !!!
    error occured during initialization - exiting
    
    结果出现错误,通过检查得知/data挂载点的属主和属组没有修改成mfs
    [root@localhost etc]# chown -R mfs.mfs /data/
    [root@localhost etc]# /usr/local/mfs/sbin/mfschunkserver start
    working directory: /usr/local/mfs/var/mfs
    lockfile created and locked
    initializing mfschunkserver modules ...
    scanning folder /data/ ...
    /data/: 0 chunks found
    scanning complete
    main server module: listen on *:9422
    no charts data file - initializing empty charts
    mfschunkserver daemon initialized properly
    

    设置开机启动服务编辑/etc/rc.local添加

    /uar/local/mfs/sbin/mfschunkserver start
    

    MFS客户端安装:

    http://www.turbolinux.com.cn/turbo/wiki/doku.php?do=export_xhtml&id=ntfs-3g
    
    [root@localhost soft]#tar -zxvf fuse-2.8.5.tar.gz
    [root@localhost soft]#cd fuse-2.8.5
    [root@localhost soft]#./configure 
    [root@localhost soft]#make && make install
      或者直接用yum安装
    yum -y install fuse.x86_64 fuse-devel.x86_64 fuse-libs.x86_64
    modprobe fuse  #保证fuse模块被加入到内核 
    
    [root@localhost soft]#tar zxvf mfs-1.6.11.tar.gz
    [root@localhost soft]# useradd -s /sbin/nologin mfs
    [root@localhost soft]# cd mfs-1.6.11
    [root@localhost soft]#./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
    
    [root@localhost mfs-1.6.11]# make && make install
    

    创建挂载点

    [root@localhost mfs-1.6.11]# mkdir /mfs
    [root@localhost ~]# /usr/local/mfs/bin/mfsmount /mfs -H 10.10.100.114
    mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root
    

    浏览器访问地址:http://10.10.100.114:9425/mfs.cgi,可以看到MFS信息。

    MFS必备命令:

    #查看某文件
    /usr/local/mfs/bin/mfsgetgoal /mfs/
    
    #查看目录信息
    /usr/local/mfs/bin/mfsdirinfo -H /mfs/
    
    #写入性能测试:
    
    dd if=/dev/zero of=1.img bs=1M count=50
    
    #读取性能测试:
    
    dd if=1.img bs=1M |dd of=/dev/null
    
    #设置副本的份数,推荐3份
    /usr/local/mfs/bin/mfssetgoal -r 3 /mfs
    
  • 相关阅读:
    需求分析作业01
    2016年秋季个人阅读计划
    个人总结
    梦断代码读后感03
    进度条16
    我的第一个小系统总结
    进度条15
    eclipse连接SqlServer2008(被它搞得惨兮兮)
    梦断代码读后感02
    Android ViewPager刷新解析
  • 原文地址:https://www.cnblogs.com/saneri/p/5328291.html
Copyright © 2020-2023  润新知