实时警报通知:微信告警通知的重要性解析
729
2023-02-13
MogileFS的使用 – 浅谈分布式文件系统MogileFS(3)
MogileFS的使用
文件下载
文件是存在与domain里的,在下载的时候要指定domain参数
文件上传
1 | mogupload--trackers=cluster-master01:7001--domain=abc--class=test01.abc--key="speach_of_dependence"--file=./speach_of_dependence.words |
文件具备class属性,所以在上传的时候要指定class参数,和domain参数
文件查看
1 | moglistkeys--trackers=cluster-master01:7001--domain=abc |
存储设备查看
1 | mogadm--trackers=cluster-master01:7001device list |
节点设备查看
1 | mogadm--trackers=cluster-master01:7001host list |
domain查看
1 | mogadm--trackers=cluster-master01:7001domain list |
class查看
1 | mogadm--trackers=cluster-master01:7001classlist |
所有的请求都是发送到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
Mogdbsetup
本程序在安装database节点时初始化meta database
程序代码分析
调用模块
Mogdbsetup程序调用了MogileFS::Store中的setup_database subroutine初始化了数据库,通过SCHEMA_VERSION来判断当前操作是在安装还是升级中。
MogileFSd
Tracker节点进程,完成整个cluster的任务分派
程序代码分析
调用模块
1 2 3 4 5 6 7 8 9 10 11 12 | useMogileFS::Server; #!/usr/bin/perl ...... # Rename binary in process list to make init scripts saner $0="MogileFSd"; my$s=MogileFS::Server->server; $s->run; 1; |
程序简单了调用了MogileFS::Server中的run subroutine。
整个MogileFS是一个event-based的cluster。
Mogstored
Storage node节点进程,负责文件的真实操作
程序代码分析
调用模块
发表评论
暂时没有评论,来抢沙发吧~