MooseFs集群故障恢复运维

摘要:
然后执行mfsmaster-a恢复。如果机器完全损坏,请在主机位于gzns机器的/home/work/pssh/nfs/mfs中时更换10.46.19.20。在conf中,修改mfschunkserver.cfg和mfsmatalogger.cfg以连接到主机,并配置master_HOST=10.46.19.2。进入gzns计算机的zsh状态。

批量操作集群可以借助pssh,封装之

prun: aliased to pssh -O StrictHostKeyChecking=no -t 0 -p 90 -h hosts -l work -o out -e err
master挂了怎么办

如果机器能启动起来,则恢复之。

如果ip没变,只是数据全丢失了,把期中一台metalogger服务器的metadata全部拷贝过来(假设元数据目录是/usr/local/mfs/var/mfs),然后执行 mfsmaster -a 恢复

如果机器完全崩了,想快速换另一台master,则

用其中一台metalogger服务器来恢复,因为是全混布,都有metalogger,所以选哪台都行。

假设master机器10.46.17.17挂了,要换10.46.19.20来当master
在gzns机器的/home/work/pssh/nfs/mfs_conf中修改mfschunkserver.cfgmfsmetalogger.cfg连接master配置

MASTER_HOST = 10.46.19.20

进去gzns机器的zsh状态,批量修改集群的上述两个配置。

prun "cd /home/work/.jumbo/etc/mfs && rm mfschunkserver.cfg; wget ftp://**/home/work/pssh/nfs/mfs_conf/mfschunkserver.cfg"
prun "cd /home/work/.jumbo/etc/mfs && rm mfsmetalogger.cfg; wget ftp://**/home/work/pssh/nfs/mfs_conf/mfsmetalogger.cfg"

检查 10.46.19.20 机器的mfsmaster.cfgmfsexports.cfg配置是否存在且配置正确。如果不正确重新刷,或者单台修改。

prun "cd /home/work/.jumbo/etc/mfs && rm mfsmaster.cfg; wget ftp://**/home/work/pssh/nfs/mfs_conf/mfsmaster.cfg"
prun "cd /home/work/.jumbo/etc/mfs && rm mfsexports.cfg; wget ftp://**/home/work/pssh/nfs/mfs_conf/mfsexports.cfg"

利用mfsmaster -a来合并元数据日志,自动恢复模式。

重启chunkserver和metalogger,如果不重启,可能客户端没法读原来文件,只能写新的,有问题。

prun "ps aux | grep mfschunkserver | grep /home/work/.jumbo/sbin/ | awk '{print $2}' | xargs kill -9"
prun "ps aux | grep mfsmetalogger | grep /home/work/.jumbo/sbin/ | awk '{print $2}' | xargs kill -9"
prun "/home/work/.jumbo/sbin/mfsmetalogger start"
prun "/home/work/.jumbo/sbin/mfschunkserver start"

上面kill命令批量报[FAILURE]没事,其实已经执行成功了。

fusermount -u卸载 因为是fuse挂载的。如果没有卸载成功,在客户端检查下是否还有挂载mfs进程,如果有杀之。

fusermount -u /mnt/mfs

挂载新的master的mfs服务

mfsmount -H 10.46.19.20 /mnt/mfs
当混布chunkserver和metalogger的机器挂了

https://www.cnblogs.com/bugutian/p/6869278.html
没有备份副本肯定就是endangered的了,如果你的所有磁盘都坏了,那必然就是missing等等。moosefs自己有副本平衡的策略,会自动让你的副本数向对角线靠拢。

chunkserver服务器中,存储的.mfs文件没了的话,大概2分钟会自动备份到别的chunkserver服务器上。

当一台chunkserver不发连接后,mfs会在别的服务器上备份副本到指定数目,等那台故障chunkerserver恢复后,多出来的副本也会自动删除直到最后打平回设置副本数。

测试完集群mfs服务,重新刷一遍 (稳定运行后别再刷)
prun "rm -rf /home/work/.jumbo/var/mfs/*"
prun "rm -rf /home/disk1/mfs/*"
prun "rm -rf /home/disk2/mfs/*"
prun "rm -rf /home/disk3/mfs/*"

若报错找不到 metadata.mfs

loading metadata ...
can't find metadata.mfs - try using option '-a'
init: metadata manager failed !!!

