MogileFS的使用 – 浅谈分布式文件系统MogileFS(3)

MogileFS的使用

文件下载

文件是存在与domain里的,在下载的时候要指定domain参数

文件上传

文件具备class属性,所以在上传的时候要指定class参数,和domain参数

文件查看

存储设备查看

节点设备查看

domain查看

 class查看

所有的请求都是发送到tracker节点。

Inner MogileFS

Key-file

MogileFS不维护原来的文件名,所谓的file是storage node收到的bit流。在MogileFS内部以在domain中可见的key来标记文件。

文件存放

MogileFS对每个文件分配fid,文件以.fid为后缀存放,系统维护fid到path的映射关系。fid按照(\d)(\d{3})(\d{3})(\d{3})分割成四部分后,文件放置于目录/devid/$1/$2/$3下,对于是哪个devid则由master提供给客户端决定。

文件冗余

通过class的dvcont属性来保证文件在系统内的冗余

look into MogileFS

既然MogileFS是用Perl写成的,我们就来看看程序相关的源代码吧

Mogdbsetup

本程序在安装database节点时初始化meta database

程序代码分析

调用模块

Mogdbsetup程序调用了MogileFS::Store中的setup_database subroutine初始化了数据库,通过SCHEMA_VERSION来判断当前操作是在安装还是升级中。

MogileFSd

Tracker节点进程,完成整个cluster的任务分派

程序代码分析

调用模块

程序简单了调用了MogileFS::Server中的run subroutine。

整个MogileFS是一个event-based的cluster。

Mogstored

Storage node节点进程,负责文件的真实操作

程序代码分析

调用模块

 

请看下一篇:浅谈分布式文件系统MogileFS(4)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: