8.         存储块服务器Chunk servers 配置:

#cd  /usr/local/mfs/etc

#cp  mfschunkserver.cfg.dist  mfschunkserver.cfg

#cp  mfshdd.cfg.dist   mfshdd.cfg

#chown –R  mfs:mfs /usr/local/mfs   

 注:这个很重要,否则mfs用户没权限。

我们保留mfschunkserver.cfg 文件不做任何改动;使用默认设置,想知到更多请查看手册页 (

man /usr/local/mfs/share/man/man5/mfschunkserver.cfg.5)

在配置文件mfshdd.cfg 中,我们给出了用于客户端挂接MooseFS 分布式文件系统根分区所使用的共享空间在各个chunkserver上的实际位置。建议在chunk server 上划分单独的空间给 MooseFS 使用,这样做的好处是便于管理剩余空间。

 我的两台chunk server分区是一样的,如下图:

moosefs+keepalived双机高可用热备解决方案-02 by李靖_第1张图片

此处我们假定要为在centos6_02centos_03/moosefs做映射,只要两台mfshdd.cfg 加入下面/moosefs即可。

moosefs+keepalived双机高可用热备解决方案-02 by李靖_第2张图片

在启动chunk server 前,需确保用户mfs 有权限读写将要被挂接的分区(因为chunk server

行时要在此创建一个.lock 的文件):

#chown -R mfs:mfs /moosefs

类似地,修改/etc/hosts 文件,增加下面的行:

10.0.8.1  mfsmaster

开始启动chunk server:

#/usr/local/mfs/mfschunkserve rstart

现在再通过浏览器访问 http://10.0.8.1:9425/ 应该可以看见这个MooseFS 系统的全部信息,

包括主控master metalogger以及chunkserver

moosefs+keepalived双机高可用热备解决方案-02 by李靖_第3张图片

  9.         客户端 computers 安装

1、为了挂接基于MooseFS 分布式文件,客户端主机必须安装FUSE 软件包

# yum -y install fuse fuse-devel

 

2、安装客户端软件 mfsmount 的步骤:

# useradd -M -s /sbin/nologin mfs

#mkdir  /usr/local/mfs

#wgethttp://pro.hit.gemius.pl/hitredir?id=p4M1jTM4nRhU008M3Fe_sOUC3wjpXEbik3RJMrUmhjn.l7&et=1&extra=moosefsVersion%3D2.0.66&url=http://ppa.moosefs.com/src/moosefs-2.0.66-1.tar.gz

#tar  -zxvf  moosefs-2.0.66-1.tar.gz

#cd   moosefs-2.0.66

#./configure--prefix=/usr/local/mfs  --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster -disable-mfschunkserver

#make

#make install

修改文件/etc/hosts ,增加如下的文本行:

10.0.8.1  mfsmaster

  1. 10.         客户端 computers 挂载mfs文件系统

假定客户端的挂接点是/mnt/data/mnt/moosefs我们将以下面的指令来使用Moosefs 分布式共享文件系统:

1创建挂接点

#mkdir  -p /mnt/data

#mkdir  -p /mnt/moosefs

2、开始挂接操作

#/usr/local/mfsbin/mfsmount  /mnt/data  -H mfsmaster -p

也可以用 

#/usr/local/mfs/bin/mfsmount /mnt/data  -H 10.0.8.1 –p

注:上面我们指定了挂载点 /mnt/data,没有指定mfs的挂载源,那么默认为mfs文件系统的/ 点。

如果要指定我们用 –S即可。

执行命令df –Th 检查分区情况,可能的输出如下:

moosefs+keepalived双机高可用热备解决方案-02 by李靖_第4张图片

在 /mnt/data中创建目录data

#mkdir /mnt/data/data

#ls  /mnt/data

wKiom1VcQr7C7ul-AAC4pCEZTGU563.jpg

3、挂载非mfs文件系统的 / ,现在我们来挂载下 /data点,也是就是刚才创建的。

#/usr/local/mfsbin/mfsmount  /mnt/data   -S data -H mfsmaster

也可以用 

#/usr/local/mfs/bin/mfsmount /mnt/dataS data  -H 10.0.8.1

注:这里不用-p是因为前在设mfsexports.cfg是没有为/data目录设密码。

  1. 11.         停止 MooseFS方法

为了安全停止MooseFS 集群,建议执行如下的步骤:

在所有客户端用Unmount 命令先卸载文件系统(本例将是: umount /mnt/mfs)

停止chunk server 进程:/usr/local/mfs/sbin/mfschunkserver stop

