文章目录
1. 简介
MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。目的是提高单体文件系统的上限,解决性能和容量的瓶颈。
特点:
- 高可靠(数据的多个拷贝被存储在不同的计算机上)
- 通过附加新的计算机或者硬盘可以实现容量的动态扩展
- 删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站)
- 不受访问和写入影响的文件连贯快照
原理:
读:客户端访问master节点,master节点告知client从哪个从节点上读取,然后客户端直接访问chunk节点
写:新建时,客户端向master节点发出写的请求,master向chunk节点取得分配信息,再告知客户端,客户端向chunk一个节点写入,并根据副本数自动复制。一个chunk时64M,多了会切分传送,如在dir2文件内新建一个100M的文件:dd if=/dev/zero of=bigfile bs=1M count=100
,查看时该文件被分成了两个文件进行存储:mfsfileinfo bigfile
端口:
- 9419…9421 - Master Server
- 9422 - Chunk Servers
- 9425 - CGI Server
对于master节点最重要的大小需求时内存,由于整个系统的缓存用来提速。每100w个目标(文件,目录,管道,连接等)大概需要300-350M内存;对于master端CPU的消耗主要是用户读写操作;元数据服务器对于硬件的需求大于等于master
2. 准备安装
官网地址:moosefs
首先准备三个虚拟机,分别给2048M内存,其中一个作为主服务器,其他的作为块服务器;主服务器只负责存储元数据,元数据文件不大,大的数据被分为很多个块,主要是文件的数量及具体的位置;真正的数据存在块服务器里;
添加key:curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
在3个节点上均配置yum仓库:curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
对于主节点:yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
对于副节点:yum install -y moosefs-chunkserver
2.1 主节点
主配置文件:
需要在每个节点上都做master端的解析(重要):
启动主节点服务:systemctl start moosefs-master.service
以及用于提供web的cgi接口:systemctl start moosefs-cgiserv.service
2.2 从节点
- 从节点提供块服务器和存储
- 默认是在根目录消耗内存,但根目录耗尽后节点无法继续使用;所以一般是将数据挂载在单独的硬盘上;
- 为从节点(server6,7)添加一个虚拟磁盘
通过fdisk -l
可看到新加的硬盘:
进行分区,使用所有空间:
格式化硬盘mkfs.xfs /dev/vdb1
:
创建一个数据挂载目录:mkdir /mnt/chunk1
挂载到一个数据目录ÿ