mfs分布式存储搭建应用-创新互联

          MFS 分布式存储的运行方式

创新互联-专业网站定制、快速模板网站建设、高性价比沿河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式沿河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖沿河地区。费用合理售后完善,十余年实体公司更值得信赖。

MFS工作原理

MooseFS是一款具有冗余容错功能的分布式文件系统。它把数据分散在多台服务器上,确保一份数据多个备份副本,对外提供统一的结构。

功能特性

对于标准的文件操作,MooseFS表现与其他类Unix文件系统一致。支持的通过文件系统特性:

· 层次结构(目录树)

· 兼容POSIX文件属性

· 支持特殊文件

· 符号链接和硬链接

· 基于IP地址和密码的访问控制

独有特性

· 高可靠性(数据的多个副本存储在不同服务器)

· 容量动态扩展(添加新硬盘或者服务器)

· 可以回收在制定时间内删除的文件,类似回收站功能

· 可以对整个文件甚至是正在被写入的文件创建文件快照

MFS整体架构的四种角色

· Master(元数据服务器)负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝。存储着每个文件的元数据(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)

· Metalogger(元数据日志服务器)负责备份Master服务器的changelog。文件类型为 changelog.*.mfs ,以便在Master出问题时接替其工作

· Chunk(数据存储服务器)负责连接Master,听从Master调度,提供存储空间,并为客户端提供数据传输

· Client(客户端挂载)通过FUSE内核接口挂载远程管理服务器(master)上所管理的数据存储服务器,使用起来和本地文件系统一样

· mfs分布式存储搭建应用

## MFS读处理过程:
1、客户端向元数据服务器发出读请求。
2、元数据服务器把所需数据存放的位置(Chunk Server的IP地址和chunk编号)告知客户端。
3、客户端向已知的Chunk Server请求发送数据。
4、Chunk Server向客户端发送数据。

## MFS写处理过程:
1、客户端向元数据服务器发送写入请求。
2、元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行这个交互):
a、元数据服务器只是在某些服务器创建新的分块chunks。
b、Chunk Servers告知元数据服务器,步骤a已经操作成功。
3、元数据服务器告知客户端,你可以在哪个Chunk Server的哪些Chunks写入数据。
4、客户端向指定的Chunk Server写入数据
5、Chunk Server与其他Chunk Server进行数据同步。
6、Chunk Server之间同步成功。
7、Chunk Server告知客户端数据写入成功。
8、客户端告知元数据服务器本次写入完毕。

实验拓扑

mfs分布式存储搭建应用

一、搭建master  server

1.安装依赖包

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

mfs分布式存储搭建应用

2.创建用户

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

mfs分布式存储搭建应用

3.安装源码包

