Linux-部署MFS分布式文件系统

MFS分布式文件系统

 

 

一、     实验名称:

  • MFS分布式文件系统

二、     实验目的: 

  • 熟悉MFS文件系统的组成
  • 熟悉MFS读写数据的处理过程
  • 搭建MFS文件系统
  • 对MFS进行故障恢复

三、     实验环境: 

主机

操作系统

IP地址

主要软件

Master

CentOS 7 x86_64

192.168.10.101

mfs-1.6.27-5.tar.gz

MetaLogger

CentOS 7 x86_64

192.168.10.102

mfs-1.6.27-5.tar.gz

Chunk Server1

CentOS 7 x86_64

192.168.10.103

mfs-1.6.27-5.tar.gz

Chunk Server2

CentOS 7 x86_64

192.168.10.104

mfs-1.6.27-5.tar.gz

Chunk Server3

CentOS 7 x86_64

192.168.10.105

mfs-1.6.27-5.tar.gz

Client

CentOS 7 x86_64

192.168.10.106

mfs-1.6.27-5.tar.gz

fuse-2.9.2.tar.gz

将所需软件拷贝至各个服务器的/usr/src目录中

四:实验思路:

  1. 搭建master server
  2. 搭建MetaLogger Server
  3. 搭建Chunk Server
  4. 配置客户端
  5. MFS监控

 

实验过程

 

一:配置master server

1:按照图表设置各个服务器的ip地址

2:关闭每台服务器的firewalld防火墙和selinux

3:设置每台服务器的yum源

4:创建用户

[root@localhost ~]# useradd mfs -s /sbin/nologin

5:安装源码包

[root@localhost ~]# yum -y install zlib-devel

[root@localhost ~]# yum -y install gcc*

[root@localhost ~]# tar xf mfs-1.6.27-5.tar.gz

[root@localhost ~]# cd mfs-1.6.27

