设为首页 收藏本站
查看: 1325|回复: 0

[经验分享] 分布式系统三、MooseFS基础和安装

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2019-2-1 09:09:07 | 显示全部楼层 |阅读模式
  一、MooseFS简介
  1、介绍
  
        MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。
  

2、特性
从其对文件操作的情况看,MooseFS表现与其他类Unix文件系统一致。
支持的通用文件系统特性:
       mfs是一个分层的目录树结构
       存储支持POSIX标准的文件属性(权限,最后访问和修改时间)
       支持特殊的文件,如:块设备,字符设备,管道和套接字,链接文件(符号链接和硬链接)
      支持基于IP地址和密码的方式访问文件系统
  独有特性:

  • 高可靠性
  •         每一份数据可以设置多个副本(多份数据),并可以存储在不同的主机上
  • 高可扩展性
  •        可以很轻松的通过增加主机磁盘容量或增加主机数量来动态扩展整个文件系统的存储量
  • 高可容错性
  •         我们可以通过对mfs进行系统设置,实现当数据文件被删除后的一段时间内,依然存放于主机的回收站中,以备误删恢复数据
  • 高数据一致性
  •         即便文件被写入/访问时,我们依然可以完成对文件的一致性快照


3、优缺点
优点:
       1)由于MFS是基于GPL发布的,因此完全免费,并且开发和社区都很活跃,资料也非常丰富
       2)轻量、易部署、易配置、易维护

       3)通用文件系统,不需要修改上层应用就可以使用(那些需要专门 API 的DFS确实有点麻烦)
       4)扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强(官方的case可以扩到70台了!)
       5)体系架构高可用,所有组件无单点故障
       6)文件对象高可用,可设置任意的文件冗余程度(提供比 Raid 10 更高的冗余级别)

       7)提供系统负载,将数据读写分配到所有的服务器上,加速读写性能
       8)提供诸多高级特性,比如类似Windows的回收站功能、类似JAVA语言的GC(垃圾回收、快照功能等)
       9、MooseFS 是 Google Filesystem 的一个 c 实现
       10、自带 Web Gui 的监控接口
       11、提高随机读或写效率和海量小文件的读写效率(有待进一步证明)
  

4、应用场景
      谈及MooseFS的应用场景,其实就是去谈分布式文件系统的应用场景。
      1)大规模高并发的数据存储及访问(小文件、大文件),
      2)大规模的数据处理,如日志分析
  

  5、MFS的组件
  Master:(元数据服务器)
         负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝。
  Metalogger:(元数据日志服务器)
         负责备份Master服务器的changelog。文件类型为 changelog.*.mfs ,以便在Master出问题时接替其工作
  Chunk:(数据存储服务器)
         负责连接Master,听从Master调度,提供存储空间,并为客户端提供数据传输
  Client:(客户端挂载)
         通过FUSE内核接口挂载远程管理服务器(master)上所管理的数据存储服务器,使用起来和本地文件系统一样
  

  MFS工作图解:
  
  

  3、工作原理

   MooseFS是一个文件系统,因此其最主要的工作就是文件的读写流程,即 MooseFS的主要的两大工作过程。
  MFS的读文件流程:
  

         图中 Master Server用三角形表示,Chunk Server用圆形表示,Client 用方形表示。
整个读过程有以下四个步骤:
        1)首先client客户端访问主服务器master,获取文件实体的位置等相关信息
        2)主服务器master查询缓存记录,把文件实体的位置等相关信息发给client客户端
        3)Client客户端根据拿到的信息去访问对应的存储实体数据的服务器(data servers或者 chunk servers)
        4)存储实体数据的服务器(data servers或者 chunk servers)把对应的数据返回给Client客户端
        从上图,我们还可以看出,当多个MFS客户端读数据的时候,master服务器充当路由为这些客户端分发指路的作用,而数据的返回时由不同的数据服务器直接返回给请求的客户端,这样的模式可以极大的减轻主服务器的系统及网络瓶颈,增加了整个系统的吞吐,很像LVS的DR模式的负载均衡的分发和数据传输的情况。


