博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos 安装 Moosefs文件系统
阅读量:4702 次
发布时间:2019-06-09

本文共 11205 字,大约阅读时间需要 37 分钟。

一.环境介绍

Moosefs master:192.168.55.148
Moosefs Metalogger:192.168.55.149
Moosefs Chunk-01:192.168.55.150
Moosefs Chunk-02:192.168.55.151

Moosefs Client:192.168.55.152

 

 二.安装

#########################################################

1) master安装

$ yum install -y wget gcc zlib zlib-devel$ cd /usr/local/src$ groupadd mfs$ useradd -g mfs mfs -s /sbin/nologin -M$ wget http://www.moosefs.org/tl_files/mfscode/mfs-1.6.27-1.tar.gz$ tar zxvf mfs-1.6.27-1.tar.gz$ cd cd mfs-1.6.27$ ./configure --prefix=/usr/local/mfs \--with-default-user=mfs \--with-default-group=mfs \--disable-mfschunkserver \--disable-mfsmount$ make$ make install

 

$ cp rpm/rh/mfsmaster.init /etc/init.d/mfsmaster$ cp rpm/rh/mfscgiserv.init /etc/init.d/mfscgiserv$ chmod 755 /etc/init.d/mfsmaster$ chmod 755 /etc/init.d/mfscgiserv$ ln -s /usr/local/mfs/sbin/mfsmaster /usr/sbin/$ ln -s /usr/local/mfs/sbin/mfscgiserv /usr/sbin/$ ln -s /usr/local/mfs/etc/mfs /etc/mfs$ cd /usr/local/mfs/etc/mfs$ cp mfsmaster.cfg.dist mfsmaster.cfg$ cp mfsmetalogger.cfg.dist mfsmetalogger.cfg$ cp mfsexports.cfg.dist mfsexports.cfg$ cp mfstopology.cfg.dist mfstopology.cfg

 

[root@localhost mfs]# more mfsexports.cfg | grep -v "^#"*    /    rw,alldirs,maproot=0*    .    rw

 

$ cd /usr/local/mfs/var/mfs/$ cp metadata.mfs.empty metadata.mfs$ vi /etc/hosts1921.68.55.148 mfsmaster

 

$ vi /etc/init.d/mfsmaster #!/bin/bash## Init file for the MooseFS master service## chkconfig: - 92 84## description: MooseFS master## processname: mfsmaster# config: @sysconfdir@/mfsmaster.cfg# Source function library.. /etc/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "${NETWORKING}" == "no" ] && exit 0[ -x "/usr/sbin/mfsmaster" ] || exit 1[ -r "/etc/mfs/mfsexports.cfg" -o -r "/etc/mfs/mfsexports.cfg" ] || exit 1RETVAL=0prog="mfsmaster"start () {echo -n $"Starting $prog: "daemon $prog $OPTIONSRETVAL=$?echo[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progreturn $RETVAL}stop () {echo -n $"Stopping $prog: "$prog stop $OPTIONS || killproc $prog >/dev/null 2>&1RETVAL=$?echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progreturn $RETVAL}restart () {stopstart}case "$1" instart)start;;stop)stop;;restart|reload)restart;;condrestart)[ -e /var/lock/subsys/$prog ] && restartRETVAL=$?;;status)status $progRETVAL=$?;;*)echo $"Usage: $0 {start|stop|restart|condrestart|status}"RETVAL=1esacexit $RETVAL   $ touch /usr/local/mfs/var/mfs/.mfscgiserv.lock$ chmod 777 /usr/local/mfs/var/mfs/.mfscgiserv.lock  $ vi /etc/init.d/mfscgiserv #!/bin/bash## Init file for the MooseFS CGI monitor service## chkconfig: - 93 83## description: MooseFS CGI server## processname: mfscgiserv# Source function library.. /etc/init.d/functions# Source networking configuration.. /etc/sysconfig/networkMFSCGISERV_USER=nobody# Source initialization configuration.# Check that networking is up.[ "${NETWORKING}" == "no" ] && exit 0[ -x "/usr/sbin/mfscgiserv" ] || exit 1RETVAL=0prog="mfscgiserv"start () {echo -n $"Starting $prog: "daemon --user $MFSCGISERV_USER $prog $OPTIONSRETVAL=$?echo[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progreturn $RETVAL}stop () {echo -n $"Stopping $prog: "$prog stop $OPTIONS || killproc $prog >/dev/null 2>&1RETVAL=$?echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progreturn $RETVAL}restart () {stopstart}case "$1" instart)start;;stop)stop;;restart|reload)restart;;condrestart)[ -e /var/lock/subsys/$prog ] && restartRETVAL=$?;;status)status $progRETVAL=$?;;*)echo $"Usage: $0 {start|stop|restart|condrestart|status}"RETVAL=1esacexit $RETVAL

  