/home/work/.jumbo/var/mfs中拷贝metadata.mfs.empty(若被删了,可重新安装moosefs,或者自己建) 为 metadata.mfs,其内容是:

MFSM NEW

再正常启动mfsmaster

/home/work/.jumbo/sbin/mfsmaster start

若启动chunkserver报错不能使用.metaid

hdd space manager: chunkserver without meta id shouldn't use drive with defined meta id (file: '/home/disk1/mfs/.metaid') - use '!' in drive definition to ignore this (dangerous)

先删了.metaid,再启动chunkserver。

prun "rm /home/disk1/mfs/.metaid"
prun "rm /home/disk2/mfs/.metaid"
prun "rm /home/disk3/mfs/.metaid"
误删文件恢复

客户端查看和设置命令:

mfsgettrashtime # 查看回收站保留时间
mfssettrashtime # 设定回收站保留时间

默认是86400秒。

欲恢复,需要先挂针mfsmeta文件系统,用到-m参数。

mfsmount -H **.**.**.** -m /mnt/mfsmeta

...是master机器。
进入/mnt/mfsmeta目录可以看到

  • 目录 trash (包含仍可以被还原的被删除了的文件信息)和 trash/undel (移到该目录则相当于恢复)。
  • 目录 reserved,该目录内是被删除但依然打开着的文件。在用户关闭了这些被打开的文件后,reserved 目录中的文件将被删除。

恢复方法即将欲恢复的文件从 trash 目录移动到 trash/undel 目录下。如果在同一路径下有个新的同名文件,则恢复失败。

读写速率测试

副本数和metalogger增加基本不影响写速率。

若指定goal高于2,客户端将数据发送到一个组块服务器,组块服务器读取,写入数据并将数据发送到另一个组块服务器。这样一来,客户端的输入就不会发送多个副本,而且所有副本几乎同时被写入。

用1.5G的包含大量小文件整个目录写入测试,2m14s,速率大约11M/s。删除耗时42s,速率大约37M/s。

429M大文件写入耗时3.89s,速率大约110M/s。

免责声明:文章转载自《MooseFs集群故障恢复运维》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法phpredis中incr以及decr等自增命令出现的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

反编译APK文件的三种方法(转)

因为学习Android编程的需要,有时我们需要对网络上发布的应用项目进行学习,可是Android项目一般是通过APK文件进行发布的,我们看不到源代码,嘿嘿,办法总会有的,而且不止一个...    ps:对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了Java Dalvik VM的方式使其程序很容易...

工具系列 | 如何搭建FTP服务,上传本地文件

需求 1、docker容器 2、文件服务器镜像:https://hub.docker.com/r/fauria/vsftpd 3、上传脚本:ThinkPHP5.1 4、上传依赖库:https://github.com/Nicolab/php-ftp-client 安装 FTP服务 docker run -d -v e:/ftp:/home/vsftpd -...

简单应用复旦FNLP自然语言处理工具(一)

FNLP是一个基于机器学习的中文自然语言文本处理的开发工具包,FNLP主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机器学习算法和数据集。                                                      ----------百度百科 信息检索 文本分类 新闻聚类 中文处理: 中文分词 词性标注...

服务器双向同步( 可实时 ) unison + inotify

一. Unison简介 Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。1. 跨平台使用;对内核和用户权限没有特别要求;  2. Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略; 3. 只要是能连通的两台主机...

LinuxE2系统刷机后OSCAM安装与读卡器设置

我也属于E2小白,最近才开始玩这个系统。从dinobot 4k+,到H7s,在到H5,各种E2机器都买了。刚开始入手的时候,怎么这么麻烦?慢慢的发现,烧新,玩E2也是一种乐趣,只不过最近困扰我的刷机后的Oscam安装,论坛关闭,自能自己在群里慢慢摸索,这里记录下方法与过程,仅供与我同样的E2新手小白玩家学习。 恐龙级很烦,刷刷机,然后就刷不进去了,我只有自...

java加载properties配置文件的几种方法

 自由自在 废话省略... 1.普通方法 直接上我写的一共配置文件获取类: 配置文件 socket.server.address = 127.0.0.1 socket.server.port = 8511 socket.connect.timeout = 3000 package com.adao.common; import java.io.IOExc...