一、测试环境说明:

10.2.2.230 mfsmaster     VIP:10.2.2.130

10.2.2.231 mfsbackup

10.2.2.253 mfsdata01

10.2.2.246 mfsdata02

10.2.2.236 mfsdata03

10.2.2.240 mfsdata04

10.2.2.241 mfsclient

二、分别就client、chunker、master的模拟服务器宕机、断网、故障恢复等环境,进行测试并就出现问题的解决办法。

(1)、MFS的client端:

a. client端宕机、断网对MFS的体系不产生影响

b. 杀掉MFS的client服务会产生

df: '/data/mfsdata': Transport endpoint is not connected

处理的方式:

是umount  /data/mfsdata,然后再重新挂载就可以了,这种情况是用户MFS客户端出现误杀的情况。

(2)、MFS的chunker端:

a.断网、杀掉MFS的chunker程序对MFS系统无影响。

b. 宕机:

#无文件传输时,对三个chunker都无影响;

#当有文件传输时,但是文件设置存储一份时,对MFS系统无影响。

#当有文件传输,且设置文件存储多份时:

★关掉chunker1之后,如果在chunker1恢复正常之前文件已经传输完毕,那么数据将从chunker2、chunker3同步到chunker1中,并同时自动清除chunker2、chunker3上的部分文件以便达到chunker1、chunker2、chunker3使用容量的基本均衡。

★关掉chunker1之后,如果在 chunker1恢复之后文件尚未传输完毕,那么文件将一方面继续传输一方面从chunker2、chunker3中进行文件的同步到 chunker3,最终达到chunker1、chunker2、chunker3使用容量的基本均衡。

★关掉chunker1之后随即chunker2也挂掉,如果在chunker1、chunker2恢复正常之前文件已经传输完毕,文件数据都会写到chunker3中,之后chunker1、chunker2恢复,那么文件将从chunker3同步到chunker1、chunker2,最终达到chunker1、chunker2、chunker3使用容量的基本均衡。

★关掉chunker1之后随即chunker2也挂掉,如果在chunker1、chunker2恢复正常之后文件尚未传输完毕,文件一部分从chunker3同步到chunker1、chunker2,一部分均匀写到chunker1、chunker2、chunker3中,最终达到chunker1、chunker2、chunker3使用容量的基本均衡。

★关掉chunker1之后随即chunker2、chunker3也挂掉的话就会影响MFS的应用,因为已经没有了可用的chunker服务器了。

综上可知,只要不是三个chunker服务器同时挂掉的话,就不会影响文件的传输,也不会影响服务的使用。

(3)MFS的master端:

前提:实时的对master端数据目录及配置文件目录做备份,推送到其他的备份服务器中。

a. 断网、停掉master服务对MFS系统无影响。

b. 宕机可能会出现以下的情况:

#若服务器宕机后重启恢复,运行/application/mfs/sbin/mfsmaster start恢复master服务。

#若服务器宕机后不能重启恢复,修复的方法有如下几种:

1)搭建新的master环境,保证配置文件路径和宕机的master机器一致,用实时备份的master端数据目录及配置文件目录修复,修复命令:/application/mfs/sbin/mfsmetarestore -a

之后重启master服务就可以了。

2)若有metalogger服务器,把backup提升为主master的操作

可以把实时备份的master端配置文件目录拷贝到metalogger对应的目录下,使用metalogger改变的日志文件修复的命令:mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs,

之后重启master服务就可以了。

三、MFS集群的维护

最安全的启动MooseFS 集群(避免任何读或写的错误数据或类似的问题)的方式是按照以下命令步骤:

启动mfsmaster 进程

启动所有的mfschunkserver 进程

启动mfsmetalogger 进程(如果配置了mfsmetalogger)

当所有的chunkservers 连接到MooseFS master 后,任何数目的客户端可以利用mfsmount 去挂接export 的文件系统。(可以通过检查master 的日志或是CGI 监视器来查看是否所有的chunkserver被连接)。

停止MFS集群:

安全的停止MooseFS 集群

在所有的客户端卸载MooseFS 文件系统(用umount 命令或者是其它等效的命令)

用mfschunkserver  stop 命令停止chunkserver 进程

用mfsmetalogger  stop 命令停止metalogger 进程

用mfsmaster  stop 命令停止master 进程

四、MFS读写性能:

简单测试结果:

写:

time dd if=/dev/zero of=/data/mfsdata/mfsdata/test500M  bs=1M count=500

读:

time dd if=/data/mfsdata/mfsdata/test500M of=/dev/null

 

1copy写

2copy写

1copy读

2copy读

2M

0m0.139s

0m0.119s

0m0.014s

0m0.055s

5M

0m0.093s

0m0.092s

0m0.014s

0m0.011s

20M

0m0.264s

0m0.313s

0m0.026s

0m0.030s

50M

0m1.312s

0m0.460s

0m0.066s

0m0.056s

200M

0m2.437s

0m4.171s

0m0.165s

0m0.169s

500M

0m5.984s

0m11.511s

0m3.047s

0m5.946s

1G

0m11.875s

0m26.839s

0m17.247s

0m16.223s

2G

0m55.460s

0m55.460s

1m21.784s

0m55.736s

总结:读速度:ca 84.3M/s 写速度:ca 39.4M/s 9M/s (以500M计算)

补充:

上面是在mfs的1.x版本上的测试结果,在mfs的2.x版本的测试流程也是一样的,只是修复故障的命令有些更改。更改后的命令操作如下:

前提:实时备份mfsmaster端的配置文件及数据文件最重要。

1)mfsmaster机器数据丢失损坏导致服务器起不来,可以通过如下方式修复:

mfsmaster -a

2)mfsmaster机器数据丢失导致服务起不来时,可以通过如下方式修复:

把mfsmetalogger备节点的数据拷贝到mfsmaster端对应的路径下,

之后在mfsmaster端执行如下命令修复:

mfsmaster -a

3)把mfsmetalogger备机主动提升为mfsmaster角色:

把mfsmaster端备份的配置文件拷贝到mfsmetalogger对应的路径下,执行如下命令提升mfsmetalogger提升为mfsmaster角色:

mfsmaster -a

修复之后要修改mfsmetalogger机器的hosts文件及ip地址,以便mfschunkserver服务器与之通信。

MFS故障测试及维护总结的更多相关文章

  1. MooseFs-分布式文件系统系列(四)之简单聊聊MFS的日常维护

    回顾 文件或目录的额外属性(noower,noattracache和noentrycache),可以通过MFS提供的命令(mfsgeteattr,mfsseteattr,mfsdeleattr等)检查 ...

  2. MFS学习总结

    MFS学习总结 MFS概述.特性和新版改进 MFS 工作原理和设计架构 MFS的安装.部署.配置 MFS的高级特性 MFS的性能测试 MFS集群的维护 MFS的常见问题和建议对策 一.MFS概述.特性 ...

  3. centos7 MFS drbd keepalived

    环境: centos7.3 + moosefs 3.0.97 + drbd84-utils-8.9.8-1 + keepalived-1.2.13-9 工作原理: 架构图: 节点信息: 节点名     ...

  4. MooseFS技术详解

    原文 http://www.tuicool.com/articles/vQvEZ3y MooseFS是一款具有冗余容错功能的分布式文件系统.它把数据分散在多台服务器上,确保一份数据多个备份副本,对外提 ...

  5. 学习MFS(六)

    一.文件系统选型 在一般的生产环境中,NFS共享存储算是比较常用的,简单.方便,但随着业务的不断扩展,数据量也是承爆发式的增长,因而对存储这些数据的文件系统要求也越来越高了,分存式.可扩展.大容量,这 ...

  6. 构建MFS分布式文件系统

    ++++++++++++++构建MFS分布式文件系统++++++++++++++PB级别:企业存储空间达到PB级别,即100万GB空间.(1PB=1000TB,1TB=1000GB,1GB=1000M ...

  7. Centos下MooseFS(MFS)分布式存储共享环境部署记录

    分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机/服务器模式.目前 ...

  8. Heartbeat+DRBD+MFS高可用

    Heartbeat+DRBD+MFS高可用. 前言:MFS系统简介 组件名称及作用 管理服务器(Managing Server)   简称Master Server 这个组件的角色是管理整个mfs文件 ...

  9. mfs教程(四)

    mfs文件系统(四) MooseFS  维护 一.启动MooseFS集群 最安全的启动MooseFS集群(避免任何读或写的错误数据或类似的问题)的方式是按照以下命令步骤: 1.启动mfsmaster进 ...

随机推荐

  1. spring 之 注入之 by name or by type, or both ?

    @Autowired 和  @Qualifier 使用xml 注入的时候, 我们可以指定 autowire=“byType” 或“byName” . 但是使用 注解的时候, @Autowired  只 ...

  2. C#设计模式(4)——抽象工厂模式(Abstract Factory)

    简单工厂模式: 简单工厂模式的工厂类随着产品类的增加需要增加额外的代码 工厂方法模式: 工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性 但是在实际应用中,一个工厂不止会创建单 ...

  3. PHP响应码和HTTP请求方法

    HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,格式如下 可见请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格 ...

  4. ZigBee毕设

    毕设题目: —————————————————————————————————————————————————————————————————————————————— 基于Zigbee的智能家居监测 ...

  5. EF 6.x实现dynamic动态查询

    利用SqlQuery实现动态查询 public static IEnumerable<dynamic> SqlQueryDynamic(this DbContext db, string ...

  6. T-SQL中CTE表 with关键字

    Select字句在逻辑上是SQL语句最后进行处理的最后一步,所以,以下查询会发生错误: SELECT YEAR(OrderDate) AS OrderYear, COUNT(DISTINCT Cust ...

  7. python中的新式类与旧式类

    在python2中,有新式类与旧式类的区别: 首先创建一个类: class Sb(object): pass 如果创建时继承自object,说明这是一个新式类,不写object,说明是一个旧式类: 那 ...

  8. centos安装tree命令

    centos安装tree命令 sudo yum -y install tree windows安装tree命令 我的另一篇

  9. Android Spinner 设置setOnItemSelectedListener时,竟会默认触发一次事件!

    当然是关闭这坑货了: //禁止OnItemSelectedListener默认自动调用一次 spinnerDutyPerson.setSelection(0, true); //放到TagContai ...

  10. cdnbest里站点域名不同步到节点,报400错误的一般原因

    报400错误一般是站点里的域名没有同步到节点上面的原因,产生的原因一般是下面两点原因: 1.检查节点列表如下图所示的状态是否打钩,这是节点和主控的通信状态,打叉表示连接有问题 这里打叉的几种原因(1) ...