停止 metalogger 进程:/usr/local/mfs/sbin/mfsmetalogger stop

停止主控 master server 进程:/usr/local/mfs/sbin/mfsmaster stop

 

到此 mfs全部完成。

 

Keepalived安装配置

Keepalived安装:

mfsmastertmfsmetalogger安装keepalived,要先安装openssl-devel,popt-devel等。

./configure --prefix=/usr/local/keepalived

make&&make  install

keeplived配置

mfsmaster 10.0.8.1上的keeplived配置vim/usr/local/keepalived/keepalived.conf

!Configuration File for keepalived

global_defs{

   notification_email {

     [email protected]

      }

   notification_email_from [email protected]

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id mfs_keepalived_bylijing

}

vrrp_scriptcheck_run {

   script"/usr/local/mfs/check_master_bylijing.sh"

   interval 2

 

}

vrrp_sync_groupVG1 {

    group {

          VI_1

    }

}

vrrp_instanceVI_1 {

    state MASTER

    interface eth0

    virtual_router_id 88

    priority 100

    advert_int 1

    nopreempt

    authentication {

        auth_type PASS

        auth_pass lijing123456

    }

    track_script {

       check_run

    }

    virtual_ipaddress {

        10.0.8.6

    }

}

 

#配置说明:KEEPALIVED MASTER 2秒检测一次 mfsmaster状态

接下我们编辑/usr/local/mfs/check_master_bylijing.sh脚本。

 

#!/bin/bash

# write by lijing QQ858080796

# 201505015

MFS_HOME=/usr/local/mfs

check_master=`ps -ef --no-header|grep mfsmaster|grep -vgrep`

RETVAL=$?

if [ $RETVAL -ne 0 ];then

    $MFS_HOME/sbin/mfsmaster  start

#    /usr/bin/python $MFS_HOME/sbin/mfscgiserv

      RETVAL=$?

    /usr/bin/python $MFS_HOME/sbin/mfscgiserv

   if [$RETVAL  -ne  0 ];then

        sleep 30

        killallkeepalived

       /usr/bin/python $MFS_HOME/sbin/mfscgiserv stop >/dev/null 2&>1

   fi

   else  

   echo"mfsmaster is ok"

fi                             

最后记得 chmod 755  /usr/local/mfs/check_master_bylijing.sh

mfsmetalogger 10.0.8.5上的keeplived配置vim /usr/local/keepalived/keepalived.conf

!Configuration File for keepalived

global_defs{

   notification_email {

     [email protected]

      }

   notification_email_from [email protected]

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id mfs_keepalived_bylijing

}

vrrp_sync_groupVG1 {

    group {

          VI_1

}

notify_master"/usr/local/mfs/switch_to_mfsmaster_bylijing.sh"

notify_backup"/usr/local/mfs/switch_to_mfsmetalogger_bylijing.sh"

}

vrrp_instanceVI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 88

    priority 80

    advert_int 1

    nopreempt

    authentication {

        auth_type PASS

        auth_pass lijing123456

    }

    virtual_ipaddress {

        10.0.8.6

    }

}

接下我们编辑/usr/local/mfs/switch_to_mfsmaster_bylijing.sh脚本

 

#!/bin/bash

#write bylijing  QQ 858080796

#20150515

 

MFS_HOME=/usr/local/mfs

MFSMARSTER=${MFS_HOME}/sbin/mfsmaster

MFSCGISERV=${MFS_HOME}/sbin/mfscgiserv

MFS_DATA_PATH=${MFS_HOME}/var/mfs

 

$MFSMARSTER-a

sleep  60

$MFSMARSTER stop

$MFSMARSTER start

/usr/bin/python  $MFSCGISERV   start

接下我们编辑/usr/local/mfs/switch_to_mfsmetalogger_bylijing.sh脚本

#!/bin/bash

#write bylijing  QQ 858080796

#20150515

 

MFS_HOME=/usr/local/mfs

MFSMARSTER=${MFS_HOME}/sbin/mfsmaster

MFSCGISERV=${MFS_HOME}/sbin/mfscgiserv

MFS_DATA_PATH=${MFS_HOME}/var/mfs

RETVAL=0

 

$MFSMARSTERstop

/usr/bin/python  $MFSCGISERV stop

sleep 30

$MFS_HOME/sbin/mfsmasterstop

/usr/bin/python$MFS_HOME/sbin/mfscgiserv stop

                                    

 最后记得 chmod 755  /usr/local/mfs/switch_to *bylijing.sh