$ /etc/init.d/mfsmaster$ /etc/init.d/mfscgiserv start$ chkconfig --add mfsmaster$ chkconfig -add mfscgiserv$ chkconfig mfsmaster on$ chkconfig mfscgiserv on

 

#################################################################
2)Metalogger Server install

 

$ yum install -y wget gcc zlib zlib-devel$ cd /usr/local/src/$ groupadd mfs$ useradd -g mfs mfs -s /sbin/nologin -M$ tar zxvf mfs-1.6.27-1.tar.gz$ cd mfs-1.6.27$ ./configure --prefix=/usr/local/mfs \--with-default-user=mfs \--with-default-group=mfs \--disable-mfschunkserver \--disable-mfsmount$ make$ make install

 

$ ln -s /usr/local/mfs/sbin/mfsmetalogger /usr/sbin/$ ln -s /usr/local/mfs/etc/mfs /etc/mfs$ cp rpm/rh/mfsmetalogger.init /etc/init.d/mfsmetalogger$ chmod 755 /etc/init.d/mfsmetalogger$ cd /usr/local/mfs/etc/mfs/$ cp mfsmetalogger.cfg.dist mfsmetalogger.cfg$ vi /etc/hosts$ 192.168.55.149 mfsmaster

 

$ vi /etc/init.d/mfsmetalogger #!/bin/bash## Init file for the MooseFS metalogger service## chkconfig: - 92 84## description: MooseFS metalogger## processname: mfsmetalogger# config: @sysconfdir@/mfsmetalogger.cfg# Source function library.. /etc/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Source initialization configuration.#[ -r "/usr/sbin/mfsmetalogger" ] && . /usr/sbin/mfsmetalogger# Check that networking is up.[ "${NETWORKING}" == "no" ] && exit 0[ -x "/usr/sbin/mfsmetalogger" ] || exit 1RETVAL=0prog="mfsmetalogger"start () {echo -n $"Starting $prog: "daemon $prog $OPTIONSRETVAL=$?echo[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progreturn $RETVAL}stop () {echo -n $"Stopping $prog: "$prog stop $OPTIONS || killproc $prog >/dev/null 2>&1RETVAL=$?echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progreturn $RETVAL}restart () {stopstart}case "$1" instart)start;;stop)stop;;restart|reload)restart;;condrestart)[ -e /var/lock/subsys/$prog ] && restartRETVAL=$?;;status)status $progRETVAL=$?;;*)echo $"Usage: $0 {start|stop|restart|condrestart|status}"RETVAL=1esacexit $RETVAL   $ chkconfig --add mfsmetalogger$ chkconfig mfsmetalogger on

 

############################################################

3) Chunk Server install

$ yum install -y wget gcc zlib zlib-devel$ cd /usr/local/src/$ groupadd mfs$ useradd -g mfs mfs -s /sbin/nologin -M$ tar zxvf mfs-1.6.27-1.tar.gz$ cd mfs-1.6.27$ ./configure --prefix=/usr/local/mfs \--with-default-user=mfs \--with-default-group=mfs \--disable-mfsmaster$ make$ make install

 

$ ln -s /usr/local/mfs/etc/mfs /etc/mfs$ ln -s /usr/local/mfs/sbin/mfschunkserver /usr/sbin/$ cp rpm/rh/mfschunkserver.init /etc/init.d/mfschunkserver$ chmod 755 /etc/init.d/mfschunkserver

 

