##########################################################

mfs master 安装

建议 cp eth0 eth0:0

ifup eth0:0

##########################################################

修改 vim/etc/hosts

cd /home/oldboy/tools

groupadd mfs

useradd -g mfs mfs -s /sbin/nologin

##########################################################

yum install fuser* zlib* -y

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-16.27

./configure --prefix=/application/mfs-1.6.27  --with-default-user=mfs --with-default-group=mfs

make

make install

ln -s /application/mfs-1.6.27 /application/mfs

ll /aaplication/ |grep mfs

##########################################################

设置用户名和组

vim mfsmaster.cfg

WORKING_USER = mfs

WORKING_GROUP = mfs

##########################################################

设置挂载点

cat >mfsexports.cfg<<EOF

#ALLOW "meta"

*        . rw      #启用回收站

#ALLow everything but "meta"

10.0.0.0/24  /  rw,alldirs,mppall=mfs:mfs,password=111111    #设置:网段,挂载目录,权限,用户密码

EOF

##########################################################

启动

cd /application/mfs/var/mfs

cp metadata.mfs.mepty metadata.mfs

echo "exprt PATH=$PATH:/application/mfs/sbin:/application/mfs/bin" >>/etc/profile

tail -l /etc/profile

/application/mfs/sbin/mfsmaster start

netstat -lntup |grep 94

##########################################################

echo $PATH

设置开机启动

echo "/application/mfs/sbin/mfsmaster start" >>/etc/rc.local

##########################################################

启动图型

mfscgiserv start

http://10.0.0.7:9425

##########################################################

安装backup

groupadd mfs

useradd -g mfs mfs -s /sbin/nologin

##########################################################

yum install fuser* zlib* -y

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-16.27

./configure --prefix=/application/mfs-1.6.27  --with-default-user=mfs --with-default-group=mfs

make

make install

##########################################################

ln -s /application/mfs-1.6.27 /application/mfs

ll /aaplication/ |grep mfs

##########################################################

设置环境变量

echo "exprt PATH=$PATH:/application/mfs/sbin:/application/mfs/bin" >>/etc/profile

tail -l /etc/profile

##########################################################

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

vim mfsmetalogger.cfg

MASTER_HOST = mfsmaster.etiantian.org  #修改maste的 ip地址或者域名

##########################################################

启动

/application/mfs/sbin/mfsmetalogger start

netstat -lntup |grep mfs

netstat -lntup |grep 94

##########################################################

netstat -an |grep -i est

chown -R mfs /application/mfs/var/mfs

tail -f /var/log/messages

##########################################################

设置开机启动

echo "/application/mfs/sbin/mfsmetalogger start" >>/etc/rc.local

##########################################################

data安装

groupadd mfs

useradd -g mfs mfs -s /sbin/nologin

##########################################################

yum install fuser* zlib* -y

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-16.27

./configure --prefix=/application/mfs-1.6.27  --with-default-user=mfs --with-default-group=mfs

make

make install

##########################################################

ln -s /application/mfs-1.6.27 /application/mfs

ll /aaplication/ |grep mfs

##########################################################

设置环境变量

echo "exprt PATH=$PATH:/application/mfs/sbin:/application/mfs/bin" >>/etc/profile

tail -l /etc/profile

##########################################################

vim mfschunkserver.cfg

MASTER_HOST = mfsmaster.etiantian.org # 修改master ip地址或者域名

修改挂载目录

vim /application/mfs/etc/mfs/mfshdd.cfg

/msfdata #可以设置多个

chown -R mfs.mfs /msfdata

##########################################################

启动

/application/mfs/sbin/mfschunkserver start

其它几台server 安装一样

##########################################################

安装客户端

如果客户端没有fuse 需要安装

wget http://nchc.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz

./configure

make

make install

##########################################################

groupadd mfs

useradd -g mfs mfs -s /sbin/nologin

yum install fuser* zlib* -y

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-16.27

./configure --prefix=/application/mfs-1.6.27  --with-default-user=mfs --with-default-group=mfs

make

make install

##########################################################

ln -s /application/mfs-1.6.27 /application/mfs

ll /aaplication/ |grep mfs

##########################################################

方法(1)设置开机自动加载fuse到内核

echo "/modprobe fuse" >/etc/sysconfig/modules/fuse.modules

chmod 755 /etc/sysconfig/modules/fuse.modules

##########################################################

方法(2)设置开机自动加载fuse到内核

echo "modprobe fuse" >>/etc/ec.modules

chmod 755 /etc/rc.modules

##########################################################

挂载

/application/mfs/bin/mfsmount /mnt/mfs -H mfsmster.etiantian.org -o mfspassword=111111

##########################################################

搭建完成

随便创建几个文件 分别在master和backup查看日志

cat /application/mfs/var/mfs/changelog_ml

##########################################################

查看文件命令

mfsfileinfo 1

设置副本:为3份

