378 发表于 2018-12-29 11:10:52

moosefs+keepalived双机高可用热备解决方案

  

     8.         存储块服务器Chunk servers 配置:
#cd/usr/local/mfs/etc
#cpmfschunkserver.cfg.distmfschunkserver.cfg
#cpmfshdd.cfg.dist   mfshdd.cfg
#chown –Rmfs: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分区是一样的,如下图:
http://s3.运维网.com/wyfs02/M01/6D/1B/wKiom1VcQjbScBaKAAEywTrzERM126.jpg
此处我们假定要为在centos6_02和centos_03的/moosefs做映射,只要两台mfshdd.cfg 加入下面/moosefs即可。
http://s3.运维网.com/wyfs02/M02/6D/16/wKioL1VcQ7qhSGN0AAB1mp2BwaM475.jpg
在启动chunk server 前,需确保用户mfs 有权限读写将要被挂接的分区(因为chunk server 运
行时要在此创建一个.lock 的文件):
#chown -R mfs:mfs /moosefs
类似地,修改/etc/hosts 文件,增加下面的行:
10.0.8.1mfsmaster
开始启动chunk server:
#/usr/local/mfs/mfschunkserve rstart
现在再通过浏览器访问 http://10.0.8.1:9425/ 应该可以看见这个MooseFS 系统的全部信息,
包括主控master 和metalogger以及chunkserver 。
http://s3.运维网.com/wyfs02/M02/6D/1B/wKiom1VcQlWQ-aRpAANUjwCrcEE569.jpg
  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-zxvfmoosefs-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.1mfsmaster

[*]  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 检查分区情况,可能的输出如下:
http://s3.运维网.com/wyfs02/M00/6D/16/wKioL1VcQ_rRC7X6AAIaehvUudA172.jpg
在 /mnt/data中创建目录data
#mkdir /mnt/data/data
#ls/mnt/data
http://s3.运维网.com/wyfs02/M02/6D/1B/wKiom1VcQr7C7ul-AAC4pCEZTGU563.jpg
3、挂载非mfs文件系统的 / 点,现在我们来挂载下 /data点,也是就是刚才创建的。
#/usr/local/mfsbin/mfsmount/mnt/data   -S data -H mfsmaster
也可以用 
#/usr/local/mfs/bin/mfsmount /mnt/data–S data-H 10.0.8.1
注:这里不用-p是因为前在设mfsexports.cfg是没有为/data目录设密码。

[*]  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安装:
在mfsmastert和mfsmetalogger安装keepalived,要先安装openssl-devel,popt-devel等。
./configure --prefix=/usr/local/keepalived
make&&makeinstall
keeplived配置
在mfsmaster 10.0.8.1上的keeplived配置vim/usr/local/keepalived/keepalived.conf
!Configuration File for keepalived
global_defs{
   notification_email {
   lijing@qmlab.cn
      }
   notification_email_from Keepalived@10.0.8.1
   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/mfsmasterstart
#    /usr/bin/python $MFS_HOME/sbin/mfscgiserv
      RETVAL=$?
    /usr/bin/python $MFS_HOME/sbin/mfscgiserv
   if [$RETVAL-ne0 ];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 {
   lijing@qmlab.cn
      }
   notification_email_from Keepalived@10.0.8.5
   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 bylijingQQ 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
sleep60
$MFSMARSTER stop
$MFSMARSTER start
/usr/bin/python $MFSCGISERV   start
接下我们编辑/usr/local/mfs/switch_to_mfsmetalogger_bylijing.sh脚本
#!/bin/bash
#write bylijingQQ 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

  




页: [1]
查看完整版本: moosefs+keepalived双机高可用热备解决方案