MFS写文件流程:

  
整个写过程要分为下面八个步骤:
        1)Client客户端访问主服务器master,请求写入数据
        2)主服务器master查询缓存记录,如果是新文件,则会联系后面的数据服务器创建对应的chunk对象准备存放文件。
        3)数据服务器返回创建对应的chunk对象成功给主服务器
        4)主服务器master把文件实体的位置等相关信息发给client客户端。
        5)Client客户端访问对应的数据服务器写数据
        6)数据服务器之间进行数据同步,互相确认成功
        7)数据服务器返回成功写入信息给Client客户端
        8)Client客户端回报给主服务器master写入结束
  
二、MFS安装配置


      官网:https://moosefs.com
  1、环境
      CentOS6.5 x86_64; 各节点时间同步,
  node2  192.168.10.2  master
  node3  192.168.10.3  metalogger chunk
  node4  192.168.10.4  chunk  
  node1  192.168.10.1  client
  

  2、配置yum源
[root@Node2 ~]# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6
[root@Node2 ~]# curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
105  1796  105  1796    0     0   1190      0  0:00:01  0:00:01 --:--:--  1208
[root@Node2 ~]# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6  RPM-GPG-KEY-MooseFS
RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6
[root@Node2 ~]# curl "http://ppa.moosefs.com/MooseFS-2-el6.repo" > /etc/yum.repos.d/MooseFS.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
169   169  169   169    0     0    226      0 --:--:-- --:--:-- --:--:--   235
[root@Node2 ~]# ls /etc/yum.repos.d/
CentOS-Base.repo      CentOS-Debuginfo.repo  CentOS-Vault.repo  MooseFS.repo
CentOS-Base.repo.bak  CentOS-Media.repo      epel-6.repo        Zabbix.repo
[root@Node2 ~]# cat /etc/yum.repos.d/MooseFS.repo
[MooseFS]
name=MooseFS $releasever - $basearch
baseurl=http://ppa.moosefs.com/moosefs-2/yum/el6
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
enabled=1
[root@Node2 ~]# yum list|grep -i moosefs
moosefs-cgi.i686                            2.0.89-1.rhsysv              MooseFS
moosefs-cgi.x86_64                          2.0.89-1.rhsysv              MooseFS
moosefs-cgiserv.i686                        2.0.89-1.rhsysv              MooseFS
moosefs-cgiserv.x86_64                      2.0.89-1.rhsysv              MooseFS
moosefs-chunkserver.i686                    2.0.89-1.rhsysv              MooseFS
moosefs-chunkserver.x86_64                  2.0.89-1.rhsysv              MooseFS
moosefs-cli.i686                            2.0.89-1.rhsysv              MooseFS
moosefs-cli.x86_64                          2.0.89-1.rhsysv              MooseFS
moosefs-client.i686                         2.0.89-1.rhsysv              MooseFS
moosefs-client.x86_64                       2.0.89-1.rhsysv              MooseFS
moosefs-master.i686                         2.0.89-1.rhsysv              MooseFS
moosefs-master.x86_64                       2.0.89-1.rhsysv              MooseFS
moosefs-metalogger.i686                     2.0.89-1.rhsysv              MooseFS
moosefs-metalogger.x86_64                   2.0.89-1.rhsysv              MooseFS
moosefs-netdump.i686                        2.0.89-1.rhsysv              MooseFS
moosefs-netdump.x86_64                      2.0.89-1.rhsysv              MooseFS
moosefs-pro-cgi.i686                        2.0.89-1.rhsysv              MooseFS
moosefs-pro-cgi.x86_64                      2.0.89-1.rhsysv              MooseFS
moosefs-pro-cgiserv.i686                    2.0.89-1.rhsysv              MooseFS
moosefs-pro-cgiserv.x86_64                  2.0.89-1.rhsysv              MooseFS
moosefs-pro-chunkserver.i686                2.0.89-1.rhsysv              MooseFS
moosefs-pro-chunkserver.x86_64              2.0.89-1.rhsysv              MooseFS
moosefs-pro-cli.i686                        2.0.89-1.rhsysv              MooseFS
moosefs-pro-cli.x86_64                      2.0.89-1.rhsysv              MooseFS
moosefs-pro-client.i686                     2.0.89-1.rhsysv              MooseFS
moosefs-pro-client.x86_64                   2.0.89-1.rhsysv              MooseFS
moosefs-pro-master.i686                     2.0.89-1.rhsysv              MooseFS
moosefs-pro-master.x86_64                   2.0.89-1.rhsysv              MooseFS
moosefs-pro-metalogger.i686                 2.0.89-1.rhsysv              MooseFS
moosefs-pro-metalogger.x86_64               2.0.89-1.rhsysv              MooseFS
moosefs-pro-netdump.i686                    2.0.89-1.rhsysv              MooseFS
moosefs-pro-netdump.x86_64                  2.0.89-1.rhsysv              MooseFS
moosefs-pro-supervisor.i686                 2.0.89-1.rhsysv              MooseFS
moosefs-pro-supervisor.x86_64               2.0.89-1.rhsysv              MooseFS  3、node2上安装master server,CGI ,CLI
[root@Node2 ~]# yum install moosefs-cgi   #master服务
[root@Node2 ~]# rpm -ql moosefs-master
/etc/mfs/mfsexports.cfg.dist     #mfs被挂接目录及其权限控制配置文件,
/etc/mfs/mfsmaster.cfg.dist      #主配置文件,
/etc/mfs/mfstopology.cfg.dist    #定义MFS网络拓扑结构的配置文件
/etc/rc.d/init.d/moosefs-master
/usr/sbin/mfsmaster
/usr/sbin/mfsmetadump
/usr/sbin/mfsmetarestore
/usr/share/doc/moosefs-master-2.0.89
/usr/share/doc/moosefs-master-2.0.89/NEWS
/usr/share/doc/moosefs-master-2.0.89/README
/usr/share/man/man5/mfsexports.cfg.5.gz
/usr/share/man/man5/mfsmaster.cfg.5.gz
/usr/share/man/man5/mfstopology.cfg.5.gz
/usr/share/man/man8/mfsmaster.8.gz
/usr/share/man/man8/mfsmetadump.8.gz
/usr/share/man/man8/mfsmetarestore.8.gz
/var/lib/mfs
/var/lib/mfs/metadata.mfs.empty
[root@Node2 ~]# cd /etc/mfs/
[root@Node2 mfs]# ls
mfsexports.cfg       mfsmaster.cfg       mfstopology.cfg
mfsexports.cfg.dist  mfsmaster.cfg.dist  mfstopology.cfg.dist
[root@Node2 ~]# yum install moosefs-cgiserv moosefs-cgi(被moosefs-cgiserv所依赖)
          #CGI监视接口 被用户用来查看和分析当前MooseFS状态的web-gui
