学习MFS(五)

##########################################################
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(五)的更多相关文章
- 从零开始学习jQuery (五) 事件与事件对象
本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...
- 前端学习 第五弹: CSS (一)
前端学习 第五弹: CSS (一) 创建css: <link rel="stylesheet" type="text/css" href="my ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition Property animation系统还提供了对ViewGroup中的View改变 ...
- 六、Android学习第五天——Handler的使用(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 六.Android学习第五天——Handler的使用 注意:有很多功能是不 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)
前言: 上一篇比较详细的介绍了卡方检验和卡方分布.这篇我们就实际操刀,找到一些训练集,正所谓纸上得来终觉浅,绝知此事要躬行.然而我在躬行的时候,发现了卡方检验对于文本分类来说应该把公式再变形一般,那样 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- scrapy爬虫学习系列五:图片的抓取和下载
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
随机推荐
- 1、cpu架构和工作原理
cpu架构和工作原理 计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出.运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU).cpu的根本任务,就是执行指令,对计 ...
- linux中at命令详解
转至:https://blog.51cto.com/12822117/2121101 at命令: 一:简介: 计划任务,在特定的时间执行某项工作,在特定的时间执行一次,需要安装at服务,apt-get ...
- ImageView和使用第三方库加载网络图片
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android: ...
- MongoDB创建普通账户与admin账户的配置方法
MongoDB数据库设置账户及权限的方法 1.如果MongoDB服务正在运行的情况下,需先停止该服务 在cmd(命令提示符)下输入net stop MongoDB,按下enter(回车键) 运行结果: ...
- JSP使用转发后引入CSS失效的解决方案
项目目录结构: 正常引入样式: 但是当经过JSP处理,使用转发时地址栏不变,再用此地址引用则会出现引用失败的情况 正确使用方法: ${pageContext.request.contextPath} ...
- 我的hacker标杆
前言:我为什么用"标杆"而不是用偶像来做题目呢?因为在我的心中,值得我学习的黑客绝不是仅仅值得成为我个人的偶像,更应该成为业界的标杆. 国外篇: 丹尼斯·里奇 评价:克尼汉评价道: ...
- (八)使用 jmh 压测 Dubbo
1.JMH简介 JMH即Java Microbenchmark Harness,是Java用来做基准测试的一个工具,该工具由OpenJDK提供并维护,测试结果可信度高. 相对于 Jmeter.ab , ...
- git合并分支代码的方法
1.先提交本地代码,防止被拉取其他分支的代码污染(self为自己的分支 other为想要拉取的分支) git add . git commit -m '备注信息' git push origin se ...
- 制作CocoaPods公有库和私有库
认识公有库和私有库 公有库:开源自己封装的库供别人使用,且往cocoaPods的官方Repo仓库(即CocoaPods Master Repo)中新增自己库的索引,该库索引是以*.podspec.js ...
- Linux 磁盘inode字节数占满的问题
查看ext系列文件系统的信息 #dumpe2fs /dev/sdc1 Inode count: 65536 inode号数量 Block count: 262144 块数量 Reserved bloc ...