mfssetgoal -r 3 a1

查看数量

mfsfileinfo al/10

##########################################################

测试

创建文件

dd if=/dev/zero of=/mnt/mfs/test/10m.img bs=1M count=10

mfsfileinfo test/10m.img

查看删除文件时间

mfsgettrashtime 10m.img

设置文件删除时间

mfssettrashtime -r 1200 /a2

客户端挂载回收站

mfsmaster.etiantian.org -m /mnt/mfs-trash/

还原文件

移动删除的文件到 undel下即可

mv 0000002\|a2\|oldboy.txt undel/

##########################################################

 备份master与master恢复1

需要备份下面两个文件

/application/mfs/var/

/application/mfs/etc/

脚本

while true

do

cd /application/mfs

rsyrc -azv var /opt/ >/dev/null 2>&1

rsyrc -azv etc /opt/ >/dev/null 2>&1

usleep 500000

done

sh -x bakmeta.sh

sh  bakmeta.sh &

##########################################################

恢复master

新安装机器用上面备份的文件直接覆盖即可

mfsmetarestore -a

/application/mfs/sbin/mfsmaster start

客户端需要重新挂载

umount /mnt/mfs

/application/mfs/bin/mfsmount /mnt/mfs -H mfsmster.etiantian.org -o mfspassword=111111

##########################################################

 备份master与master恢复2

首先该ip地址

建议 cp eth0 eth0:0

ifup eth0:0

修改 vim/etc/hosts

##########################################################

把上面备份好的rsyrc -azv etc /opt/ 拷贝到 /application/mfs 下面

mfsmetalogger -s

cd /application/mfs

mfsmetalogger -m metadata_ml.mfs.back* -o metadata.mfs changelog_ml*

mfsmaster start

netstat -lntup |grep 94

mfscgiserv start

##########################################################

 解决单点故障

利用keepalived+inotify 实现 mfs master的高可用

##########################################################

其中各部分含义如下:

Info:显示了MFS的基本信息

Servers:列出现有的Chunk Server

Disks:列出现有的Chunk Server硬盘信息

Exports:列出了可被挂载的目录

Mounts:列出了被挂载的目录

Operations:显示正在执行的操作

Master charts:显示了Master Server的操作情况,读、写删除等操作

Server charts:显示了Chunk Server的操作情况、传输速率及系统状态

MFS灾难恢复

整个MFS体系中,直接断电只有master server进程有可能无法启动,可以在master上使用命令/usr/local/mfs/sbin/mfsmetarestore -a修复

我们将master server 直接断电,在重新开机,结果如下:

[root@localhost ~]# /usr/local/mfs/sbin/mfsmaster start     //启动失败
init: file system manager failed !!!
error occured during initialization - exiting
[root@localhost ~]# /usr/local/mfs/sbin/mfsmetarestore -a //修复
[root@localhost ~]# /usr/local/mfs/sbin/mfsmaster start //启动成功

MFS元数据通常有两部分的数据,分别如下:

(1)主要元数据文件metadata.mfs,当mfsmaster运行时会被命名为metadata.back.mfs。

(2)元数据改变日志 changelog.*.mfs,存储了过去N小时的文件变更。

在Master 发生故障时,可以从MetaLogger中恢复,步骤如下:

(1)安装一台mfsmaster,利用同样的配置来配置这台mfsmaster,mfsmaster进程先不要启动

(2)将metalogger上/usr/local/mfs/var/mfs/目录下所有文件复制到mfsmaster相应的目录中。

(3)利用mfsmetarestore命令合并数据元changelogs。

[root@localhost ~]# scp root@192.168.1.101:/usr/local/mfs/var/mfs/* /usr/local/mfs/var/mfs/
[root@localhost ~]# /usr/local/mfs/sbin/mfsmetarestore -m metadata_ml.mfs.back -o metadata.mfs changelog_ml.*.mfs
[root@localhost ~]# /usr/local/mfs/sbin/mfsmaster start

注意:如果是全新安装的master,恢复数据后,需要更改metalogger和chunkserver,配置MASTER_HOST的IP地址,客户端也需要重新挂载mfs目录。

(一)本地测试

1、停止元数据服务 /usr/local/mfs/sbin/mfsmaster

2、备份元数据服务器数据 cd /usr/local/mfs/var; tar czvfmfs.tgz mfs

3、删除目录 mv mfs mfs.bk 或 rm –rf mfs

4、启动元数据服务 ../sbin/mfsmaster start 启动失败,提示不能初始化数据。

5、解包 tar zxvf mfs.tgz

6、执行恢复操作 .. /sbin/mfsmetarestore –a

7、启动元数据服务 ../sbin/mfsmaster start

8、在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。

(二) 迁移测试

1、 安装新的MFS元数据服务器。

2、 从当前的元数据服器(master)或日志备份服务器(mfsmetalogger)复制备份文件 metadata.mfs.back/metadate_ml.mfs.back到新的元服务器目录(metadata.mfs.back需要定时用crontab备份).