[root@Node2 mfs]# rpm -ql moosefs-cgiserv
/etc/rc.d/init.d/moosefs-cgiserv
/usr/sbin/mfscgiserv
/usr/share/doc/moosefs-cgiserv-2.0.89
/usr/share/doc/moosefs-cgiserv-2.0.89/NEWS
/usr/share/doc/moosefs-cgiserv-2.0.89/README
/usr/share/man/man8/mfscgiserv.8.gz
/var/lib/mfs
[root@Node2 mfs]# yum install moosefs-cli #MooseFS命令行接口工具允许你查看MooseFS状态信息
[root@Node2 mfs]# rpm -ql moosefs-cli
/usr/bin/mfscli
/usr/share/doc/moosefs-cli-2.0.89
/usr/share/doc/moosefs-cli-2.0.89/NEWS
/usr/share/doc/moosefs-cli-2.0.89/README
/usr/share/man/man1/mfscli.1.gz  主配置文件/etc/mfs/mfsmaster.cfg详解:
  注意:此配置文件是网上找编译安装后生成的,内容不完全一样,注意分辨

[root@Node2 mfs]# vi /etc/mfs/mfsmaster.cfg
WORKING_USER = mfs         # 运行 master server 的用户
# WORKING_GROUP = mfs        # 运行 master server 的组
# SYSLOG_IDENT = mfsmaster   # 是master server在syslog中的标识,也就是说明这是由master serve产生的
# LOCK_MEMORY = 0            # 是否执行mlockall()以避免mfsmaster 进程溢出(默认为0)
# NICE_LEVEL = -19           # 运行的优先级(如果可以默认是 -19; 注意: 进程必须是用root启动)
# EXPORTS_FILENAME = /usr/local/mfs-1.6.27/etc/mfs/mfsexports.cfg   # 被挂载目录及其权限控制文件的存放路径
# TOPOLOGY_FILENAME = /usr/local/mfs-1.6.27/etc/mfs/mfstopology.cfg # mfstopology.cfg文件的存放路径
# DATA_PATH = /usr/local/mfs-1.6.27/var/mfs # 数据存放路径,此目录下大致有三类文件,changelog,sessions和stats;
# BACK_LOGS = 50             # metadata的改变log文件数目(默认是 50)
# BACK_META_KEEP_PREVIOUS = 1     # metadata的默认保存份数(默认为1)
# REPLICATIONS_DELAY_INIT = 300   # 延迟复制的时间(默认是300s)
# REPLICATIONS_DELAY_DISCONNECT = 3600   # chunkserver断开的复制延迟(默认是3600)
# MATOML_LISTEN_HOST = *          #  metalogger监听的IP地址(默认是*,代表任何IP)
# MATOML_LISTEN_PORT = 9419       # metalogger监听的端口地址(默认是9419)
# MATOML_LOG_PRESERVE_SECONDS = 600
# MATOCS_LISTEN_HOST = *          # 用于chunkserver连接的IP地址(默认是*,代表任何IP)
# MATOCS_LISTEN_PORT = 9420       # 用于chunkserver连接的端口地址(默认是9420)
# MATOCL_LISTEN_HOST = *          # 用于客户端挂接连接的IP地址(默认是*,代表任何IP)
# MATOCL_LISTEN_PORT = 9421       # 用于客户端挂接连接的端口地址(默认是9421)
# CHUNKS_LOOP_MAX_CPS = 100000    # chunks的最大回环频率(默认是:100000秒)
# CHUNKS_LOOP_MIN_TIME = 300      # chunks的最小回环频率(默认是:300秒)
# CHUNKS_SOFT_DEL_LIMIT = 10      # 一个chunkserver中soft最大的可删除数量为10个
# CHUNKS_HARD_DEL_LIMIT = 25      # 一个chuankserver中hard最大的可删除数量为25个
# CHUNKS_WRITE_REP_LIMIT = 2      # 在一个循环里复制到一个chunkserver的最大chunk数目(默认是1)
# CHUNKS_READ_REP_LIMIT = 10      # 在一个循环里从一个chunkserver复制的最大chunk数目(默认是5)
# ACCEPTABLE_DIFFERENCE = 0.1     # 每个chunkserver上空间使用率的最大区别(默认为0.01即1%)
# SESSION_SUSTAIN_TIME = 86400    # 客户端会话超时时间为86400秒,即1天
# REJECT_OLD_CLIENTS = 0       # 弹出低于1.6.0的客户端挂接(0或1,默认是0)  
        该配置文件默认全部都为注释。mfs官方默认这样规定的,每一个注释的配置都是mfs此项配置的默认值。其实,我们linux中很多配置文件的设计风格都是这样子的,比如sshd_config.如果打算更改这些配置文件中某些项的参数,只需要取消注释,并且更改对应的参数即可。
       针对master来讲,mfsmaster.cfg的默认配置无需更改即可投入使用。
  配置文件/etc/mfs/mfsexports.cfg:

         该配置文件制定了哪些客户端可以远程挂接MFS文件系统,以及授予挂载客户端什么样的访问权限。与NFS相似,NFS要共享一个目录时,我们会使用vim /etc/exports命令,
  编写共享给谁,所要共享的目录,共享出去的属性这些内容,而mfsexports.cfg的作用与其类似其书写格式如下:
           [ip range] [path] [options]