$ cd /usr/local/mfs/etc/mfs$ cp mfshdd.cfg.dist mfshdd.cfg$ cp mfschunkserver.cfg.dist mfschunkserver.cfg

 

#创建2个挂载磁盘$ mkdir -p /storage/mfschunks$ dd if=/dev/zero of=/storage/mfschunks/mfschunks1 bs=1024 count=1 seek=$((2*1024*1024-1))$ mkfs -t ext4 /storage/mfschunks/mfschunks1$ mkdir -p /mnt/mfschunks1$ mount -t ext4 -o loop /storage/mfschunks/mfschunks1 /mnt/mfschunks1$ dd if=/dev/zero of=/storage/mfschunks/mfschunks2 bs=1024 count=1 seek=$((2*1024*1024-1))$ mkfs -t ext4 /storage/mfschunks/mfschunks2$ mkdir -p /mnt/mfschunks2$ mount -t ext4 -o loop /storage/mfschunks/mfschunks2 /mnt/mfschunks2$ chown -R mfs:mfs /mnt/mfschunks1 /mnt/mfschunks2

 

#编辑添加挂载分区$ vi /etc/mfs/mfshdd.cfg# mount points of HDD drives##/mnt/hd1#/mnt/hd2#etc./mnt/mfschunks1/mnt/mfschunks2

 

#写入hosts$ vi /etc/hosts192.168.55.148 mfsmaster

 

$ vi /etc/init.d/mfschunkserver #!/bin/bash## Init file for the MooseFS chunkserver service## chkconfig: - 93 83## description: MooseFS chunkserver## processname: mfschunkserver# config: @sysconfdir@/mfschunkserver.cfg# Source function library.. /etc/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Source initialization configuration.#[ -r "/usr/sbin/mfschunkserver" ] && . /usr/sbin/mfschunkserver# Check that networking is up.[ "${NETWORKING}" == "no" ] && exit 0[ -x "/usr/sbin/mfschunkserver" ] || exit 1[ -r "/etc/mfs/mfshdd.cfg" -o -r "/etc/mfs/mfshdd.cfg" ] || exit 1RETVAL=0prog="mfschunkserver"start () {echo -n $"Starting $prog: "daemon $prog $OPTIONSRETVAL=$?echo[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progreturn $RETVAL}stop () {echo -n $"Stopping $prog: "$prog stop $OPTIONS || killproc $prog >/dev/null 2>&1RETVAL=$?echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progreturn $RETVAL}restart () {stopstart}case "$1" instart)start;;stop)stop;;restart|reload)restart;;condrestart)[ -e /var/lock/subsys/$prog ] && restartRETVAL=$?;;status)status $progRETVAL=$?;;*)echo $"Usage: $0 {start|stop|restart|condrestart|status}"RETVAL=1esacexit $RETVAL

 

$ chkconfig --add mfschunkserver$ chkconfig mfschunkserver on

 

###############################################
4) Client install

$ yum install -y wget gcc zlib zlib-devel$ cd /usr/local/src/$ groupadd mfs$ useradd -g mfs mfs -s /sbin/nologin -M$ wget http://nchc.dl.sourceforge.net/project/buluoos/0.2/src/fuse-2.8.5.tar.gz$ tar zxvf fuse-2.8.5.tar.gz$ cd fuse-2.8.5$ ./configure$ make && make install$ echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile$ source /etc/profile$ lsmod |grep fusefuse 73530 0

 

  

#################################

#lsmod |grep fuse #检查fuse是否加载到内核,若没有,执行下面命令
#modprobe fuse&&lsmod |grep fuse
###############################

