一、构建MFS集群:构建集群拓扑

|NO.Z.00024|——————————|^^  构建  ^^|——|分布式存储之MFS.V2|——|6台server|_vim

### --- MFS-Master:10.10.10.11
### --- MFS-MetaData:10.10.10.12
### --- MFS-ChunkServer:10.10.10.13 10.10.10.14(分开添加,演示添加MFS-ChunkServer容易)
### --- MFS-Client:10.10.10.15

~~~ 在真实生产环境中Chunkserver的磁盘性质最好一直,
~~~ 比如SSD、HDD或者空间大小一直,有利于它的平均分配

二、系统部署规划

### --- 系统部署规划

~~~ Windows:10.10.10.240:Chrome登录监控页面
~~~ HA-server1:MFS-MasterServer:元数据存储节点
~~~ HA-server2:MFS-MetaData:备份元数据存储节点
~~~ HA-server3:MFS-ChunkServer:存储数据实体
~~~ HA-server4:MFS-ChunkServer:存储数据实体
~~~ HA-server5:MFS-Client:MFS的客户端

三、实验专题:

1、配置Master Server Node:10.10.10.11MFS-Master节点

### --- 配置Master Server Node:10.10.10.11MFS-Master节点
### --- 将moosefs-3.0.84-1.tar.gz源码包上传到服务器中