clientDirectoryProperty
*                 /                rw,alldirs,maproot=0
client支持格式:ip、ip/netmask、ip/位数掩码、ip-ip、*
client地址可以指定的几种表现形式:
* 所有的ip 地址
n.n.n.n 单个ip 地址
n.n.n.n/b IP 网络地址/位数掩码
n.n.n.n/m.m.m.m IP 网络地址/子网掩码
f.f.f.f-t.t.t.t IP 段
目录部分需要注意两点:
/ 标识MooseFS 根;
. 表示MFSMETA 文件系统
权限部分:
ro 只读模式共享
rw 读写的方式共享
alldirs 许挂载任何指定的子目录
maproot    映射为root,还是指定的用户   
password    指定客户端密码
# Defaults:
#  readonly,maproot=999:999,mingoal=1,maxgoal=9,mintrashtime=0,maxtrashtime=4294967295      我们配置只有192.168.10.0/24网段的主机可以读写模式访问MFS的整个共享结构资源(/)。在配置文件mfsexports.cfg中写入如下信息即可。
192.168.10.0/24                 /       rw,alldirs,maproot=0:0  启动moosefs-master:
       在 MooseFS 的架构中,Master Server 是不依附于其它几个组件的,它可以单独启动。但是需要注意,其它组件必须要等 Master Server 起来之后才能启动!切记!!!
       在通过上面的简单配置之后,我们就可以启动 Master Server 了!