[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存储搭建应用

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

mfs分布式存储搭建应用

[root@centos1 mfs-1.6.27]# make&&make install

mfs分布式存储搭建应用

4.复制文件

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

mfs分布式存储搭建应用

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

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

[root@centos1 mfs]# cp mfstopology.cfg mfstopology.cfg

mfs分布式存储搭建应用

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

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

mfs分布式存储搭建应用

5.配置文件(只需了解,不用改动)

// mfsmaster.cfg(主配置文件)/usr/local/mfs/etc/mfs目录下

# 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/etc/mfsexports.cfg 被挂接目录及其权限控制文件的存放位置

# TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg

# DATA_PATH = /usr/local/mfs/var/mfs 数据存放路径,此目录下大致有三类文件,changelog,sessions和stats;

# BACK_LOGS = 50 metadata 的改变log文件数目(默认是50);

# BACK_META_KEEP_PREVIOUS = 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);

# MATOCU_LISTEN_HOST = * 用于客户端挂接连接的IP地址(默认是*,代表任何IP);

# MATOCU_LISTEN_PORT = 9421 用于客户端挂接连接的端口地址(默认是9421);

# CHUNKS_LOOP_MAX_CPS = 100000

# CHUNKS_LOOP_MIN_TIME = 300 chunks 的回环频率(默认是:300秒);

mfsexportes.cfg 为共享mfs文件系统的控制文件,NFS要共享一个目录时,我们会使用vim /etc/exports命令,编写共享给谁,所要共享的目录,共享出去的属性这些内容,而mfsexports.cfg的作用与其类似其书写格式如下: 对客户端的配置

Allow  everything    but  “meta”

*                /       rw,alldirs,maproot=0

mfs分布式存储搭建应用

Client(客户端)支持格式:ip、ip/netmask、ip/位数掩码、ip-ip、*

该文件每一个条目分为三部分:

第一部分:客户端的ip 地址

第二部分:被挂接的目录

第三部分:客户端拥有的权限

//地址可以指定的几种表现形式:

* 所有的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 许挂载任何指定的子目录

6.启动服务/usr/local/mfs/sbin/mfsmaster start

mfs分布式存储搭建应用

[root@centos1 mfs]#netstat -anpt

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address    Foreign Address             State       PID/Program name

tcp        0      0 0.0.0.0:9419                0.0.0.0:*                   LISTEN      7599/mfsmaster

tcp        0      0 0.0.0.0:9420                0.0.0.0:*                   LISTEN      7599/mfsmaster

tcp        0      0 0.0.0.0:9421                0.0.0.0:*                   LISTEN      7599/mfsmaster

tcp        0      0 192.168.1.1:9419            192.168.1.2:37816           ESTABLISHED 7599/mfsmaster

tcp        0      0 192.168.1.1:9420            192.168.1.3:48107           ESTABLISHED 7599/mfsmaster

tcp        0      0 ::1:25                      :::*                        LISTEN      1732/master

7.查看进程

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

mfs分布式存储搭建应用

8.停止mfsmaster

[root@centos1 mfs]#/usr/local/mfs/sbin/mfsmaster -s 或stop

二、搭建metalogger  server

1.安装依赖包

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

mfs分布式存储搭建应用

2.创建用户

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

mfs分布式存储搭建应用

3.安装源码包

[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存储搭建应用

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

mfs分布式存储搭建应用

[root@centos1 mfs-1.6.27]#make && make install

mfs分布式存储搭建应用

4.复制文件

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

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

mfs分布式存储搭建应用

[root@centos2 mfs]# vim mfsmetalogger.cfg

MASTER_HOST=192.168.1.1  //手工添加MASTER SERVER的ip地址

mfs分布式存储搭建应用

5.启动服务

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

mfs分布式存储搭建应用

三、搭建chunk server

1.安装依赖包

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

mfs分布式存储搭建应用

2.创建用户

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

mfs分布式存储搭建应用

3.安装

[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存储搭建应用

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

mfs分布式存储搭建应用

[root@centos3 mfs-1.6.27]# make &&make install

mfs分布式存储搭建应用

4.复制配置文件

[root@centos3 mfs]# cd  /usr/local/mfs/etc/mfs/

#cp mfschunkserver.cfg.dist mfschunkserver.cfg

[root@centos3 mfs]# cp mfshdd.cfg mfshdd.cfg

mfs分布式存储搭建应用

5.修改配置文件

[root@centos3 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.1  //master服务器的ip地址

mfs分布式存储搭建应用

[root@centos3 mfs]# vim mfshdd.cfg

/data    //设置chunkserver存放数据的目录

mfs分布式存储搭建应用

4.设置目录权限,启动mfschunkserver

[root@centos3 mfs]# mkdir /data              //创建/data

[root@centos3 mfs]# chown -R mfs:mfs /data          //设置权限

[root@centos3 mfs]# /usr/local/mfs/sbin/mfschunkserver start   //启动服务

mfs分布式存储搭建应用

四、搭建第二个chunkserver

1.[root@centos3 ~]# useradd mfs  -s /sbin/nologin

mfs分布式存储搭建应用

2.安装

[root@centos4 mfs-1.6.27]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos4 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存储搭建应用

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

mfs分布式存储搭建应用

[root@centos4 mfs-1.6.27]# make  && make install

mfs分布式存储搭建应用

3.复制配置文件

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

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

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

mfs分布式存储搭建应用

4.修改配置文件

[root@centos3 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.1  //master服务器的ip地址

mfs分布式存储搭建应用

[root@centos3 mfs]# vim mfshdd.cfg

/data    //存放数据的目录

mfs分布式存储搭建应用

5.设置目录权限,启动mfschunkserver

#mkdir   /data

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

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

mfs分布式存储搭建应用

五、客户端配置

1.安装fuse

fuse的功能简单概括一下,fuse提供一个文件操作的接口,然后fuse在这个接口上监听文件操作,并把这些对文件的操作传给我们自己的相关代码进行处理。 也就是说,fuse提供一个挂载点,然后他会在这个挂在点上进行监听,一旦有操作(新建、读取、修改)发生,他会把控制权交给我们的代码,这些操作的具体代码都在mfsmount模块中实现。

[root@centos1 fuse-2.9.2]# tar xf /mnt/fuse-2.9.2.tar.gz -C /usr/src

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

mfs分布式存储搭建应用

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

[root@centos1 fuse-2.9.2]# make &&make install

mfs分布式存储搭建应用

2.设置环境变量

[root@centos1 fuse-2.9.2]# vim /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH //环境变量PKG_CONFIG_PATH是用来设置.pc文件的搜索路径的

mfs分布式存储搭建应用

[root@centos1 fuse-2.9.2]# source /etc/profile     //刷新环境变量

mfs分布式存储搭建应用

3.安装mfs客户端

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

mfs分布式存储搭建应用

[root@centos1 mfs-1.6.27]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd  /usr/src/mfs-1.6.27/

mfs分布式存储搭建应用

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

mfs分布式存储搭建应用

[root@centos1 mfs-1.6.27]# make&&make install

mfs分布式存储搭建应用

4.挂载mfs文件系统

#mkdir /test     //创建挂载点

[root@centos1 test]# modprobe fuse//加载fuse模块到内核

mfs分布式存储搭建应用

[root@centos1 test]# /usr/local/mfs/bin/mfsmount /test -H 192.168.1.1//挂载mfs

mfs分布式存储搭建应用

查看挂载情况:

mfs分布式存储搭建应用

5.mfs常用操作

1.设置环境变量

[root@centos1 test]# vim /etc/profile

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

mfs分布式存储搭建应用

[root@centos1 test]# source /etc/profile

mfs分布式存储搭建应用

2.查看与设置文件复制的份数

[root@centos1 test]# mfsgetgoal -r /test

mfs分布式存储搭建应用

3.测试

[root@centos1 test]# dd if=/dev/zero of=/test/111.data  bs=200M count=1

mfs分布式存储搭建应用

查看写入结果:

mfs分布式存储搭建应用

[root@centos1 test]# mfssetgoal -r 2 /test 进行冗余测试

mfs分布式存储搭建应用

[root@centos1 test]# dd if=/dev/zero of=/test/222.data  bs=200M count=1

mfs分布式存储搭建应用

查看写入结果是否冗余:

mfs分布式存储搭建应用

六、mfs监控

1. [root@centos1 mfs]# /usr/local/mfs/sbin/mfscgiserv  //master服务器写入

mfs分布式存储搭建应用

2. 通过网站进行监控测试:

mfs分布式存储搭建应用

七、MFS集群维护

1.启动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配置文件中)。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:mfs分布式存储搭建应用-创新互联
文章URL:http://scjbc.cn/article/cocjsg.html

其他资讯