3、 从当前的元数据服器(master)或日志备份服务器(mfsmetalogger)复制元数据服务器数据目录(/usr/local/mfs/var/mfs)到这个新的元数据服务器。

4、 停止原先的那个元数据服务器(关闭计算机或停止它的网络服务)。

5、 更改新的元数据服务器的ip为原来那个服务器的ip.

6、 执行数据恢复操作,其命令为:mfsmetarestore -mmetadata.mfs.back -o metadata.mfs changelog_ml.*.mfs 恢复成功后再执行启动新的元数据服务操作。

7、 启动新的元数据服务 /usr/local/mfs/sbin/mfsmasterstart

8、 在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。

.启动MFS集群

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

1. 启动mfsmaster 进程

2. 启动所有的mfschunkserver 进程

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

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

2.停止MFS集群

安全的停止MooseFS 集群:

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

2. 用mfschunkserver stop 命令停止chunkserver 进程

3. 用mfsmetalogger stop 命令停止metalogger 进程

4. 用mfsmaster stop 命令停止master 进程

3.MFS元数据备份

通常元数据有两部分的数据:

· 主要元数据文件metadata.mfs,当mfsmaster 运行的时候会被命名为metadata.mfs.back

· 元数据改变日志changelog.*.mfs,存储了过去的N 小时的文件改变(N 的数值是由BACK_LOGS参数设置的,参数的设置在mfschunkserver.cfg 配置文件中)。

学习MFS(五)的更多相关文章

  1. 从零开始学习jQuery (五) 事件与事件对象

    本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...

  2. 前端学习 第五弹: CSS (一)

    前端学习 第五弹: CSS (一) 创建css: <link rel="stylesheet" type="text/css" href="my ...

  3. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  4. Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition

    Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition Property animation系统还提供了对ViewGroup中的View改变 ...

  5. 六、Android学习第五天——Handler的使用(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 六.Android学习第五天——Handler的使用 注意:有很多功能是不 ...

  6. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  7. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  8. 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)

    前言: 上一篇比较详细的介绍了卡方检验和卡方分布.这篇我们就实际操刀,找到一些训练集,正所谓纸上得来终觉浅,绝知此事要躬行.然而我在躬行的时候,发现了卡方检验对于文本分类来说应该把公式再变形一般,那样 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. scrapy爬虫学习系列五:图片的抓取和下载

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

随机推荐

  1. 【Windows 操作系统】Windows 进程的内核对象句柄表

    总结: 1.句柄就是进程句柄表中的索引.2.句柄是对进程范围内一个内核对象地址的引用,一个进程的句柄传给另一个进程是无效的.一个内核对象可用有多个句柄.Windows之所以要设立句柄,根本上源于内存管 ...

  2. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第四版,稳定支持Qt5编程,zqt5语法升级,MA函数提升性能1000%,更多公式算法的内置优化实现。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  3. Qt:QUrl

    1.说明 概述 一个代表URL的类,此外还支持国际域名(IDNs). 通常在初始化时传入QString构造QUrl,除此之外还能用setUrl(). URL有两种表示格式:编码.未编码.未编码URL常 ...

  4. Python:datetime

    学习自:datetime - Basic date and time types - Python 3.10.0b2 documentation datetime模块用于操作date和time. da ...

  5. Python:Scrapy(四) 命令行相关

    学习自Scrapy 2.4.1 documentation 这一部分是对官方文档的学习,主要是理解翻译,来对之前的应用部分进行详细的理论补充. 1.保存爬取到的要素的方式: ①运行scrapy指令时, ...

  6. (转载)《Three easy pieces 》虚拟化部分整体介绍

    转载自知乎:https://zhuanlan.zhihu.com/p/37917910 一个程序在运行的时候发生了什么呢? 其实只是一些非常简单的事情:运行指令.处理器从内存中取出指令,译码然后执行. ...

  7. JZ-026-二叉搜索树与双向链表

    二叉搜索树与双向链表 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 题目链接: 二叉搜索树与双向链表 代码 /** * ...

  8. python 逻辑运算及奇怪的返回值(not,and,or)

    首先,'and'.'or'和'not'的优先级是not>and>or. 同一优先级从左往右计算. 先说非运算,Python的非运算与这些语言相比,并没有特别的地方.not只有两个返回值,T ...

  9. tp5 缩略图自写

    1:php终端 安装扩展 使用Composer安装ThinkPHP5的图像处理类库: composer require topthink/think-image2:控制器代码: public func ...

  10. 华为交换机配置ACL详细步骤

    ACL 介绍 #2000-2999普通ACL,根据源IP过滤 #3000-3999高级ACL,根据源目的端口和源目的地址等过滤 #4000-4999二层ACL,根据源目的MAC等过滤 配置举例: 拒绝 ...