[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

[root@localhost mfs-1.6.27]# make

[root@localhost mfs-1.6.27]# make install

6:复制文件

[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/

[root@localhost mfs]# ll

总用量 16

-rw-r--r--. 1 root root 4060 11月 14 19:31 mfsexports.cfg.dist

-rw-r--r--. 1 root root 1020 11月 14 19:31 mfsmaster.cfg.dist

-rw-r--r--. 1 root root  417 11月 14 19:31 mfsmetalogger.cfg.dist

-rw-r--r--. 1 root root 1123 11月 14 19:31 mfstopology.cfg.dist

[root@localhost mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg

[root@localhost mfs]# cp mfsexports.cfg.dist mfsexports.cfg

[root@localhost mfs]# cp mfstopology.cfg.dist  mfstopology.cfg

[root@localhost mfs]# cd /usr/local/mfs/var/mfs/

[root@localhost mfs]# ll

总用量 4

-rw-r--r--. 1 root root 8 11月 14 19:31 metadata.mfs.empty

[root@localhost mfs]# cp metadata.mfs.empty  metadata.mfs

7:配置文件

(1):mfsmaster.cfg的配置文件(无需修改)

[root@localhost mfs]# vi /usr/local/mfs/etc/mfs/mfsmaster.cfg

(2)mfsexports.cfg的配置文件(无需修改)

[root@localhost mfs]# vi /usr/local/mfs/etc/mfs/mfsexports.cfg

8:启动master server

[root@localhost mfs]# /usr/local/mfs/sbin/mfsmaster start

[root@localhost mfs]# ps -ef | grep mfs            \检查是否启动

mfs       42599      1  1 21:56 ?        00:00:00 /usr/local/mfs/sbin/mfsmaster start

root      42601  12890  0 21:56 pts/0    00:00:00 grep mfs

二:搭建MetaLogger Server(可以将日志服务器安装在master上,只需操作黄色区域的命令即可)

[root@localhost 桌面]# yum -y install zlib-devel

[root@localhost 桌面]# yum -y install gcc*

[root@localhost 桌面]# useradd mfs -s /sbin/nologin

[root@localhost 桌面]# cd /usr/src

[root@localhost src]# tar xf mfs-1.6.27-5.tar.gz

[root@localhost src]# cd mfs-1.6.27

[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

[root@localhost mfs-1.6.27]# make

[root@localhost mfs-1.6.27]# make install

[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/

[root@localhost mfs]# ll

总用量 16

-rw-r--r--. 1 root root 4060 11月 14 20:03 mfsexports.cfg.dist

-rw-r--r--. 1 root root 1020 11月 14 20:03 mfsmaster.cfg.dist

-rw-r--r--. 1 root root  417 11月 14 20:03 mfsmetalogger.cfg.dist

-rw-r--r--. 1 root root 1123 11月 14 20:03 mfstopology.cfg.dist

[root@localhost mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

[root@localhost mfs]# vi mfsmetalogger.cfg

修改:

MASTER_HOST = 192.168.10.101              \注意去掉前面的注释符

[root@localhost 桌面]# chown -R mfs:mfs /usr/local/mfs/var/mfs/

[root@localhost mfs]# /usr/local/mfs/sbin/mfsmetalogger start

[root@localhost mfs]# ps -ef | grep mfs

mfs       42599      1  0 21:56 ?        00:00:00 /usr/local/mfs/sbin/mfsmaster start

mfs       42612      1  0 21:58 ?        00:00:00 /usr/local/mfs/sbin/mfsmetalogger start

root      42614  12890  0 21:59 pts/0    00:00:00 grep mfs

三:chunk server的设置(每台chunk server主机的安装方法和配置都是一样的)

[root@localhost 桌面]# yum -y install zlib-devel

[root@localhost mfs-1.6.27]# yum -y install gcc*

[root@localhost ~]# useradd mfs -s /sbin/nologin

[root@localhost ~]# cd /usr/src

[root@localhost src]# tar xf mfs-1.6.27-5.tar.gz

[root@localhost src]# cd mfs-1.6.27

[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount

[root@localhost mfs-1.6.27]# make

[root@localhost mfs-1.6.27]# make install

[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs

[root@localhost mfs]# ll

总用量 8

-rw-r--r--. 1 root root 531 11月 14 20:22 mfschunkserver.cfg.dist

-rw-r--r--. 1 root root  57 11月 14 20:22 mfshdd.cfg.dist

[root@localhost mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg

[root@localhost mfs]# cp mfshdd.cfg.dist mfshdd.cfg

[root@localhost mfs]# vi mfschunkserver.cfg

修改:

MASTER_HOST = 192.168.10.101          \注意去掉前面的注释符,此处设置为master的ip地址

[root@localhost mfs]# vi mfshdd.cfg

添加:

/data                       \在最末尾添加

[root@localhost mfs]# mkdir /data

[root@localhost mfs]# chown -R mfs:mfs /data

[root@localhost mfs]# /usr/local/mfs/sbin/mfschunkserver start

[root@localhost mfs]# ps -ef | grep mfs

mfs       18627      1  0 22:04 ?        00:00:00 /usr/local/mfs/sbin/mfschunkserver start

root      18653  12893  0 22:05 pts/0    00:00:00 grep mfs

四:客户端配置

1:安装FUSE

用户空间文件系统(Filesystem in Userspace),是Linux 中用于挂载某些网络空间用的。

[root@localhost 桌面]# yum -y install zlib-devel

[root@localhost mfs-1.6.27]# yum -y install gcc*

[root@localhost ~]# tar xf fuse-2.9.2.tar.gz

[root@localhost ~]# cd fuse-2.9.2

[root@localhost fuse-2.9.2]# ./configure

[root@localhost fuse-2.9.2]# make

[root@localhost fuse-2.9.2]# make install

[root@localhost fuse-2.9.2]# vi /etc/profile

在末尾添加:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

 pkg-config用来检索系统中安装库文件的信息,在此指定其路径

[root@localhost fuse-2.9.2]# source /etc/profile

注释:使依赖此链接库的其它程序能够借助pkg-config自动加载该库,避免编译期错误

2:安装mfs客户端

[root@localhost fuse-2.9.2]# useradd mfs -s /sbin/nologin

[root@localhost fuse-2.9.2]# cd /usr/src

[root@localhost src]# tar xf mfs-1.6.27-5.tar.gz

[root@localhost src]# cd mfs-1.6.27

[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount

[root@localhost mfs-1.6.27]# make

[root@localhost mfs-1.6.27]# make install

3:挂在MFS文件系统

[root@localhost mfs-1.6.27]# mkdir /mnt/mfs

[root@localhost mfs-1.6.27]# modprobe fuse

[root@localhost mfs-1.6.27]# /usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.1.101 # IP为master的 IP

[root@localhost mfs-1.6.27]# df –TH

4:MFS常用操作

[root@localhost 桌面]# vi /etc/profile

末尾添加

export PATH=/usr/local/mfs/bin:$PATH

[root@localhost 桌面]# source /etc/profile

[root@localhost 桌面]# mfsgetgoal -r /mnt/mfs        \查看文件被复制的份数

[root@localhost 桌面]# mfssetgoal -r 3 /mnt/mfs           \设置文件被复制的份数

5:创建测试文件

[root@localhost 桌面]# cd /mnt/mfs

[root@localhost mfs]# touch test

[root@localhost mfs]# mfsgetgoal test

6:故障测试

将chunkserver全都断开,测试是否能继续写入数据(能够用touch命令创建新的文件,但无法写入数据)

五:MFS监听

1:在master server上启动监听服务

[root@localhost 桌面]# /usr/local/mfs/sbin/mfscgiserv

2:在任何一台机器上打开

http://192.168.10.101:9425

六:MFS的维护与灾难恢复

1:MFS群集的启动顺序

启动mfsmaster

启动所有的mfschunkserver

启动mfsmetalogger

在所有的客户端挂在MFS文件系统

2:停止集群的顺序

在所有的客户端卸载MFS文件系统

用mfschunkserver –s命令停止chunkserver进程

用mfsmetalogger –s命令停止metalogger进程

用mfsmaster –s命令停止master进程

3:MFS灾难恢复

1) 如果突然断电造成master进程无法启动可用如下命令修复

/usr/local/mfs/sbin/mfsmetarestore -a

2) master发生故障时,从metalogger中恢复

  • 安装一台新的mfsmaster服务器
  • 将metalogger上的/usr/loal/mfs/var/mfs/目录中的所有文件复制到新的mfsmaster服务器的同样的目录中。
  • 在新的master服务器中合并元数据changlogs

/usr/local/mfs/sbin/mfsmetarestore -m metadata_ml.mfs.back -o metadata.mfs changelog_ml.*.mfs修改metalogger和chunkserver中配置文件中MASTER_HOST参数的ip地址

原文地址:https://www.cnblogs.com/Vampire-MIn/p/13050036.html