文章目录
一、什么是MFS(分布式文件系统)?
MooseFS是一种分布式文件系统,它把数据分散存放在多个物理服务器上,前面只放置一台负责“调度”元数据服务器,最终呈现给用户的则是一个统一的资源。相对于集中式文件系统来说,分布式系统拥有更好的扩展性、稳定性、数据的安全性。
二、MFS相关原理
分布式原理
- 分布式文件系统(distributed file system)是指文件系统管理的物质存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单说就是把一些分布在局域网内各个计算机上的共享文件夹,集合到一个虚拟共享文件夹内,客户端访问只需要打开这个虚拟共享文件夹即可。
- 分布式文件系统的优点:集中访问、简化操作、数据容灾、提高了文件的存储性能。
MFS原理
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一整合的资源。
三、架构及实现原理
- 元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
- 元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs 当Master服务器数据丢失或者损坏时,可以从日志服务器中取得进行恢复。
- 数据存储服务器(Chunk server):真正存储数据的服务器。将文件分块保存,并相互进行复制。
- 客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
四、MFS处理数据的过程
MFS读取数据的处理过程
- 客户端向元数据服务器发出读请求。
- 元数据服务器把所需数据存放的位置(Chunk server的IP地址和Chunk编号)告知客户端。
- 客户端向已知的Chunk server请求发送数据。
- Chunk server向客户端发送数据。
MFS写入数据的处理过程
- 客户端向元数据服务器发送写入请求。
- 元数据服务器与Chunk server进行交互,但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk server告知元数据服务器操作成功。
- 元数据服务器告知客户端,可以在哪个Chunk server的哪些Chunks写入数据。
- 客户端向指定的Chunk server写入数据。
- 该Chunk server与其他Chunk server进行数据同步,同步成功后Chunk server告知客户端数据写入成功。
- 客户端告知元数据服务器本次写入完毕。
MFS删除数据的处理过程
- 客户端首先向Master发送删除信息。
- Master定为到相应元数据信息进行删除,并将Chunk server上块的删除操作加入队列异步清理。
- 告知客户端删除成功。
MFS修改数据的处理过程
- 客户端首先向Master发送操作信息。
- Master申请新的块给.SWP文件。
- 客户端关闭文件后,会向Master发送关闭信息。
- Mater会检测内容是否有更新,若有,则申请新的块存放更改后的文件,删除原有块和.swp文件块。
- 若无,则直接删除.swp文件块。
五、MFS默认端口
端口 | 作用 |
---|---|
9419 | metalogger 监听的端口地址(默认是9419),和源数据日志结合。定期和master端同步数据 |
9420 | 用于chunkserver 连接的端口地址(默认是9420),通信节点 |
9421 | 用于客户端对外连接的端口地址(默认是9421) |
9422 | MFS chunck 和MFS Client端通信端口 |
9425 | MFS master web界面监听端口,查看整体运行状态 |