一、测试环境说明:

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. redis-缓存失效三种策略(FIFO 、LRU、LFU)

    缓存失效策略(FIFO .LRU.LFU三种算法的区别) 当缓存需要被清理时(比如空间占用已经接近临界值了),需要使用某种淘汰算法来决定清理掉哪些数据.常用的淘汰算法有下面几种: FIFO:First ...

  2. Java 学习 UUID 与 时间格式化、时间操作

    UUID : UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分.其目的,是让分 ...

  3. 使用libvirtAPI打快照原理

    参考: https://blog.51cto.com/3646344/2096347 https://blog.51cto.com/3646344/2096351(磁盘外部快照) API接口: htt ...

  4. sqlite--一秒20万数据

    参考博文:https://blog.csdn.net/weixin_35261786/article/details/78222602 #include <iostream> #inclu ...

  5. Java中通过Class的反射来获取方法

    本文转自:http://z3sm2012.iteye.com/blog/1933227 今天在程序中用到java反射机制时,遇到的问题记录一下:我当时遇到的问题是,我用反射getMethod()调用类 ...

  6. .NET MVC 控制器和行为

    行为就是可访问方法(public) 行为返回类型必须是 ActionResult 或者其派生类,基本上返回类型为以下四种之一 View(视图路径) Json(对象或者对象集合) Content(字符串 ...

  7. HttpWebResponse远程服务器返回错误: (500) 内部服务器错误 的解决办法

    在工作中用C#开发了一个小程序,不断访问去请求一个网站的页面,在循环过程中有时会报“远程服务器返回错误: (500) 内部服务器错误”,有时不会,出现的时机也不太一样.开始以为是网站的问题,后来网站是 ...

  8. board_led.h/board_led.c

    /******************************************************************************* Filename: board_led ...

  9. MYSQL性能优化(1)

    优化步骤 1.show status 查询服务器状态运行信息 根据增删改查统计信息可以知道数据库是查询为主还是更新为主,各类型业务大致比例(更新操作 执行与回滚都会计数) 对于事务,可以通过Com_c ...

  10. 原子性: Interlocked 类

    public class CounterNoLock:CountBase { private int _count; public int Count { get { return _count; } ...