$ cd /usr/local/src/$ tar zxvf mfs-1.6.27-1.tar.gz$ cd mfs-1.6.27$ ./configure --prefix=/usr/local/mfs \--with-default-user=mfs \--with-default-group=mfs \--$ disable-mfsmaster \--disable-mfschunkserver$ make$ make install$ ln -s /usr/local/mfs/bin/* /usr/sbin/
$ vi /etc/hosts192.168.1.1 mfsmaster$ mkdir -p /mnt/mfs$ /usr/local/mfs/bin/mfsmount /mnt/mfs -H mfsmaster$ df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root 11G 948M 8.8G 10% /tmpfs 116M 0 116M 0% /dev/shm/dev/sda1 485M 32M 428M 7% /bootmfsmaster:9421 6.3G 0 6.3G 0% /mnt/mfs

  

###TEST###

write:
time dd if=/dev/zero of=/mnt/mfs/test500m bs=1024k count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 6.14798 s, 85.3 MB/s

real 0m6.173s

user 0m0.001s
sys 0m0.973s

 

read:

time dd if=/mnt/mfs/test500m of=/dev/null

 

 

  

[root@localhost mfs]# mkdir 10 #创建目录[root@localhost mfs]# mfssetgoal 2 /mnt/mfs/10 #设置副本份数/mnt/mfs/10: 2  [root@localhost mfs]# mfsgetgoal -r /mnt/mfs/10 #查看副本数/mnt/mfs/10:directories with goal 2 : 1

 

[root@localhost mfs]# mfssettrashtime -r 0 /mnt/mfs/10 #设置延迟删除时间/mnt/mfs/10:inodes with trashtime changed: 1inodes with trashtime not changed: 0inodes with permission denied: 0[root@localhost mfs]# mfsgettrashtime -r /mnt/mfs/10 #查看延迟删除时间/mnt/mfs/10:directories with trashtime 0 : 1

  

[root@localhost mfs]# mfscheckfile /mnt/mfs/10/d.jpg #查看文件副本数/mnt/mfs/10/d.jpg:chunks with 2 copies: 1  [root@localhost mfs]# mfsfileinfo /mnt/mfs/10/d.jpg #查看文件储存详细信息/mnt/mfs/10/d.jpg:chunk 0: 00000000000000C5_00000001 / (id:197 ver:1)copy 1: 192.168.55.150:9422copy 2: 192.168.55.151:9422

 

[root@localhost mfs]# mfsdirinfo /mnt/mfs/10/mnt/mfs/10/:inodes: 2directories: 1files: 1chunks: 1length: 186050size: 201728realsize: 403456

#查看日志,默认打印在/var/log/messages下面
tail -f /var/log/messages

 

 

#故障切换(来自网络中总结)

(1)metalogger服务器中需要备份master的两个配置文件,由于配置文件不是经常变化,因此通过定时脚本进行文件同步即可。

(2)当metalogger没有下载metadata之前,不能使用期接管master。此时metarestore程序会运行失败。

(3)metarestore程序是根据metalogger中定期下载的metadata和changelog来恢复master挂掉时刻master所记录的整个mfs的信息。

metalogger的注意事项

1、部署metalogger的服务器的open files数目必须大于或者等于5000,

2、metalogger在启动时不会下载metadata,而是等到第一个下载周期的下载时间点时再去下载,metalogger下载metadata的时间点是每小时的10分30秒,时间间隔是1小时的整数倍。

3、metalogger不是在启动的时候就取下载metadata,而是必须等到下载时间点(2中所述)才会去下载。也就是说,metalogger为确保正确性,要在启动后最少一个小时以内master和metalogger都要保持良好的状态。

转载于:https://www.cnblogs.com/caoguo/p/4793424.html

你可能感兴趣的文章
C# 实现对接电信交费易自动缴费
查看>>
斐波那契数列-兔子问题
查看>>
03007_HttpServlet
查看>>
java中经常使用的Swing组件总结
查看>>
EnoroF's Game Engine
查看>>
aar jar包打包
查看>>
Kettle
查看>>
基础知识1----传值方式调用函数--请输出结果
查看>>
day6 bytes类型用法
查看>>
源码 补码以及反码
查看>>
MVC涉及RouteTable自定义路径
查看>>
python3.6在linux持久运行django
查看>>
hibernate学习(1)——helloworld
查看>>
面向对象
查看>>
SQL 创建索引,语法
查看>>
C++primer plus第六版课后编程题答案7.5
查看>>
【建立二叉树】后序建立二叉树
查看>>
Java多线程sleep(),join(),interrupt(),wait(),notify()
查看>>
配置coffeeScript
查看>>
单链表的建立、排序和翻转
查看>>