[root@server11 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz
[root@server11 ~]# cd moosefs-3.0.84
[root@server11 moosefs-3.0.84]# useradd -s /sbin/nologin -M mfs
### --- 安装moosefs

[root@server11 moosefs-3.0.84]# yum install -y zlib zlib-devel
[root@server11 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@server11 moosefs-3.0.84]# make && make install
### --- 配置,将常用的文件软连接到特定目录
[root@server11 ~]# chown -R mfs.mfs /usr/local/mfs/
[root@server11 ~]# ln -s /usr/local/mfs/bin/mfscli /usr/local/bin/
[root@server11 ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@server11 ~]# ls /usr/local/mfs/

~~~ bin:命令 etc:etc配置文件 sbin:管理员命令 share:共享目录 var:动态数据
[root@server11 ~]# cd /usr/local/mfs/
[root@server11 mfs]# chmod a+x bin/mfscli
[root@server11 mfs]# chmod a+x sbin/*
[root@server11 mfs]# cd etc/mfs/ // 该目录下会有一堆的样板文件;对于主服务来说,开启一个样板就会对应一个功能;对于主服务器来说开启的是mfsmaster.cfg.sample文件
[root@server11 mfs]# ls
mfschunkserver.cfg.sample mfsexports.cfg.sample mfshdd.cfg.sample mfsmaster.cfg.sample mfsmetalogger.cfg.sample mfstopology.cfg.sample
### --- mfsmaster.cfg修改注配置文件

[root@server11 mfs]# cp -a mfsmaster.cfg.sample mfsmaster.cfg
[root@server11 mfs]# vim mfsmaster.cfg // 该配置文件不需要修改,直接退出即可,更详细的说明在辅助文本中。
[root@server11 mfs]# cp -a mfsexports.cfg.sample mfsexports.cfg // 用户访问过来之后修改对应的权限,去申明权限的
[root@server11 mfs]# vim mfsexports.cfg
10.10.10.0/24 . rw,alldirs,maproot=0 // 10.10.10.0/24:允许当前客户端访问的当前网段 .:点表示MFS根文件系统 rw:读写,alldirs:允许任何目录都允许挂载,maproot=0:登录过来后是root权限;若是想写多个数据可以写多个行。是正确配置
### --- metadata.mfs修改持久化数据备份配置文件

[root@server11 mfs]# cd /usr/local/mfs/var/mfs/
[root@server11 var]# pwd
/usr/local/mfs/var/mfs/ // 该目录下方的是持久化元数据信息
[root@server11 mfs]# cp -a metadata.mfs.empty metadata.mfs
[root@server11 mfs]# ls // 创建了一个元数据的空模板
metadata.mfs metadata.mfs.empty
[root@server11 mfs]# vim metadata.mfs
[root@server11 mfs]# mfsmaster start // 启动mfsmaster server
master <-> metaloggers module: listen on *:9419 // 启动成功后显示三个端口已经被监听
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
[root@server11 mfs]# ls // 且/usr/local/mfs/var/mfs目录下文件发生变化,metadata.mfs是未启动时候的名称,启动之后加载到data中并且把文件名称改为metadata.mfs.back,该文件相当于完全备份文件,内存与该文件是一个完整备份,
changelog.0.mfs metadata.mfs.back metadata.mfs.empty // 完整备份有一定的时间周期,它又出现了一个差异备份,假设我们设置的是2小时备份一次,那么2小时之内的元数据信息就会备份在changelog.0.mfs里,且changelog.0.mfs是一个轮询的概念
~~~ changelog.0.mfs metadata.mfs.back 这两个文件加在一起就是内存里面的完整备份,即保证了它的效率,又保证了文件的一致性。
### --- mfscgiserv该程序是官方给的监控页面
[root@server11 mfs]# mfscgiserv // 回车直接开启即可

### --- 通过Chrome浏览器访问http://10.10.10.11:9425/得到MFS自己本身自带的检测页面;该页面不是特别友好,生产环境中还是使用zabbix监控,该监控页面可以定义为服务是否安装成功的一个验证
~~~ Disk:当前存在哪些MFS-ChunkServer
~~~ Mounts:当前哪些用户挂载
~~~ MFS-Masterserver官方声称可以支持上万个子节点,所有数据流量都是经过MFS-Masterserver,不涉及到真实流量的转发,压力非常小

|NO.Z.00024|——————————|^^  构建  ^^|——|分布式存储之MFS.V2|——|6台server|_vim_02

2、配置:Metadata Server Node:10.10.10.12

### --- 目的:当MFS-Master宕机后Metadata保证数据不会丢失
### --- 将moosefs-3.0.84-1.tar.gz源码包上传到服务器中

[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz root@10.10.10.12:/root/
[root@server12 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz
### --- 安装moosdfs

[root@server12 ~]# yum install -y zlib zlib-devel
[root@server12 moosefs-3.0.84]#
[root@server12 moosefs-3.0.84]# useradd -s /sbin/nologin -M mfs
[root@server12 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
~~~     编译情况下masterhe和其它节点编译参数都一致,
~~~ 只有client编译参数不一致,moosefs怎么判断哪个节点配置什么服务,
~~~ 就是根据开启不同的配置文件来决定配置的是什么角色。

[root@server12 moosefs-3.0.84]# make && make install
[root@server12 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server12 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server12 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 修改配置文件

[root@server12 moosefs-3.0.84]# cd /usr/local/mfs/etc/mfs/
[root@server12 mfs]# pwd
/usr/local/mfs/etc/mfs
[root@server12 mfs]# cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@server12 mfs]# vim mfsmetalogger.cfg
META_DOWNLOAD_FREQ = 2 // 完整备份的轮询时间,2个小时;也可以根据自己的环境自己定义;若是元数据数据量庞大的话,太占用网络带宽,文件比较小,可以把备份时间设置小一点
MASTER_HOST = 10.10.10.11 // 主服务器MFS-Master的IP地址是多少
### --- 启动mfsmetalogger
[root@server12 mfs]# mfsmetalogger start
[root@server12 mfs]# lsof -i :9419
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mfsmetalo 8042 mfs 8u IPv4 18068 0t0 TCP 10.10.10.12:53599->10.10.10.11:9419 (ESTABLISHED)

~~~ TCP连接 10.10.10.12:53599端口连接到->10.10.10.11:9419端口 (ESTABLISHED)有数据传输,已经建立连接
[root@server12 mfs]# ls /usr/local/mfs/var/mfs/ // 元数据信息已经同步过来了 //备份目录依然是这个目录
changelog_ml_back.0.mfs changelog_ml_back.1.mfs metadata.mfs.empty metadata_ml.mfs.back

3、配置Chunk Server Node:10.10.10.13

### --- 查看磁盘,并为磁盘分区,创建文件系统

[root@server13 ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes // 这是新添加的一块磁盘
Command (m for help): n // 新建分区
Command action
e extended
p primary partition (1-4)
p // 主分区
Partition number (1-4):
Partition number (1-4): 1 // 1号分区号
First cylinder (1-13054, default 1): // 直接回车默认从头开始
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): // 直接回车规模人到尾结束;使用所有的空间
Using default value 13054
Command (m for help): w // w保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
### --- 查看磁盘,并为磁盘分区,创建文件系统

[root@server13 ~]# mkfs.ext4 /dev/sdb1 // 格式化sdb1为ext4文件系统
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@server13 ~]# mkdir /mnt/mfs // 创建挂载点
[root@server13 ~]# useradd -s /sbin/nologin -M mfs // 添加mfs用户
[root@server13 ~]# chown -R mfs.mfs /mnt/mfs/ // 为挂载点授予mfs用户权限
[root@server13 ~]# mount -t ext4 /dev/sdb1 /mnt/mfs/ // 将/dev/sdb1挂载到/mnt/mfs目录下
[root@server13 ~]# chown -R mfs.mfs /mnt/mfs/ // 挂载成功以后在重新提交一下权限,挂载后它的权限会发生更替,重新递归一下
### --- 配置MFS-ChunkServer节点
~~~ 将moosefs-3.0.84-1.tar.gz源码包上传到服务器中

[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz root@10.10.10.13:/root/
[root@server13 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz
[root@server13 ~]# yum install -y zlib zlib-devel
~~~     安装moosefs

[root@server13 ~]# cd moosefs-3.0.84
[root@server13 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@server13 moosefs-3.0.84]# make && make install
[root@server13 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server13 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server13 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 修改chunkserver配置文件

[root@server13 moosefs-3.0.84]# cd /usr/local/mfs/etc/mfs/
[root@server13 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@server13 mfs]# vim mfschunkserver.cfg
MASTER_HOST = 10.10.10.11 // 指定主服务器的地址MFS-Masterserver地址
MASTER_PORT = 9420 // 指定端口
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg // 指定用什么样的HDD配置文件提供的传输能力,也就是该文件提供那几个目录提供的存储能力
[root@server13 mfs]# cp -a mfshdd.cfg.sample mfshdd.cfg
[root@server13 mfs]# vim mfshdd.cfg // 修改hdd配置文件
#/mnt/hd3 -5GiB // hd3目录最大可用空间-掉5GIB空间,为实际使用空间
#/mnt/hd4 1.5TiB // hd4目录最大使用空间为1.5TIB //这两种方式用的比较少,因为我们都已经挂载了,说明该目录已经给他使用了
/mnt/mfs // 在最后一行添加挂载目录为/mnt/mfs目录
### --- 启动MFS-Chunserver服务于

[root@server13 mfs]# mfschunkserver start
### --- 验证:通过Chrome输入访问:http://10.10.10.11:9425——>Disk查看到10.10.10.13:9422/mnt/mfs已经配置完成

|NO.Z.00024|——————————|^^  构建  ^^|——|分布式存储之MFS.V2|——|6台server|_配置文件_03

4、配置Client Node:10.10.10.15客户端配置

### --- MFS-Client Server配置i
### --- 需要安装FUSE用户空间文件系统,及相关依赖

[root@server15 ~]# yum install -y fuse fuse-devel fuse-libs
### --- 将moosefs-3.0.84-1.tar.gz源码包上传到服务器中
~~~ 并安装moosefs及配置

[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz root@10.10.10.15:/root/
[root@server15 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz
[root@server15 ~]# yum install -y zlib zlib-devel
[root@server15 ~]# cd moosefs-3.0.84
[root@server15 moosefs-3.0.84]# useradd -s /sbin/nologin -M mfs
[root@server15 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkerserver
[root@server15 moosefs-3.0.84]# make && make install
[root@server15 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server15 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server15 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 可以直接创建挂载点并挂载

[root@server15 moosefs-3.0.84]# mfsmount /mfsclient/ -H 10.10.10.11 // mfsmount /mfsclient/挂载点 -H:指定挂载地址 10.10.10.11:挂载地址
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@server15 moosefs-3.0.84]# chown -R mfs.mfs /mfsclient/
[root@server15 moosefs-3.0.84]# cd /mfsclient/
[root@server15 mfsclient]# vim 1.tx
this is HA-server5 IP:10.10.10.15 is MFS-ClientServer
[root@server15 mfsclient]# mfsfileinfo 1.txt // 查看一下1.txt文件在哪里 //只有一个副本数
1.txt:
chunk 0: 0000000000000002_00000001 / (id:2 ver:1) // chunk 0:数字——>chunkID号
copy 1: 10.10.10.13:9422 (status:VALID) // copy 1 在哪个节点10.10.10.13:9422端口的元数据信息存放在13服务器中

### --- 验证:通过Chrome输入访问:http://10.10.10.11:9425——>Mounts查看到10.10.10.15/mfsclient已经配置完成

|NO.Z.00024|——————————|^^  构建  ^^|——|分布式存储之MFS.V2|——|6台server|_vim_04

5、再动态添加一个MFS-ChunkServer:10.10.10.14

### --- 将moosefs-3.0.84-1.tar.gz源码包上传到服务器中

[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz root@10.10.10.14:/root/
[root@server14 ~]# useradd -s /sbin/nologin -M mfs
[root@server14 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz
[root@server14 ~]# yum install -y zlib zlib-devel


### --- 安装moosefs及配置

[root@server14 ~]# cd moosefs-3.0.84
[root@server14 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@server14 moosefs-3.0.84]# make && make install
[root@server14 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server14 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server14 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/


### --- 添加一块100G的磁盘并为之分区创建文件系统并挂载

[root@server14 ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
[root@server14 ~]# 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-13054, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):
Using default value 13054
Command (m for help): w
[root@server14 ~]# mkfs.ext4 /dev/sdb1
[root@server14 ~]# mkdir /mnt/mfs
[root@server14 ~]# chown -R mfs.mfs /mnt/mfs/
[root@server14 ~]# mount -t ext4 /dev/sdb1 /mnt/mfs/
[root@server14 ~]# chown -R mfs.mfs /mnt/mfs/


### --- 修改mfschunkserver配置文件并启动mgschunkserver服务

[root@server14 ~]# cd /usr/local/mfs/etc/mfs/
[root@server14 mfs]# cp -a mfschunkserver.cfg.sample mfschunkserver.cfg
MASTER_HOST = 10.10.10.11 // 指定主服务器的地址MFS-Masterserver地址
MASTER_PORT = 9420 // 指定端口
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg // 指定用什么样的HDD配置文件提供的传输能力,也就是该文件提供那几个目录提供的存储能力
[root@server14 mfs]# vim !$
[root@server14 mfs]# cp -a mfshdd.cfg.sample mfshdd.cfg
[root@server14 mfs]# vim !$ // 修改hdd配置文件
/mnt/mfs
[root@server14 mfs]# mfschunkserver start

### --- 验证:通过Chrome输入访问:http://10.10.10.11:9425——>Disks查看到10.10.10.13:9422/mnt/mfs 10.10.10.14:9422/mnt/mfs已经配置完成

|NO.Z.00024|——————————|^^  构建  ^^|——|分布式存储之MFS.V2|——|6台server|_vim_05


四、验证

### --- 在MFS-ClientServer节点再次创建一个文件

[root@server15 mfsclient]# vim 2.txt
2.txt this is HA-server5 IP:10.10.10.15 is MFS-ClientServer
[root@server15 mfsclient]# mfsfileinfo 2.txt // 查看一下2.txt文件
2.txt:
chunk 0: 0000000000000004_00000001 / (id:4 ver:1)
copy 1: 10.10.10.13:9422 (status:VALID) // 有两个副本数;默认的情况下mfs为所有文件设置的go都为2
copy 2: 10.10.10.14:9422 (status:VALID) // 若是你认为这个文件非常不重要,留一个副本值都没必要,可以设置go值为1,让其设定1个副本数

五、MFS维护操作(在10.10.10.15下执行)

### --- 误删除文件恢复处理,垃圾回收站机制

[root@server15 ~]# cd /mfsclient/
[root@server15 mfsclient]# rm -rf 2.txt // 删除2.txt文件,后期演示恢复操作


~~~     找回2.txt文件

[root@server15 mfsclient]# mkdir /mfsback
[root@server15 mfsclient]# mfsmount -m /mfsback/ -H 10.10.10.11
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@server15 mfsclient]# cd /mfsback/
[root@server15 mfsback]# ls
sustained trash
[root@server15 mfsback]# cd trash/
[root@server15 trash]# yum install -y tree // 因为trash目录下有很多子目录,使用tree定位
[root@server15 trash]# tree . >> /root/1.txt // 点代表当前目录,把当前目录的所有文件名称输出到/root/1.txt文件
[root@server15 trash]# vim /root/1.txt
├── 009
│ ├── 00000009|2.txt                         // 这个删除的2.txt文件在该位置,它是这样的命名规范,注意最后一个名称即可
│ └── undel
[root@server15 trash]# cd /mfsback/ // 回到trash上一级目录
[root@server15 mfsback]# mv trash/009/00000009\|2.txt trash/undel/ // 恢复删除的文件;trash/undel/把该文件拿到trash/undel/误删除目录,就进行了还原操作
[root@server15 mfsback]# ls /mfsclient/
1.txt 2.txt // 2.txt文件还原成功
[root@server15 mfsback]# cat /mfsclient/2.txt // 文件内容没有发生变化
2.txt this is HA-server5 IP:10.10.10.15 is MFS-ClientServer
~~~ 并不是所有文件都可以恢复的,只有在误删除时间之内可以恢复


### --- 修改误删除时间

[root@server15 mfsclient]# mfsgettrashtime 2.txt // 2.txt文件默认的误删除时间为86400秒
2.txt: 86400 // 默认误删除的时间为86400秒
[root@server15 mfsclient]# mfssettrashtime 88888 2.txt // 设定该文件误删除时间为88888
2.txt: 88888[root@server15 mfsclient]# mfsgettrashtime 2.txt
2.txt: 90000 // 再次查看是一个90000的值,它会自动匹配与自己定义最近的值


### --- 快照功能:类似于软连接

[root@server15 ~]# cd /mfsclient/
[root@server15 mfsclient]# mkdir back
[root@server15 mfsclient]# mfsmakesnapshot 2.txt back/ // 把2.txt快照到back目录下
[root@server15 mfsclient]# cat back/2.txt // 文件一直,与copy的区别是不占用两份空间
2.txt this is HA-server5 IP:10.10.10.15 is MFS-ClientServer


### --- 冗余goal设置

[root@server15 mfsclient]# vim 3.txt
3.txt this is HA-server15 10.10.10.15
[root@server15 mfsclient]# mfsfileinfo 3.txt
3.txt:
chunk 0: 0000000000000006_00000001 / (id:6 ver:1) // 2个副本
copy 1: 10.10.10.13:9422 (status:VALID)
copy 2: 10.10.10.14:9422 (status:VALID)
[root@server15 mfsclient]# mfssetgoal 1 3.txt // 1表示设定副本值为1
3.txt: goal: 1
[root@server15 mfsclient]# mfsfileinfo 3.txt
3.txt:
chunk 0: 0000000000000006_00000001 / (id:6 ver:1) // 只有1个副本
copy 1: 10.10.10.14:9422 (status:VALID)
[root@server15 mfsclient]# mfssetgoal 2 3.txt // 同理也可以恢复,副本值为2
3.txt: goal: 2
[root@server15 mfsclient]# mfsfileinfo 3.txt
3.txt:
chunk 0: 0000000000000006_00000001 / (id:6 ver:1) // 2个副本
copy 1: 10.10.10.13:9422 (status:VALID)
copy 2: 10.10.10.14:9422 (status:VALID)
[root@server13 ~]# mfschunkserver stop // 停止13的chunkserver,client访问不会中断
sending SIGTERM to lock owner (pid:8132)
waiting for termination terminated
[root@server15 mfsclient]# cat 3.txt // 再去访问3.txt文件,依然可以访问
3.txt this is HA-server15 10.10.10.15 // 说明单节点chunkserver宕机,不影响client的正常访问
[root@server13 ~]# mfschunkserver start
### --- 还原master

[root@server11 ~]# mfsmaster stop // 把10.10.10.11的MFS-MasterServer服务停止
sending SIGTERM to lock owner (pid:32553)
waiting for termination terminated
[root@server11 ~]# ls /usr/local/mfs/var/mfs/ // 该目录下的元数据信息非常重要,若是服务器意外损坏,这部分数据也会丢失
changelog.1.mfs changelog.2.mfs changelog.3.mfs changelog.6.mfs metadata.mfs metadata.mfs.back.1 metadata.mfs.empty stats.mfs
[root@server11 ~]# rm -rf /usr/local/mfs/var/mfs/* // 删除该目录下的说有数据,模拟元数据信息全部丢失
[root@server15 mfsclient]# cat 3.txt // 10.10.10.15客户端已不能正常访问数据
[root@server12 ~]# scp -r /usr/local/mfs/var/mfs/* root@10.10.10.11:/usr/local/mfs/var/mfs/ //把MFS-ChunkServer下的日志信息全部拿到MFS-MasterServer下
[root@server11 ~]# ls /usr/local/mfs/var/mfs/ // 在MFS-MasterServer下可以看到这部分数据了
changelog_ml.0.mfs changelog_ml.2.mfs changelog_ml_back.1.mfs metadata_ml.mfs.back
changelog_ml.1.mfs changelog_ml_back.0.mfs metadata.mfs.empty metadata_ml.mfs.back.1
[root@server11 ~]# mfsmaster -a // -a表示自动恢复元数据信息操作
[root@server15 mfsclient]# cat 3.txt // 在MFS-ClientServer下又可以访问3.txt文件了,说明恢复成功,有时会有延迟时间
3.txt this is HA-server15 10.10.10.15 // 说明只要MFS-MasterServer宕机完全不可用了,只要我们有MFS-MataDataServer服务器,还是可以再次进行恢复操作的。不会导致元数据信息丢失


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart

                                                                                                                                                   ——W.S.Landor