搭建分布式文件系统MFS

作者: print("") 分类: linux 发布时间: 2017-07-06 16:06


搭建分布式文件系统MFS

一、MooseFS 结构和原理
1.1 MooseFS 结构说明
Moosefs 系统由四个组件组成、我们用表格来说明:

组件名称 组件作用
管理服务器
Managing server
这个组件角色是管理整个mfs文件系统的主服务、除了分发用户请求外、还用来存储整个文件系统中的每个数据文件的metadata信息,metadata信息包括文件(也可以是目录、socket、管道、设备等)的大小、属性、文件位置路径等、则个master、只能有一台处于激活工作状态、很类似LVS负载均衡主服务器、而mastart根据内存里的metadata信息来分发请求。
元数据备份服务器
Metadata backup servers
则个组件的作用是备份管理服务器master服务器的变化的metadata信息日志文件、文件类型为changelog_ml.*.mfs以便于在主服务器出现问题的时候、可以经过简单的操作即可让新主服务器进行工作、这很类似于mysql的主从同步、只不过不像mysql从库那样在本地应用数据、而只是接受主服务器上文件写入时记录的文件相关的metadata信息
数据存储服务组
Data servers (chunkservers)
这个组件就是真正存放数据文件的实体的服务器了、这个角色可以有多台不同的物理机或不同的分区来充当、当配置数据的副本多余一份时、当数据写入到一个数据服务器后、会根据算法在其他数据服务器上进行同步备份、这很想LVS的rs节点
客户机服务器组
(client servers)
简称 client
这个组件就是挂载并使用mfs文件系统的客户端、当读写文件时、客户端首先会连接主管理服务器获取数据的metadata信息、然后根据得到metadata信息、访问数据服务器并读取或写入文件实体、mfs客户端通过FUSE mecahanism实现挂载MFS文件系统的、因此、只要系统支持fyse、就可以作为客户端访问MFS整个文件系统、
所谓的客户端并不是网站用户、而是前段访问

 
1.2 MooseFS整体架构图 1.3 MooseFS的读文件流程
MoseFS 的读文件大概有4个步骤:
(1)、client客户端访问主服务器master、获取文件实体的位置相关信息
(2)主服务器master 查询缓存记录、把文件实体的位置等相关信息发给client
(3)client客户端根据拿到的信息去访问对应的存储实体数据服务器(data servers或者chunk  servers)
(4)存储实体数据的服务器(data servers或 chunk server )把对应的数据放回给client 客户端
通过上图:我们可以看出、当多个MFS客户端读数据的时候、master服务器负载为这些客户端分发指路的作用、而数据的放回是由不同的数据服务器直接放回给请求的客户端、这样的模式可以极大减轻主服务器的系统及网络瓶颈、增加了整个系统的吞吐、这个和LVS负载均衡软件、MFS的这个访问模式很像高效的LVS DR模式的负载均衡的分发和数据传输情况、那么Mosefs的写文件流程到底是什么情况呢?
1.4 MooseFS 的写文件流程
相对于读文件,MooseFS的写文件流程较为复杂、总体大概分为8个步骤:

  • client客户端访问主服务器master,请求写入数据
  • 主服务器master 查询缓存记录、如果是新文件、则联系后面的数据服务器创建对应的chunk 对象准备存放文件
  • 数据服务器返回创建对应的chunk 对象成功给主服务器master
  • 主服务器master把文件要写入的实体位置等相关的位置发送给client
  • Client 访问对应的数据服务器写数据。
  • 数据服务器之间进行数据同步。
  • 数据服务器返回成功写入信息给Client客户端
  • Client客户端 回报给主服务master写入结束
  • 自己画的
  • 1.5 MooseFS 安装环境准备1.5.1 MooseFS master 设备配置建议 (1)Master 高稳定性要求 根据前面的MFS的原理流程、我们知道管理服务器(master)是MooseFS最主要的角色
    而且是单点、因此、master服务器配置应该尽量可能的稳定,例如:

    1. 双电源分别接A B路电 、机柜多了、被放一个机柜。
    2. 多块磁盘使用RAID1/RAID10 进行冗余。也可选raid5

    (2)资源性要求 内存: 对于Master服务器来说。资源要求就是内存大小了、为了整个系统访问更快、MFS会把所有的访问信息放在内存中提供用户访问、因此、当文件数量增加时、内存就显得重要了、根据官方的说法、处理1百万文件chunkservers 。大概需要300M的内存空间、
    根据推算如果未来要处理1亿个文件chunkservers 。大概需要30G的内存空间。 硬盘: 硬盘驱动器所需的大小、取决于所用的文件和数据快的数目(主元数据文件)上的文件(元数据更改日志)作出操作上的数量:例如20G的足够的空间用于存储信息2500万文件变更记录保存长达50小时
    1.5.2 MooseFS backup 设备配置建议
    MooseFS, metalogger 只是收集从MooseFS主服务器的元数据(文件更改的信息变化)
    备份、因此对硬件要求不应该高于主服务器的配置。从硬盘上需要大约和主服务器相同的磁盘空间
    如果确定在主服务器失败后、要启用metalogger顶替主服务器的话、那么、metalogger服务器至少应该有相同的内存和硬盘作为主要主服务器、在生产环境中我们可以用其他的drbd或inotify的同步功能替代其内部的log同步
    1.5.3 MooseFS data server 设备配置建议
    MooseFS、data server 是存储数据的真正载体、硬盘的性能较为关键、对于普通的业务、可以选择多块raid5.也可以选择raid0 及raid10 。硬盘的大小应该所有的data server 一致比较好、虽然data server 可以和其他业务公用同一个服务器、但是不建议这样混搭使用。
    1.5.3 操作系统环境centos 6.5 64bit

    操作系统 其他
    Centos-6.5-x86_64-bin-DVD.iso 当前稳定且免费的linux版本

    1.5.4 设备及IP地址规划

    名称 接口 hostname IP地址 用途
    mfs master Eth0 mfsmaster 192.168.236.150 MFS 的主服务器
    mfs backup Eth0 mfsbackup 192.168.236.194 MFS 的主服务器的备份服务器
    Data server1 Eth0 mfsdata1 192.168.236.151 MFS 的数据存放服务器1
    Data server2 Eth0 mfsdata2 192.168.236.143 MFS 的数据存放服务器2
    Data server3 Eth0 mfsdata3 192.168.236.192 MFS 的数据存放服务器3
    Mfs client Eth0 mfsclient 192.168.236.215 访问MFS的客户端服务器
    MFS VIP Eth0:0 192.168.236.251 VIP初始绑定在MFS的主服务器上
  • 添加hosts文件。每台主机都需要添加cat >>/etc/hosts<<EOF
    192.168.236.150 mfsmaster
    192.168.236.251 mfsmaster.lkq.com
    192.168.236.194 mfsbackup
    192.168.236.151 mfsdata1
    192.168.236.143 mfsdata2
    192.168.236.192 mfsdata3
    192.168.236.215 mfsclient
    EOF
    提示:

    • 以上的host在工作中应该由ssh及puppet等分发工具进行分发
    • 注意VIP的解析,非常重要,这是所有数据服务器及客户端连接的解析记录

    192.168.236.251 mfsmaster.lkq.com
    查看一下hosts文件
    [root@mfsdata2 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    Rserver-1 172.16.1.1
    Lserver-1 172.16.1.2
    192.168.236.150 mfsmaster
    192.168.236.251 mfsmaster.lkq.com
    192.168.236.194 mfsbackup
    192.168.236.151 mfsdata1
    192.168.236.143 mfsdata2
    192.168.236.192 mfsdata3
    192.168.236.215 mfsclient
    [root@mfsdata2 ~]#
    所有的环境都就绪了,接下来就可以安装mfs文件系统了
    强调,以上的配置是所有服务器进行操作
     
    1.6 安装与配置主服务器 mfs master
    1.6.1 安装主服务器mfs master
    当我们安装主服务器mfs master 时、由于目的是安装主服务器、因此在配置过程中(./configure),可以选择取消安装chunk server (使用 –disable-mfschunkserver)以及mfs客户端(使用—disable-mfsmount)的参数、当然了、我们也可以不加相关的disable参数、安装了不启动也是可以的、为了统一服务器的安装步骤、降低安装复杂度、我们统一了一套安装步骤适合master ,backup data服务器、但不适合client服务器、安装主控制服务器master的具体步骤为:

    建立用户和组
    groupadd mfs
    useradd –g mfs mfs –s –s /sbin/nologin
    编译mfs
    yum install zlib-devel gcc make
    tar zxf moosefs-3.0.16-1.tar.gz
    cd moosefs-3.0.16
    ./configure –prefix=/usr/local/moosefs-3.0.16 –with-default-user=mfs  –with-default-group=mfs
    make && make install
    ln -s /usr/local/moosefs-3.0.16 /usr/local/mfs
    ll /usr/local/mfs
    lrwxrwxrwx. 1 root root 25 5月  22 10:53 /usr/local/mfs -> /usr/local/moosefs-3.0.16
    MooseFS部署的首选方法是从源代码安装。源代码包、安装、支持标准./configure
    && make && make install 的步骤、重要的选项有:

    –disable-mfsmaster 不创建成管理服务器(用于纯节点安装)
    –disable-mfschunkserver 不创建数据存储chunkserver服务器
    –disable-mfsmount 不创建mfsmount和mfstools(如果用开发包安装他们会默认创建的)
    –enable-mfsmount 确定安装mfsmount和mfstools
    –prefix= 锁定安装目录(默认是/usr/local)
    –sysconfdir=DIRECTORY 选择配置文件目录
    –localstatedir= 选择变量数据目录、MFS元数据被存储在mfs的子目录下。默认在、${prefix}/var/mfs
    –with-default-group=GROUp 运行守护经常的用户组、如果配置文件中没有设定用户组、默认为nogroup

    例如用FHS(文件系统层次标准)的兼容路径在linux上安装
    ./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var/lib
    1.6.2 主服务器 mfs master 的安装目录结构
    Master 安装成功以后,我们查看下mfs安装目录/usr/local/mfs 。其中etc 目录为mfs配置文件目录、里面有很多默认的配置文件样例(结尾后缀为*.dist)。后续我们将借用这些样例文件作为MFS服务器的目录标准文件:

    • 查看mfs的安装目录结构

    [root@mfsmaster moosefs-3.0.16]# ll /usr/local/mfs/
    总用量 20
    drwxr-xr-x. 2 root root 4096 5月  22 10:48 bin  #
    drwxr-xr-x. 3 root root 4096 5月  22 10:48 etc  ###这里是mfs配置文件
    drwxr-xr-x. 2 root root 4096 5月  22 10:48 sbin  ######这里是mfs的命令路径
    drwxr-xr-x. 4 root root 4096 5月  22 10:48 share  ####这里是mfs帮助文件目录
    drwxr-xr-x. 3 root root 4096 5月  22 10:48 var   ###这里是mfs数据日志目录 metadata数据
    [root@mfsmaster moosefs-3.0.16]#
    提示:etc 和var 需要备份 。
    设置主配置文件、主配置文件有两个一个是mfsmaster.cfg  mfsexports.cfg mfsmaster.cfg 这个文件不需要改动,默认就可以了。 chown -R mfs.mfs /usr/local/mfs/
    cd /usr/local/mfs/etc/mfs
    cp -p mfsmaster.cfg.dist mfsmaster.cfg
    cp -p mfsexports.cfg.dist mfsexports.cfg
    cp –p mfstopology.cfg.dist mfstopology.cfg
    设置mfs的文件权限
    echo “192.168.236.0/24 / rw,alldirs,mapall=mfs:mfs,password=111111” >mfsexports.cfg
    cat mfsexports.cfg
    192.168.236.0/24 / rw,alldirs,mapall=mfs:mfs,password=111111
    cd /usr/local/mfs/var/mfs
    cp metadata.mfs.empty metadata.mfs
    启动一下
    [root@mfsmaster mfs]# /usr/local/mfs/sbin/mfsmaster start
    open files limit has been set to: 16384
    working directory: /usr/local/moosefs-3.0.16/var/mfs
    lockfile created and locked
    initializing mfsmaster modules …
    exports file has been loaded
    topology file has been loaded
    loading metadata …
    metadata file has been loaded
    no charts data file – initializing empty charts
    master <-> metaloggers module: listen on *:9419
    master <-> chunkservers module: listen on *:9420
    main master server module: listen on *:9421
    mfsmaster daemon initialized properly
    检查mfs是否启动
    [root@mfsmaster var]# netstat -nltp|grep mfs
    tcp        0      0 0.0.0.0:9419                0.0.0.0:*                   LISTEN      40234/mfsmaster
    tcp        0      0 0.0.0.0:9420                0.0.0.0:*                   LISTEN      40234/mfsmaster
    tcp        0      0 0.0.0.0:9421                0.0.0.0:*                   LISTEN      40234/mfsmaster
    设置VIP 可以有两种当时。一种是重启之后就没有了。一种是一直都在的
    我们用前者吧
    ifcfong eth0:0 192.168.236.251 netmask 255.255.255.0
    1.6.4 停止主服务器mfs master
    安全的停止 master server是非常必要的、一定不要用kill -9(mongodb)。可以使用mfsmaster –s 或者 mfsmaster stop 来安全停止master进程。当然一旦用了kill 也是有解决方法的,如通过mfsmetastore修复
    添加系统变量
    [root@mfsmaster var]# echo “export PATH=$PATH:/usr/local/mfs/sbin:/usr/local/mfs/bin” >>/etc/profile
    [root@mfsmaster var]# . /etc/profile
    加入开机自启动
    echo “/usr/local/mfs/sbin/mfsmaster start” >>/etc/rc.local
    1.6.5 开启主服务器 mfs master 的图形监控
    主服务器 mfs master 的图形监控就是mfscgiserv,这是一个用python编写的web服务器、他的监听端口是9425。可以利用/usr/local/mfs/sbin/mfscgiserv start 来启动、启动后、我们通过浏览器就即可比较全面的监控master、backup、及所有客户挂接状态信息及相关的操作等等
    [root@mfsmaster var]# /usr/local/mfs/sbin/mfscgiserv start

  • 1.7 安装与配置主服务器 backup (metalogger)Mfs主服务器的备份服务器、也被成为backup server或者metalogger server ,为了通俗易懂,这里称呼为backup server 即备份服务器
    主服务器备份服务器的安装过程和主服务器完全相同、
    用来安装backup server 的服务器、在性能上不应该低于master、一旦主服务器master宕机失效、我们只要导入备份信息changelogs到元数据文件、备份服务器可以直接接替故障的master继续提供服务、
    备份服务器的安装和主服务器完全一样、只是配置文件有区别、安装步骤如下:
    groupadd mfs
    useradd –g mfs mfs –s –s /sbin/nologin
    yum install zlib-devel gcc make
    tar zxf moosefs-3.0.16-1.tar.gz
    cd moosefs-3.0.16
    ./configure –prefix=/usr/local/moosefs-3.0.16 –with-default-user=mfs  –with-default-group=mfs
    make && make install
    ln -s /usr/local/moosefs-3.0.16 /usr/local/mfs
    ll /usr/local/mfs
    lrwxrwxrwx. 1 root root 25 5月  22 10:53 /usr/local/mfs -> /usr/local/moosefs-3.0.16
    1.7.2 配置备份服务器backup server(metalogger)
    备份服务器bakcup server 的配置文件为:
    cd /usr/local/mfs/etc/mfs
    cp -p mfsmetalogger.cfg.dist mfsmetalogger.cfg
    cat mfsmetalogger.cfg
    # WORKING_USER = mfs
    # WORKING_GROUP = mfs
    # SYSLOG_IDENT = mfsmetalogger
    # LOCK_MEMORY = 0
    # NICE_LEVEL = -19
    # DATA_PATH = /usr/local/moosefs-3.0.16/var/mfs
    # BACK_LOGS = 50
    # META_DOWNLOAD_FREQ = 24
    ###元数据备份文件下载频率、默认为24小时、即每隔1天从元数据服务器
    (Master)下载一个metadata.mfs.back 文件。当元数据服务器关闭或者出故障时、matadata.mfs.back文件将消失、那么要恢复整个mfs,则需从、metalogger服务器取得该文件、请特别注意这个文件、它与日志文件一起、才能够恢复整个被顺坏的分布式文件系统
    # MASTER_HOST = mfsmaster  ##这里是需要连接的mfs master 的主机
    # MASTER_PORT = 9419   ###这里是需要连接的mfs master 的端口
    # MASTER_TIMEOUT = 10
    把mfsmaster 改成VIP的一个主机名
    sed -i ‘s@# MASTER_HOST = mfsmaster@ MASTER_HOST = mfsmaster.lkq.com@g’ mfsmetalogger
    检查一下
    MASTER_HOST = mfsmaster.lkq.com
    [root@mfsbackup mfs]# grep mfsmaster.lkq.com mfsmetalogger.cfg
    MASTER_HOST = mfsmaster.lkq.com
    [root@mfsbackup mfs]#
    1.7.3 启动备份服务器 Backup server(metalogger)
    启动备份服务器backup server 要确保Master server 的服务正常,否则会报错。
    检查主服务器是否正常
    [root@mfsbackup mfs]# nmap mfsmaster.lkq.com -p 9419|grep open
    9419/tcp open  unknown  ###只要显示了open 就表示没有问题的
    [root@mfsbackup mfs]#
    [root@mfsbackup mfs]# /usr/local/mfs/sbin/mfsmetalogger start
    open files limit has been set to: 4096
    mfs: no such user !!!         #####没有mfs 用户
    [root@mfsbackup mfs]# useradd -g mfs mfs
    [root@mfsbackup mfs]# /usr/local/mfs/sbin/mfsmetalogger start
    open files limit has been set to: 4096
    working directory: /usr/local/moosefs-3.0.16/var/mfs  ##没有目录权限
    can’t create lockfile in working directory: EACCES (Permission denied)
    [root@mfsbackup mfs]# chown -R mfs.mfs /usr/local/mfs/
    [root@mfsbackup mfs]# /usr/local/mfs/sbin/mfsmetalogger start
    open files limit has been set to: 4096
    working directory: /usr/local/moosefs-3.0.16/var/mfs
    lockfile created and locked
    initializing mfsmetalogger modules …
    mfsmetalogger daemon initialized properly
    [root@mfsbackup mfs]#
    检查一下是否启动、因为backup不对外提供服务、所以netstat –nltup 是查询不到的
    [root@mfsbackup mfs]# ps -ef |grep mfs
    mfs       52438      1  0 19:45 ?        00:00:00 /usr/local/mfs/sbin/mfsmetalogger start
    root      52443  39826  0 19:48 pts/3    00:00:00 grep mfs
    [root@mfsbackup mfs]#
    但是可以查询到连接状态
    [root@mfsbackup mfs]# lsof -i :9419
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    mfsmetalo 52438  mfs    8u  IPv4 108802      0t0  TCP mfsbackup:57708->mfsmaster.lkq.com:9419 (ESTABLISHED)
    [root@mfsbackup mfs]# netstat -an|grep EST
    tcp        0      0 192.168.236.194:58674       121.254.136.9:80            ESTABLISHED
    tcp        0     52 192.168.236.194:22          192.168.236.1:60518         ESTABLISHED
    tcp        0      0 192.168.236.194:57708       192.168.236.251:9419        ESTABLISHED
    可以看到备份服务器和主服务器的9419端口建立长连接、如果没有检查防火墙
     
     
    在master server中查看一下连接
    [root@mfsmaster var]# netstat -an|grep 9419
    tcp        0      0 0.0.0.0:9419                0.0.0.0:*                   LISTEN
    tcp        0      0 192.168.236.251:9419        192.168.236.194:57708       ESTABLISHED
    可以看到备份服务器和主服务器的9419端口建立长连接、如果没有检查防火墙
    在backup中添加
    添加系统变量
    echo “export PATH=$PATH:/usr/local/mfs/sbin:/usr/local/mfs/bin” >>/etc/profile
    . /etc/profile
    加入开机自启动
    echo “/usr/local/mfs/sbin/ mfsmetalogger start” >>/etc/rc.local
    关闭backup 方式
    mfsmetalogger stop
     
    1.8 安装数据服务器 data servers
    1.8.1 安装数据服务器 data servers
    Data server 也被称为chunk server,在这里为了方便理解、我们称呼为data server。在mfs文件系统中。每个data server的配置是相同的、因此、我们可以批量处理所有的mfs data servers。这里我们仅以一个 data server的安装为例。
    数据服务器的安装和主服务器 master的安装完全相同、只是配置文件有区别、安装步骤如下:记得做批处理安装
    groupadd mfs
    useradd –g mfs mfs –s –s /sbin/nologin
    yum install zlib-devel gcc make
    tar zxf moosefs-3.0.16-1.tar.gz
    cd moosefs-3.0.16
    ./configure –prefix=/usr/local/moosefs-3.0.16 –with-default-user=mfs  –with-default-group=mfs
    make && make install
    ln -s /usr/local/moosefs-3.0.16 /usr/local/mfs
    ll /usr/local/mfs
    lrwxrwxrwx. 1 root root 25 5月  22 10:53 /usr/local/mfs -> /usr/local/moosefs-3.0.16
    chown -R mfs.mfs /usr/local/mfs/
     
     
    1.8.2 配置数据服务器data servers
    配置数据服务器data servers。需要两个配置文件:分别是mfschunkserver.cf 和mfshdd.cfg、其中mfschunkserver.cfg是主配置文件,而mfshdd.cfg 是服务器用来分配给mfs使用的空间的配置文件、最好是一个单利的硬盘或者raid卷,最低要求是一个分区
    在每个data server 上的配置及操作如下:

    • 配置cfg 主配置文件

    [root@mfsdata1 mfs]# cd /usr/local/mfs/etc/mfs
    [root@mfsdata1 mfs]# ll
    总用量 28
    -rw-r–r–. 1 root root 3108 6月  26 05:04 mfschunkserver.cfg.dist
    -rw-r–r–. 1 root root 4055 6月  26 05:04 mfsexports.cfg.dist
    -rw-r–r–. 1 root root  946 6月  26 05:04 mfshdd.cfg.dist
    -rw-r–r–. 1 root root 5992 6月  26 05:04 mfsmaster.cfg.dist
    -rw-r–r–. 1 root root 1957 6月  26 05:04 mfsmetalogger.cfg.dist
    -rw-r–r–. 1 root root 1052 6月  26 05:04 mfstopology.cfg.dist
    [root@mfsdata1 mfs]#
    查看mfschunkserver.cfg
    [root@mfsdata1 mfs]# cat mfschunkserver.cfg
    # WORKING_USER = mfs
    # WORKING_GROUP = mfs
    # SYSLOG_IDENT = mfschunkserver
    # LOCK_MEMORY = 0
    # NICE_LEVEL = -19
    # FILE_UMASK = 027
    # DATA_PATH = /usr/local/moosefs-3.0.16/var/mfs
    # HDD_CONF_FILENAME = /usr/local/moosefs-3.0.16/etc/mfs/mfshdd.cfg
    # HDD_TEST_FREQ = 10
    # HDD_LEAVE_SPACE_DEFAULT = 256MiB
    # HDD_REBALANCE_UTILIZATION = 20
    # HDD_ERROR_TOLERANCE_COUNT = 2
    # HDD_ERROR_TOLERANCE_PERIOD = 600
    # HDD_FSYNC_BEFORE_CLOSE = 0
    # WORKERS_MAX = 250
    # WORKERS_MAX_IDLE = 40
    # LABELS =
    # BIND_HOST = *
    # MASTER_HOST = mfsmaster
    # MASTER_PORT = 9420
    # MASTER_TIMEOUT = 10
    # MASTER_RECONNECTION_DELAY = 5
    # CSSERV_LISTEN_HOST = *    运行的IP
    # CSSERV_LISTEN_PORT = 9422  ##监听端口
    这里只要做一个修改就可以了、就只要修改mfsmaster的hosts就可以了
    sed -i ‘s@# MASTER_HOST = mfsmaster@MASTER_HOST = mfsmaster.lkq.com@g’ mfschunkserver.cfg
    [root@mfsdata1 mfs]# grep mfsma mfschunkserver.cfg
    # MooseFS master host, IP is allowed only in single-master installations (default is mfsmaster)
    MASTER_HOST = mfsmaster.lkq.com

    • 配置cfg主配置文件

    [root@mfsdata3 mfs]# cat mfshdd.cfg
    # use hard drive ‘/mnt/hd1’ with default options:
    #/mnt/hd1
    # use hard drive ‘/mnt/hd2’, but replicate all data from it:
    #*/mnt/hd2
    # use hard drive ‘/mnt/hd3’, but try to leave 5GiB on it:
    #/mnt/hd3 -5GiB
    # use hard drive ‘/mnt/hd4’, but use only 1.5TiB on it:
    #/mnt/hd4 1.5TiB
    设置data server分区 ##这里可以使用操作系统里面的一个目录。因为我们这边是虚拟机环境所以可以添加硬盘之类方便。
    [root@mfsdata2 mfs]# fdisk -l
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0002ee18
     
    Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64        2611    20458496   8e  Linux LVM
     
    Disk /dev/sdb: 2147 MB, 2147483648 bytes
    255 heads, 63 sectors/track, 261 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0003c3a2
    [root@mfsdata2 mfs]# fdisk /dev/sdb
    Command (m for help): n
    Command action
    e   extended
    p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-261, default 1):
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-65, default 65):
    Using default value 65
     
    Command (m for help): p
     
    Disk /dev/sdb: 2147 MB, 2147483648 bytes
    255 heads, 63 sectors/track, 261 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0003c3a2
     
    Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1          65      522081   83  Linux
    /dev/sdb2              66         104      313267+   1  FAT12
     
    Command (m for help): w
    The partition table has been altered!
     
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@mfsdata2 mfs]# mkfs.ext4 /dev/sdb1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=1024 (log=0)
    Fragment size=1024 (log=0)
    Stride=0 blocks, Stripe width=0 blocks
    130560 inodes, 522080 blocks
    26104 blocks (5.00%) reserved for the super user
    First data block=1
    Maximum filesystem blocks=67633152
    64 block groups
    8192 blocks per group, 8192 fragments per group
    2040 inodes per group
    Superblock backups stored on blocks:
    8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
    Writing inode tables: done
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
     
    This filesystem will be automatically checked every 23 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@mfsdata2 mfs]# mkdir /mfs
    [root@mfsdata2 mfs]# mount /dev/sdb1 /mfs
    [root@mfsdata2 mfs]# df
    Filesystem                      1K-blocks    Used Available Use% Mounted on
    /dev/mapper/vg_rserver1-lv_root  18134344 7288024   9925132  43% /
    tmpfs                              372156      76    372080   1% /dev/shm
    /dev/sda1                          495844   34877    435367   8% /boot
    /dev/sr0                          4363088 4363088         0 100% /media/CentOS_6.5_Final
    /dev/sdb1                          505604   10510    468990   3% /mfs
    [root@mfsdata2 mfs]#
    授权mfs可以访问
    chown -R mfs:mfs /mfs/
    设置权限
    设置开机自动挂载
     
    vim /etc/fstab
    添加一样记录
    /dev/sdb1               /mfs                    ext4    defaults        0 0
    测试fstab自动挂载 。使用mount –a 测试
    [root@mfsdata3 /]# umount /mfs
    [root@mfsdata3 /]# mount -a
    [root@mfsdata3 /]# df
    Filesystem                      1K-blocks    Used Available Use% Mounted on
    /dev/mapper/vg_lserver1-lv_root  18134344 8086968   9126188  47% /
    tmpfs                              372156      76    372080   1% /dev/shm
    /dev/sda1                          495844   34843    435401   8% /boot
    /dev/sr0                          4363088 4363088         0 100% /media/CentOS_6.5_Final
    /dev/sr0                          4363088 4363088         0 100% /mnt
    /dev/sdb1                          505604   10510    468990   3% /mfs
    [root@mfsdata3 /]#
    1.8.3 把目录添加到mfsadd.cfg 文件中
    root@mfsdata2 mfs]# echo “/mfs” >mfshdd.cfg
    [root@mfsdata2 mfs]# cat mfshdd.cfg
    /mfs
    [root@mfsdata2 mfs]#
    1.8.4 启动data server (mfschunkserver )
    同备份服务器一样、启动数据服务器 data servers 前要确保master server的服务正常否则会报错
    [root@mfsdata3 mfs]# nmap mfsmaster.lkq.com -p 9419|grep open
    9419/tcp open  unknown
    [root@mfsdata3 mfs]#
    设置环境变量
    echo “export PATH=$PATH:/usr/local/mfs/sbin:/usr/local/mfs/bin” >>/etc/profile
    . /etc/profile
    加入开机自启动
    echo “/usr/local/mfs/sbin/mfschunkserver start” >>/etc/rc.local
    关闭backup 方式
    mfschunkserver stop
    启动mfschunkserveer
    [root@mfsdata2 mfs]# mfschunkserver start
    open files limit has been set to: 16384
    working directory: /usr/local/moosefs-3.0.16/var/mfs
    lockfile created and locked
    setting glibc malloc arena max to 8
    setting glibc malloc arena test to 1
    initializing mfschunkserver modules …
    hdd space manager: path to scan: /mfs/
    hdd space manager: start background hdd scanning (searching for available chunks)
    main server module: listen on *:9422
    no charts data file – initializing empty charts
    mfschunkserver daemon initialized properly
    [root@mfsdata2 mfs]#
     
    1.8.5检查启动的数据服务器 data servers
    (1)端口
    [root@mfsdata2 mfs]# netstat -nltp|grep 9422
    tcp        0      0 0.0.0.0:9422                0.0.0.0:*                   LISTEN      13990/mfschunkserve
    (2)查看一下进程
    [root@mfsdata2 mfs]# ps -ef |grep mfs
    mfs       13990      1  1 07:01 ?        00:00:01 mfschunkserver start
    root      14005   2636  0 07:03 pts/1    00:00:00 grep mfs
    [root@mfsdata2 mfs]#
    (3)查看端口连接的情况
    [root@mfsdata2 mfs]# netstat -an|grep EST
    tcp        0     52 192.168.236.143:22          192.168.236.1:59404         ESTABLISHED
    tcp        0      0 192.168.236.143:35809       192.168.236.251:9420        ESTABLISHED
    主服务器的9420 端口是chunkserver 模块。如果没有的话,查看防火墙。
    (4)在master 上面的检查
    [root@mfsmaster var]# netstat -an|grep 9420
    tcp        0      0 0.0.0.0:9420                0.0.0.0:*                   LISTEN
    tcp        0      0 192.168.236.251:9420        192.168.236.143:35809       ESTABLISHED
    tcp        0      0 192.168.236.251:9420        192.168.236.192:36906       ESTABLISHED
    如果没有检查到查看防火墙
    (5)可以在mfs server的web页面的就可以看到了

  • (6)查看系统日志可以看到主服务器的系统日志有chunk server 加入的信息
    [root@mfsmaster var]# tail /var/log/messages
    May 22 22:17:08 Lcilent-1 mfsmaster[40377]: chunkserver register end (packet version: 6) – ip: 192.168.236.143 / port: 9422
    May 22 22:27:37 Lcilent-1 dhclient[39964]: DHCPREQUEST on eth0 to 192.168.236.254 port 67 (xid=0x5945585a)
    May 22 22:27:37 Lcilent-1 dhclient[39964]: DHCPACK from 192.168.236.254 (xid=0x5945585a)
    May 22 22:27:37 Lcilent-1 dhclient[39964]: bound to 192.168.236.138 — renewal in 743 seconds.
    May 22 22:27:37 Lcilent-1 NetworkManager[1242]: <info> (eth0): DHCPv4 state changed renew -> renew
    到此为止、data server 就配置好了
     
    1.9 安装配置客户端服务器(client servers)
    1.9.1 安装客户端服务器
    由于MFS文件系统客户端的挂载依赖fuse工具、所以要先安装fuse工具。
    如果所在的系统已经安装了fuse,则跳过这个步骤、高版本的linux内核已经支持了fuse(centos 6.5 就支持了)
    查看内核支持
    [root@mfsclient ~]# lsmod |grep fuse
    fuse                   73530  2
    [root@mfsclient ~]#
    1.9.2编译安装fuse
    进入页面进去下 http://vdisk.weibo.com/s/ajww5fZsUq50L?from=page_100505_profile&wvr=6 tar zxf fuse-2.9.3.tar.gz
    cd fuse-2.9.3
    ./configure
    make && make install
    1.9.3添加环境变量
    echo “export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH” >>/etc/profile
    source /etc/profile
    1.9.4编译mfs
    groupadd mfs
    useradd –g mfs mfs –s –s /sbin/nologin
    yum install zlib-devel gcc make
    tar zxf moosefs-3.0.16-1.tar.gz
    cd moosefs-3.0.16
    ./configure –prefix=/usr/local/moosefs-3.0.16 –with-default-user=mfs –with-default-group=mfs –disable-mfschunkserver –enable-mfsmount
    make && make install
    ln -s /usr/local/moosefs-3.0.16 /usr/local/mfs
    ll /usr/local/mfs
    lrwxrwxrwx. 1 root root 25 5月  22 10:53 /usr/local/mfs -> /usr/local/moosefs-3.0.16
    chown -R mfs.mfs /usr/local/mfs/
    设置环境变量
    echo “export PATH=$PATH:/usr/local/mfs/sbin:/usr/local/mfs/bin” >>/etc/profile
    . /etc/profile
    1.9.6 目录结构
    cd /usr/local/mfs/bin
    [root@mfsclient bin]# ll
    总用量 1516
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsappendchunks -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfscheckfile -> mfstools
    -rwxr-xr-x. 1 mfs mfs 298237 6月  26 08:07 mfscli
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfscopyeattr -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfscopygoal -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfscopyquota -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfscopytrashtime -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsdeleattr -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsdelquota -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsdirinfo -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsfileinfo -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsfilepaths -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsfilerepair -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsgeteattr -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsgetgoal -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsgetquota -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsgettrashtime -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsmakesnapshot -> mfstools
    -rwxr-xr-x. 1 mfs mfs 913098 6月  26 08:07 mfsmount
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsrgetgoal -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsrgettrashtime -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsrsetgoal -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsrsettrashtime -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfsseteattr -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfssetgoal -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfssetquota -> mfstools
    lrwxrwxrwx. 1 mfs mfs      8 6月  26 08:07 mfssettrashtime -> mfstools
    -rwxr-xr-x. 1 mfs mfs    137 6月  26 08:07 mfssnapshot
    -rwxr-xr-x. 1 mfs mfs 332513 6月  26 08:07 mfstools
    提示:bin目录下面是客户端的命令
    1.9.6 创建挂载点
    (1)创建数据目录挂载点
    [root@mfsclient ~]# mkdir /mfs
    [root@mfsclient ~]# chown mfs.mfs /mfs
    [root@mfsclient ~]# ls -l /mfs/
    (2)检查fuse的内核支持
    [root@mfsclient ~]# lsmod |grep fuse
    fuse                   73530  2
    [root@mfsclient ~]#
    如果没有的话加载一下
    [root@mfsclient ~]# modprobe fuse
    [root@mfsclient ~]# lsmod |grep fuse
    fuse                   73530  2
    开机自动加载fuse到内核
    echo “modprobe fuse” >/etc/sysconfig/modules/fuse.modules
    chmod 755 /etc/sysconfig/modules/fuse.modules
     
    (3)挂载mfs文件系统
    挂载的是服务器的VIP对应的主机名。应该在hosts提前解析好
    [root@mfsclient ~]# grep mfsmaster.lkq.com /etc/hosts
    192.168.236.251 mfsmaster.lkq.com
    [root@mfsclient ~]#
    挂载mfs  默认挂载要求.为空
    [root@mfsclient ~]# mfsmount /mfs -H mfsmaster.lkq.com -p
    MFS Password:         ####输入密码。前面设置是111111
    mfsmaster accepted connection with parameters: read-write,restricted_ip,map_all ; root mapped to mysql:mysql ; users mapped to mysql:mysql
    [root@mfsclient ~]# df
    Filesystem                      1K-blocks    Used Available Use% Mounted on
    /dev/mapper/vg_lserver1-lv_root  18134344 7376512   9836644  43% /
    tmpfs                              372156      80    372076   1% /dev/shm
    /dev/sda1                          495844   34843    435401   8% /boot
    /dev/sr0                          4363088 4363088         0 100% /media/CentOS_6.5_Final
    /dev/sr0                          4363088 4363088         0 100% /mnt
    mfsmaster.lkq.com:9421             413120       0    413120   0% /mfs
    [root@mfsclient ~]#
    写入文件测试
    写入数据
    [root@mfsclient mfs]# echo “123456” >index.html
    [root@mfsclient mfs]# echo “123456123456” >index.html
    [root@mfsclient mfs]# echo “123456123456” >index.html2
    查看一下data server的文件
  • 查看master 的/usr/local/mfs/var/mfs/changelog.0.mfs 文件root@mfsmaster mfs]# cat changelog.0.mfs
    5: 1495467537|SESADD(1,16,500,500,500,500,1,9,0,4294967295,3232296151,/mfs%00):1
    6: 1495467628|ACCESS(1)
    7: 1495467638|CREATE(1,index.html,1,438,18,500,500,0):2
    8: 1495467638|ACQUIRE(1,2)
    9: 1495467640|WRITE(2,0,1,1):1
    10: 1495467646|LENGTH(2,7,1)
    11: 1495467646|UNLOCK(1)
    12: 1495467648|ACCESS(1)
    13: 1495467658|RELEASE(1,2)
    14: 1495467734|ACQUIRE(1,2)
    15: 1495467734|LENGTH(2,0,1)
    16: 1495467734|WRITE(2,0,1,1):2
    17: 1495467734|LENGTH(2,13,1)
    18: 1495467734|UNLOCK(2)
    19: 1495467739|CREATE(1,index.html2,1,438,18,500,500,0):3
    查看备节点的一个/usr/local/mfs/var/mfs/changelog.0.mfs 文件
    [root@mfsbackup mfs]# cat changelog_ml.0.mfs
    5: 1495467537|SESADD(1,16,500,500,500,500,1,9,0,4294967295,3232296151,/mfs%00):1
    6: 1495467628|ACCESS(1)
    7: 1495467638|CREATE(1,index.html,1,438,18,500,500,0):2
    8: 1495467638|ACQUIRE(1,2)
    9: 1495467640|WRITE(2,0,1,1):1
    10: 1495467646|LENGTH(2,7,1)
    11: 1495467646|UNLOCK(1)
    12: 1495467648|ACCESS(1)
    13: 1495467658|RELEASE(1,2)
    14: 1495467734|ACQUIRE(1,2)
    15: 1495467734|LENGTH(2,0,1)
    16: 1495467734|WRITE(2,0,1,1):2
    17: 1495467734|LENGTH(2,13,1)
    18: 1495467734|UNLOCK(2)
    19: 1495467739|CREATE(1,index.html2,1,438,18,500,500,0):3
    提示:master 和backup是同步的。
    查看一个web图表
  • 开机自动挂载[root@mfsclient ~]# mfsmount /mfs -H mfsmaster.lkq.com -o mfspassword=111111
    mfsmaster accepted connection with parameters: read-write,restricted_ip,map_all ; root mapped to mysql:mysql ; users mapped to mysql:mysql
    [root@mfsclient ~]# df
    Filesystem                      1K-blocks    Used Available Use% Mounted on
    /dev/mapper/vg_lserver1-lv_root  18134344 7375644   9837512  43% /
    tmpfs                              372156      80    372076   1% /dev/shm
    /dev/sda1                          495844   34843    435401   8% /boot
    /dev/sr0                          4363088 4363088         0 100% /media/CentOS_6.5_Final
    /dev/sr0                          4363088 4363088         0 100% /mnt
    mfsmaster.lkq.com:9421             413120       0    413120   0% /mfs
    使用-o 这个参数让它不需要跟系统交互
    从客户端向挂载点/mfs 目录写入大数据
    [root@mfsclient mfs]# dd if=/dev/zero of=/mfs/2.img bs=1M count=1000
    记录了1000+0 的读入
    记录了1000+0 的写出
    1048576000字节(1.0 GB)已复制,5.07702 秒,207 MB/秒
     
     
    查看一下data server 文件
    [root@mfsdata3 mfs]# tree /mfs |grep mfs
    /mfs
    │   └── chunk_0000000000000010_00000001.mfs
    │   └── chunk_0000000000000015_00000001.mfs
    [root@mfsdata3 mfs]#
     
    查看一下web界面
  • 写入的话还是算平均的。Data1 是我后面加入的一个chunk 大小 开始10M
    [root@mfsclient mfs]# dd if=/dev/zero of=/mfs/2.img bs=1M count=10
    记录了10+0 的读入
    记录了10+0 的写出
    10485760字节(10 MB)已复制,0.0572632 秒,183 MB/秒
    [root@mfsclient mfs]# mfsfileinfo 2.img
    2.img:
    chunk 0: 0000000000000026_00000001 / (id:38 ver:1)
    copy 1: 192.168.236.151:9422
    一个chunk 大小 开始35
     
    [root@mfsclient mfs]# dd if=/dev/zero of=/mfs/3.img bs=1M count=65
    记录了65+0 的读入
    记录了65+0 的写出
    68157440字节(68 MB)已复制,0.201876 秒,338 MB/秒
    [root@mfsclient mfs]# mfsfileinfo 3.img
    3.img:
    chunk 0: 0000000000000028_00000001 / (id:40 ver:1)
    copy 1: 192.168.236.151:9422
    chunk 1: 0000000000000029_00000001 / (id:41 ver:1)
    copy 1: 192.168.236.143:9422
    [root@mfsclient mfs]#
    结论。一个chunk大小为64M
    1.9 mooseFS metadata 数据备份原理
    MooseFS metadata backups
    MooseFS 元数据备份
    There are two general parts of metadata;
    元数据一般有两个部分:
    Main metadata file (metadata mfs ,named metadata.mfs.back when the mfsmaster is running),synchronized each hour
    主要的元数据的问题(metadata.mfs, 当mfsmaster 运行时、metadata.mfs 被命名为metadata.mfs.back )每个小时进行同步
    Metadata changelogs(changelog.*.mfs),stored for last N houres (chnfigured by back logs setting)
    元数据变更记录文件(changelog.*.mfs)里面存储的是最后N个小时的数据变化,由back_Logs 参数控制
    The main metadata file needs regular backups with the frequency depending on how many hourly changelogs are stored . Metadata changelogs should be automatically replicated in real
    1.9.2 mfs 主服务宕机恢复理论介绍
    MooseFS master recovery
    MFS master 宕机恢复:
    假如mfsmaster因为主机或电源原因宕机了、最后的changelog数据信息记录应该合并到主元数据文件metadata.mfs 这可以由mfsmetarestore 工具胜任、最简单的方法是:mfsmetarestore –a
     
    (1)通过备份(元数据)恢复master
    (2)通过备份恢复master ,首先要用前期安装master 的步骤安装master
    使用同样的配置,例如:直接用mfsmaster.cfg 覆盖

    • 从备份中或日志服务器取回mfs.back 文件放入master数据目录
    • 使用mfsmetarestore –m metadata.mfs.back -o metadata.mfs changelog.*.mfs

    1.9.3 通过人工备份数据恢复主服务器
    主服务器上最关键的目录是/usr/local/mfs/var/mfs , mfs 更新的数据metadata信息,都会记录在这个目录的文件里、因此,我们只需要备份了这个目录,就可以保证当master宕机后、把数据恢复到其他的主服务器使用、当然了,mfs系统也有一个mfsmetalogger服务器来专门同步这些变化数据、这样主服务器宕机后、通过备份服务器也可以恢复数据、并将角色切换为主、继续提供服务、
    主服务宕机的恢复方法有两种:

    • 直接启动backup服务器、前提是backup数据的metadata数据完整、
    • 搭建新的主服务器、前提是通过inotify或者rsync及时备份了、metadata数据本点就是人工备份

    1.9.4 备份数据是关键
    无论是本地恢复测试还是新装机恢复、备份原始数据都是关键的要做的、

    • 实时备份master数据

    例如通过:定时打包或者inotify+rsync备份
    人工手段备份恢复主服务器时需要的分别数据有:
    a./usr/local/mfs/var 目录
    b./usr/local/mfs/etc 目录

    1. VIP的网卡配置文件ifcfg-eth0:0

    写好的脚本如下:如果是正式环境需要把数据实时备份到异机服务器、
    #/bin/sh
     
    while true
    do
    cd /usr/local/mfs
    rsync -avz var /opt/ >/dev/null 2>&1
    rsync -avz etc /opt/ >/dev/null 2>&1
    rysnc -avz /etc/sysconfig/network-scripts/ifcfg-eth0:0 /opt/ >/dev/null 2>&1
    usleep 50000
    done
    ####如果生产环境推到中心备份服务器而不是现在的/opt 。使用rsync
    1.9.5 本地恢复测试体验:
    aa.sh  bin  etc  sbin  share  var
    [root@mfsmaster mfs]# cat aa.sh
    #/bin/sh
    while true
    do
    cd /usr/local/mfs
    rsync -avz var /opt/ >/dev/null 2>&1
    rsync -avz etc /opt/ >/dev/null 2>&1
    #rysnc -avz /etc/sysconfig/network-scripts/ifcfg-eth0:0 /opt/ >/dev/null 2>&1     ###因为我没有做固定的
    usleep 50000
    done
    在master 上执行这个脚本
    sh aa.sh &
    [root@mfsmaster mfs]# cd /opt/
    [root@mfsmaster opt]# ll
    总用量 12
    drwxr-xr-x. 3 mfs  mfs  4096 5月  22 15:42 etc
    drwxr-xr-x. 2 root root 4096 11月 22 2013 rh
    drwxr-xr-x. 3 mfs  mfs  4096 5月  22 10:48 var
    (3)通过backup 来恢复mfs master
    关闭mfs master

  • Master里面的文件需要事先打包出来 
    恢复的话。是使用/etc/中的配置文件。还有var/下面的文件不需要从master 冲获取只需要吧etc/里面的里面的两个文件复制到backup中。
    首先设置IP地址
    把备份的文件复制到/usr/local/mfs/etc/下面
    cd /opt
    cp -p mfsmetalogger.cfg mfsexports.cfg  /usr/local/mfs/etc/mfs
    ifconfig eth0:0 192.168.236.251 netmask 255.255.255.0
    首先备份/var 目录
    cp -rp var/ /root/             ######一定要先
    cd /usr/local/mfs/var/mfs
    cp -p metadata_ml.mfs.back.1 metadata.mfs
     
    启动master
    [root@mfsbackup mfs]# mfsmaster start
    open files limit has been set to: 16384
    working directory: /usr/local/moosefs-3.0.16/var/mfs
    lockfile created and locked
    initializing mfsmaster modules …
    exports file has been loaded
    topology file has been loaded
    loading metadata …
    loading sessions data … ok (0.0000)
    loading label data … ok (0.0000)
    loading objects (files,directories,etc.) … ok (3.2676)
    loading names … ok (0.0062)
    loading deletion timestamps … ok (0.0002)
    loading quota definitions … ok (0.0000)
    loading xattr data … ok (0.0000)
    loading posix_acl data … ok (0.0000)
    loading open files data … ok (0.0000)
    loading flock_locks data … ok (0.0000)
    loading posix_locks data … ok (0.0012)
    loading chunkservers data … ok (0.0000)
    loading chunks data … ok (3.2814)
    checking filesystem consistency … ok
    connecting files and chunks … ok
    all inodes: 3
    directory inodes: 1
    file inodes: 2
    chunks: 2
    metadata file has been loaded
    no charts data file – initializing empty charts
    master <-> metaloggers module: listen on *:9419
    master <-> chunkservers module: listen on *:9420
    main master server module: listen on *:9421
    mfsmaster daemon initialized properly
    客户端查询
    [root@mfsclient mfs]# df
    Filesystem                      1K-blocks    Used Available Use% Mounted on
    /dev/mapper/vg_lserver1-lv_root  18134344 7376512   9836644  43% /
    tmpfs                              372156      80    372076   1% /dev/shm
    /dev/sda1                          495844   34843    435401   8% /boot
    /dev/sr0                          4363088 4363088         0 100% /media/CentOS_6.5_Final
    /dev/sr0                          4363088 4363088         0 100% /mnt
    mfsmaster.lkq.com:9421           19473216      64  19473152   1% /mfs
    [root@mfsclient mfs]#
     
    启动web界面
    [root@mfsbackup mfs]# mfscgiserv start
    lockfile created and locked
    starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/moosefs-3.0.16/share/mfscgi)
    [root@mfsbackup mfs]#‘
    进入web页面查看
  • 在客户端插入数据试试[root@mfsclient mfs]# echo “aaa” >index.html2
    [root@mfsclient mfs]# echo “aaa” >index.html3
    [root@mfsclient mfs]# ll
    总用量 2
    -rw-r–r–. 1 mysql mysql 4 6月  19 18:53 index.html
    -rw-r–r–. 1 mysql mysql 4 6月  19 19:01 index.html2
    -rw-r–r–. 1 mysql mysql 4 6月  19 19:01 index.html3
    [root@mfsclient mfs]#
    查看master的日志
    [root@mfsbackup mfs]# cat changelog_ml.1.mfs
    46: 1497869560|SESDEL(1)
    47: 1497869573|ACCESS(1)
    48: 1497869574|ACCESS(1)
    49: 1497869584|CREATE(1,index.html,1,438,18,500,500,0):4
     
    2.0 Mfs 集群系统启动规范顺序
    说明:最安全的启动方式需如下顺序启动、总结四个字、从前到后

    • 启动master
    • 启动所有的chunkServer
    • 启动masterlogger
    • 挂载客户端

     
    2.1 mfs集群系统停止规范顺序
    说明:最安全的启动方式需按如下顺序启动、总结为四个字;从后到前

    • 卸载客户端
    • 停止所有的chunkserver
    • 停止masterlogger
    • 停止master

     
    3.0 大规模集群环境服务器如何开启与停止
    机房掉电:100 台集群服务器如何启动?

    • 启动存储、数据库
    • 启动数据库缓存
    • 启动web应用服务器
    • 启动负载均衡

    停止相反

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注