[root@Node2 mfs]# service moosefs-master start
正在启动 mfsmaster:                                 [确定]
[root@Node2 ~]# ss -ntlp|grep mfs
LISTEN     0      100                       *:9419                     *:*      users:(("mfsmaster",6042,8))
LISTEN     0      100                       *:9420                     *:*      users:(("mfsmaster",6042,9))
LISTEN     0      100                       *:9421                     *:*      users:(("mfsmaster",6042,10))
LISTEN     0      50                        *:9425                     *:*      users:(("mfscgiserv",4520,3))  mfsmaster开启三个端口:客户端连接9421端口,监听9422端口;数据节点9420端口
  

  4、node3上安装metalogger server                                

        前面已经介绍了,Metalogger Server 是 Master Server 的备份服务器。一旦主服务器master宕机失效,我们只要导入备份信息changelogs到元数据文件,备份服务器可直接接替故障的master继续提供服务。
[root@Node3 ~]# yum install moosefs-metalogger
[root@Node3 ~]# rpm -ql moosefs-metalogger
/etc/mfs/mfsmetalogger.cfg.dist
/etc/rc.d/init.d/moosefs-metalogger
/usr/sbin/mfsmetalogger
/usr/share/doc/moosefs-metalogger-2.0.89
/usr/share/doc/moosefs-metalogger-2.0.89/NEWS
/usr/share/doc/moosefs-metalogger-2.0.89/README
/usr/share/man/man5/mfsmetalogger.cfg.5.gz
/usr/share/man/man8/mfsmetalogger.8.gz
/var/lib/mfs  配置文件/etc/mfs/mfsmetalogger.cfg:
root@Node3 ~]# cd /etc/mfs
[root@Node3 mfs]# ls
mfsmetalogger.cfg  mfsmetalogger.cfg.dist
[root@Node3 mfs]# vi mfsmetalogger.cfg
# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfsmetalogger
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
# DATA_PATH = /usr/local/mfs-1.6.27/var/mfs
# BACK_LOGS = 50
# BACK_META_KEEP_PREVIOUS = 3
# META_DOWNLOAD_FREQ = 24           # 元数据备份文件下载请求频率,默认为24小时,即每个一天从元数据服务器下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时,metadata.mfs.back文件将小时,那么要恢复整个mfs,则需要从metalogger服务器取得该文件。请注意该文件,它与日志文件在一起,才能够恢复整个被损坏的分布式文件系统。
# MASTER_RECONNECTION_DELAY = 5
MASTER_HOST = 172.16.100.1       # 这里是需要连接的 mfs master server 的地址
#MASTER_PORT = 9419                      # 这里是需要连接的 mfs master server 的端口
# MASTER_TIMEOUT = 60
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock  
        这个文件中需要修改的是MASTER_HOST变量,这个变量的值是 Master Server 的 IP 地址。如果对 Master Server 做了 host 解析也可以不改任何内容。
这里需要将它修改为如下参数:
# MASTER_HOST = mfsmaster
MASTER_HOST = 192.168.10.2启动metalogger server:
  启动 Metalogger Server 之前,一定要确保 Master server 的服务是正常启动的。
