• moosefs的安装使用及遇到的问题


     一、获取源码安装包

    到官网下载最新版本moosefs:
    https://moosefs.com/download/sources-archive-3-0.html
    到官网下载最新版本fuse源码
    https://github.com/libfuse/libfuse
    也可以下载rpm包:
    http://www.rpmfind.net/linux/rpm2html/search.php?query=libfuse-devel

    还可以:
    yum install -y fuse fuse-devel

    二、安装

    先添加mfs用户:

    [root@localhost mfs]# groupadd mfs
    [root@localhost mfs]# useradd -g mfs mfs

    然后就是正常的源码安装过程:

    [root@local mfs]#./configure --prefix=/usr/local/moosefs --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs 
    [root@local mfs]# make
    [root@local mfs]# makeinstall

    configure中--disable-mfschunkserver --disable-mfsmount --disable-mfsmaster这三个是可选项,比如使用前两个,就表示服务器上只装master,metalogserver和master是一样的。

    三、修改配置文件

    [root@localhost mfs]# cd /etc/mfs
    [root@localhost mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg
    [root@localhost mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
    [root@localhost mfs]# cp mfsexports.cfg.sample mfsexports.cfg
    [root@localhost mfs]# vi mfsexports.cfg
    * / rw,alldirs,ignoregid,maproot=0:0,mapall=0:0
    
    [root@localhost mfs]# cd /var/lib/mfs
    [root@localhost mfs]# cp metadata.mfs.empty metadata.mfs
    [root@localhost mfs]# chown -R mfs:mfs /var/lib/mfs
    [root@localhost mfs]# vi /etc/hosts
    192.168.1.1 mfsmaster

    修改配置文件,基本上是把原来命名的配置文件样例重新命名成标准配置文件;
    mfsexports.cfg中的配置文件,是为了赋予访问权限;
    /etc/hosts中标识master的ip,是为了给mfscgiserv和mfschunkserver找mfsmaster用的。

    四、启动和停止

    启动:

    [root@lh mfs]# mfsmaster start
    [root@lh mfs]# mfscgiserv start
    [root@lh mfs]# mfsmetalogger start
    [root@lh mfs]# mfschunkserver start

    停止:

    [root@lh mfs]# mfsmaster stop
    [root@lh mfs]# mfscgiserv stop
    [root@lh mfs]# mfsmetalogger stop
    [root@lh mfs]# mfschunkserver stop

    五、mfs的使用

    安装好后就到有mfsmount的的服务器上挂载一个本地目录:(后面跟的是master的ip)

    [root@lh mfs]mfsmount /mnt/mfs/ -H 192.168.1.1

    其实本身mfsmount就相当于是一个客户端。使用的时候就把挂载的目录当成本地的磁盘目录一样使用即可。不过此目录使用的是mfschunk上的空间,而操作这个云文件系统的命令都封装在在mfstool中:

    [root@lh mfs]# man mfstools

    Mossefs整个系统的状态(mfschunk、mfsmaster、mfsmount、mfsmetalogger和文件等)的状态都可以用mfs自带的cgi查看,网址:

    " http://ip.to.mfscgi.server:9425/ "

    其中goal表示一个文件复制了几份,copy表示文件放在了几个服务器上,这些也都可以用mfstools中的fileinfo和checkfile命令查看。

    六、mfs见过的错误和解决方法

       1、mfsmount取消挂载的问题:

    ps -ef | grep mfsmount 
    fuser -m -k -i [mfsmountpid]
    如果不行就
    kill -9 [mfsmountpid]
    如果df或者访问/path/to/mountdir卡死,那么就
    umount -l /mnt/mfs
    然后killall mfsmount
    当然卡死也有可能是由于与服务端网络不通断开连接,这种情况下kill掉mfsmount会导致mfsmount编程僵尸进程,
    所以建议在mfsmount时加上参数-o mfstimeout N来指定IO出错的超时时间。

       2、新加的服务器死活连到master上都是disconnect的状态

    到mfschunkserver所在的服务器:

    [root@lh mfs]#tail -100f /var/log/message
    [root@lh mfs]#Aug 11 11:24:14 localhost mfschunkserver[15871]: connected to Master
    [root@lh mfs]#Aug 11 11:24:14 localhost mfschunkserver[15871]: MATOCS_MASTER_ACK - wrong meta data id. Can't connect to master

    那么就清空/var/lib/mfs目录,
    然后到好的chunkserver的disk(也就是mfschunk1,2,3之类的)目录下复制".metaid"文件到目标disk,问题就可以解决了。

    3、权限问题
    can't create lockfile in working directory: Permission denied
    [root@lh mfs]# chown -R mfs:mfs /path/to/thatdir

    4、目录非空
    fuse: mountpoint is not empty
    那就删了再来,或者换个目录,或者修复:
    fsck -y /dev/sda1

  • 相关阅读:
    svn中出现各种感叹号说明
    Oracle“记录被另一个用户锁住” 无法更新删除的解决办法
    C/C++中extern关键字详解
    Oracle创建视图view权限不足问题剖析
    和菜鸟一起学linux之常见错误的解决和常用命令
    万能数据库查询分析器使用技巧之(十一)
    orale中如何获取当前月份?
    “刘易斯拐点”后劳动力市场中的信任与有效性
    “微”力无穷:企业微信营销全攻略
    2小时精通金数据
  • 原文地址:https://www.cnblogs.com/bugutian/p/5760434.html
Copyright © 2020-2023  润新知