目录
一、分布式文件系统
二、MooseFS简介
三、MooseFS的体系结构
四、Moosemfs系统的搭建与部署
1、master-server的部署
2、chunk server的部署
3、访问web界面
4、在master上下载lsof
5、client的部署
分布式文件系统是指文件系统管理的物理存储资源,不一定在本地节点上,而是通过网络与节点相连。
就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。
对于用户来说,要访问这些共享文件夹时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件是分散在各个计算机上的。
分布式文件系统的好处是集中访问、简化操作、数据容灾,以及提高文件的存取性能。
MooseFS 是一个高容错性的分布式文件系统,它能够将资源分布存储于几台不同的物理介质,对外只提供给用户一个访问接口。对它的操作与其它文件系统完全一样:
| 分层文件结构(目录树结构);
l 存储POSIX 文件属性(权限、最后访问、修改时间);
l 支持特殊的文件(块文件夹、字符文件及管道和socket )
l 软链接(文件名指向目标文件)及硬链接(不同的文件名指向同一块数据);
l 仅限于基于IP 地址或密码来访问文件系统。
MoosFS 具有以下特征:
l 高可靠性:数据可以被存储于几个不同的地方;
l 可扩展性:可以动态的添加计算机或磁盘来增加系统的容量产;
l 高可控性:系统能够设置删除文件的时间间隔;
l 可追溯性:能够根据文件的不同操作(写入/ 访问)生成文件快照。
MooseFS 体系结构包含以下四个模块:
l 管理服务器( master server ):它用来管理整个文件系统,用来存储每个文件的元数据(包括文件大小、属性及存储位置,同时也包括的一些非规则性的文件,如目录、 socket 、管道及设备);
l 数据服务器( chunk servers ):用于存储文件的服务器,同时它们之间可以同步数据;
l 元数据备份服务器( metalogger servers ):用于存储元数据变化日志并周期性的下载元数据文件;同时也可以替代管理服务器暂不能工作的情况;
l 客户端:用于访问 MooseFS 中的文件,采用 mfsmount 来与管理服务器进行交互(接收或修改元数据文件)及与数据服务器交换真正的数据。
元数据存储在管理服务器的内存及磁盘中(周期性的更新二进制文件及增长的日志文件)。同时二进制文件及日志文件会被同步到元数据服务器。
文件数据被切分成最大不超过 64M 的不同的片段,每个片段会存储于备选的数据服务器中。可以通过将数据配置在多个不同的数据服务器来保证高可靠性,可以通过 mfssetgoal 命令来设定最终要将数据存储在几台服务器上。
客户端向元数据服务器发出读请求
元数据服务器把数据存放的位置
(Chunk Server的IP地址和Chunk编号)告知客户端
(一份大的数据会被分块,存储在不同的数据服务器上)
客户端向已知的Chunk Server请求发送数据
Chunk Server向客户端发送数据
客户端向元数据服务器发送写入请求
元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行交互),
但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Server告知元数据服务器操作成功。
元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据
(副本数是由master来维护的)
客户端向指定的Chunk Server写入数据
该Chunk Server与按照要求和其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功
客户端告知元数据服务器本次写入完毕
原始的读/写速度很明显是主要取决于所使用的硬盘的性能、网络的容量和拓扑结构,使用的硬
盘和网络的吞吐量越好,整个系统的性能也就会越好。
1、在浏览器上搜索moosemfs.com
2、进入网页后点击download进行下载
3、根据自己主机的配置,选择需要安装的yum源
首先要保证虚拟机可以上网,在真机中执行命令
iptables -t nat -I POSTROUTING -s 172.25.254.0/24 -j MASQUERADE
4、curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
如果不需要gpgcheck,可以在文件中将它置0
5、安装master端的各种组件
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y
6、编辑/etc/hosts文件,给master添加解析
172.25.254.1 vm1 mfsmaster
7、安装完,可以看到MFS的配置文件 mfsmaster.cfg 和 mfsexports.cfg
mfsexports.cfg:被挂接目录及权限设置
mfsmaster.cfg:主配置文件,凡是用#注释掉的变量均使用其默认值。
8、开启服务
systemctl enable --now moosefs-master 启动MASTER
systemctl enable --now moosefs-cgiserv 启动WEBUI监控服务
9、查看端口 netstat -antlp
9419:metalogger监听的端口地址,和元数据服务器通信的,当master宕机,可以通过它的日志,接管master的服务
9420:用于chunkserver连接的端口地址
9421:用于客户端挂接连接的端口地址
9425:web界面监控各个分布节点的端口
1、将maste端的仓库文件复制到chunk1、chunk2中,即虚拟机vm2和vm3
2、安装软件
yum install moosefs-chunkserver -y
3、安装后两个chunk节点都会生成mfs用户,并且具有相同的id
[root@vm2 mnt]# id mfs
uid=998(mfs) gid=996(mfs) groups=996(mfs)
4、在/etc/hosts文件中,给mfsmaster添加解析
5、在两个chunk节点分别进行如下操作:编辑空间配置文件/etc/mfs/mfshdd.cfg,写入mfs的分区/mnt/chunk1 或/mnt/chunk2
mfshdd.cfg:空间配置文件
/mnt/chunk1或/mnt/chunk2是一个给mfs 的分区,但在本机上是一个独立的目录,最好是一个单独的硬盘或者一个raid 卷,最低要求是一个分区。
6、创建目录 mkdir /mnt/chunk1 或 mkdir /mnt/chunk2
7、设置权限 chown -R mfs.mfs /mnt/chunk1 或 chown -R mfs.mfs /mnt/chunk2
8、开启服务:systemctl enable --now moosefs-chunkserver
9、查看端口: netstat -antlp
lsof:列出系统当前打开的文件,在linux中任何事物都以文件的形式存在
yum install lsof -y
1、将maste端的仓库文件复制到client中,即我的真机
2、安装软件
yum install moosefs-client -y
3、在client的/etc/hosts文件中为master添加解析
4、建立空目录 mkdir /mnt/mfs
5、编写 /etc/mfs/mfsmount.cfg文件
添加一行内容: /mnt/mfs
6、执行mfsmount命令
mfsmount
# df -h
...
mfsmaster:9421
2729728
0 2729728 0% /mnt/mfs
7、cd /mnt/mfs
8、mkdir dir1 mkdir dir2
9、mfssetgoal -r 2 dir2/
设置在 dir2 中文件存储份数为两个,默认是一个
拷贝同一个文件到两个目录
cp /etc/passwd dir1
cp /etc/passwd dir2
查看文件信息
mfsfileinfo dir1/passwd
mfsfileinfo dir2/passwd
当文件很大时,文件会被分块存储在每一个chunk上,每块文件默认为50M