[root@Node3 mfs]# service moosefs-metalogger start
Starting mfsmetalogger:                                    [  OK  ]
[root@Node3 mfs]# ps aux|grep mfs
mfs      12896  0.2  0.2  17628  1116 ?        S<   11:00   0:00 mfsmetalogger start
root     12980  0.0  0.1 103244   856 pts/1    S+   11:04   0:00 grep mfs         我们可以看到它下载一些文件,这些文件就是之前介绍过的Master Server上的文件,我们可以在以下目录看到这些文件。
[root@Node3 ~]# ls /var/lib/mfs
changelog_ml_back.0.mfs  changelog_ml_back.1.mfs  metadata_ml.mfs.back  5、node4上安装chunk server
         数据存储服务器也被称为 Chunk Server。在 MooseFS 文件系统中,每个 Chunk Server 的配置是完全相同的。因此,这里我们仅以一台 Chunk Server 的安装为例进行演示,
[root@Node4 ~]# yum install moosefs-chunkserver^C
[root@Node4 ~]# rpm -ql moosefs-chunkserver
/etc/mfs/mfschunkserver.cfg.dist
/etc/mfs/mfshdd.cfg.dist
/etc/rc.d/init.d/moosefs-chunkserver
/usr/sbin/mfschunkserver
/usr/sbin/mfschunktool
/usr/share/doc/moosefs-chunkserver-2.0.89
/usr/share/doc/moosefs-chunkserver-2.0.89/NEWS
/usr/share/doc/moosefs-chunkserver-2.0.89/README
/usr/share/man/man5/mfschunkserver.cfg.5.gz
/usr/share/man/man5/mfshdd.cfg.5.gz
/usr/share/man/man8/mfschunkserver.8.gz
/usr/share/man/man8/mfschunktool.8.gz
/var/lib/mfs  配置文件/etc/mfs/mfschunkserver.cfg:
          配置 Chunk Server 需要两个配置文件,分别是 mfschunkserver.cfg 和 mfshdd.cfg 。
  其中,mfschunkserver.cfg 是主配置文件,而 mfshdd.cfg 是服务器用来分配给 MFS 使用的空间的配置文件,最好是一个单独的磁盘或者一个raid卷,最低要求是一个分区。
在每个mfs chunk server 上的配置及操作如下:
[root@Node4 mfs]# vi mfschunkserver.cfg
# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfschunkserver
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
# DATA_PATH = /usr/local/mfs-1.6.27/var/mfs
# MASTER_RECONNECTION_DELAY = 5
# BIND_HOST = *
MASTER_HOST = mfsmaster        # 该地址为 Master Server 的IP地址或者主机名
# MASTER_PORT = 9420
# MASTER_TIMEOUT = 60
# CSSERV_LISTEN_HOST = *
# CSSERV_LISTEN_PORT = 9422   # 该端口用于与其它chunk server之间的通信,主要是数据复制
# HDD_CONF_FILENAME = /usr/local/mfs-1.6.27/etc/mfs/mfshdd.cfg
# HDD_TEST_FREQ = 10
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfschunkserver.lock
# BACK_LOGS = 50
# CSSERV_TIMEOUT = 5
      在常规的使用过程中,我们只需要修改一个 MASTER_HOST参数,将该参数设置为我们 Master Server 的IP地址或者主机名即可。
配置mfshdd.cfg主配置文件:
       mfshdd.cfg该文件用来设置你将 Chunk Server 的哪个目录共享出去给 Master Server进行管理。当然,虽然这里填写的是共享的目录,但是这个目录后面最好是一个单独的分区。分区的相关操作,这里就不占篇幅了。
[root@Node4 ~]# ls /mogstore/
dev2  lost+found
[root@Node4 mfs]# vi mfshdd.cfg        #这里就使用上次mogilefs博文中创建的分区/mogstore
/mogstore
[root@Node4 mfs]# chown mfs. -R /mogstore/
启动 Chunk Server:

       和 Metalogger Server 一样,在启动 chunk servers之前,必须要先确保 Master Server 的服务是正常启动的,否则启动会报错。
[root@Node4 mfs]# service moosefs-chunkserver restart
Stopping mfschunkserver:                                   [  OK  ]
Starting mfschunkserver:                                   [  OK  ]
[root@Node4 mfs]# ls /mogstore/
00  10  20  30  40  50  60  70  80  90  A0  B0  C0  D0    DF  EF  FF
01  11  21  31  41  51  61  71  81  91  A1  B1  C1  D1    E0  F0  lost+found
02  12  22  32  42  52  62  72  82  92  A2  B2  C2  D2    E1  F1
03  13  23  33  43  53  63  73  83  93  A3  B3  C3  D3    E2  F2
04  14  24  34  44  54  64  74  84  94  A4  B4  C4  D4    E3  F3
05  15  25  35  45  55  65  75  85  95  A5  B5  C5  D5    E4  F4
06  16  26  36  46  56  66  76  86  96  A6  B6  C6  D6    E5  F5
07  17  27  37  47  57  67  77  87  97  A7  B7  C7  D7    E6  F6
08  18  28  38  48  58  68  78  88  98  A8  B8  C8  D8    E7  F7
09  19  29  39  49  59  69  79  89  99  A9  B9  C9  D9    E8  F8
0A  1A  2A  3A  4A  5A  6A  7A  8A  9A  AA  BA  CA  DA    E9  F9
0B  1B  2B  3B  4B  5B  6B  7B  8B  9B  AB  BB  CB  DB    EA  FA
0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  AC  BC  CC  DC    EB  FB
0D  1D  2D  3D  4D  5D  6D  7D  8D  9D  AD  BD  CD  DD    EC  FC
0E  1E  2E  3E  4E  5E  6E  7E  8E  9E  AE  BE  CE  DE    ED  FD
0F  1F  2F  3F  4F  5F  6F  7F  8F  9F  AF  BF  CF  dev2  EE  FE6、node1安装client
[root@Node1 ~]# yum install moosefs-client
[root@Node1 ~]# rpm -ql moosefs-client
/etc/mfs/mfsmount.cfg.dist
/usr/bin/mfsappendchunks
/usr/bin/mfscheckfile
/usr/bin/mfsdeleattr
/usr/bin/mfsdelquota
/usr/bin/mfsdirinfo
/usr/bin/mfsfileinfo
/usr/bin/mfsfilepaths
/usr/bin/mfsfilerepair
/usr/bin/mfsgeteattr
/usr/bin/mfsgetgoal
/usr/bin/mfsgetquota
/usr/bin/mfsgettrashtime
/usr/bin/mfsmakesnapshot
/usr/bin/mfsmount
/usr/bin/mfsrgetgoal
/usr/bin/mfsrgettrashtime
/usr/bin/mfsrsetgoal
/usr/bin/mfsrsettrashtime
/usr/bin/mfsseteattr
/usr/bin/mfssetgoal
/usr/bin/mfssetquota
/usr/bin/mfssettrashtime
/usr/bin/mfstools
/usr/share/doc/moosefs-client-2.0.89挂载mfs文件系统:
          如果我们之前设置了密码,这里会提示我们需要输入密码
root@Node1 ~]# mfsmount /mnt -H 192.168.10.2    # 使用 -p 后面,下面会提示输入密码
mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root
[root@Node1 ~]# df -TH
Filesystem        Type      Size  Used Avail Use% Mounted on
/dev/sda2         ext4       20G  2.4G   16G  14% /
tmpfs             tmpfs     981M     0  981M   0% /dev/shm
/dev/sda1         ext4      508M   34M  448M   7% /boot
192.168.10.2:9421 fuse.mfs   21G  856M   20G   5% /mnt       特别需要注意的是,所有的MFS 都是挂接同一个元数据服务器master 的IP,而不是其他数据存储服务器chunkserver 的IP

挂载本地后写入文件测试:
root@Node1 mnt]# echo "Hello" > Test
[root@Node1 mnt]# cat Test
Hello配置客户端开机自动挂载:
       如果需要Client能够在开机的时候自动挂载,我们就需要自动把密码传递进去。mfsmount自带了-o参数,我们可以把密码配置在其后来实现开机自动挂载。
例如:mfsmount /mogstore -H 192.168.10.2 -o mfspassword=anyfish
[root@Node1 ~]# echo '/usr/bin/mfsmount /mogstore -H 192.168.10.2 ' >> /etc/rc.local  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670287-1-1.html 上篇帖子: 轻量级分布式系统 下篇帖子: moosefs分布式文件系统实施配置方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表