首页 > 代码库 > mfs详解及数据备份方式
mfs详解及数据备份方式
mfs分布式文件系统
MFS原理:
数据分散在多个物理服务器上,呈现给用户统一的资源
mfs角色
1:master (master记录数据存放信息,类似于lvs,只是lvs仅仅依靠算法分发请求而master是根据内存中记录的metadata信息来分发请求的)
2:metalogger(把master中记录的数据存放信息实时同步到热备服务器(文件类型chagelog_ml.*.mfs)如果master挂了可以直接启用metalogger)
3:chunkserver(存储数据的服务器,数据存放方式为二进制)
4:client_server (通过fuse挂载到master上,通过master来请求chunkserver的数据)
mfs读取数据的处理过程:
客户端向元数据发出读请求。
元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Churk编号)告知客户端。
客户端向已知的Churk Server请求发送数据。
Churk Server向客户端发送数据。
mfs写入数据的处理过程。
客户端向元数据服务器发送写入请求。
元数据服务器与Churk Server进行交互(只有当所需的分块Churks存在的时候才进行这个交互),但元数据服务器只在某些服务器创建新的分块Churks,创建成功后由ChurkServers告知元数据服务器操作成功。
元数据服务器告知客户端,可以在哪个Churk Server的那些Churks写入数据。
客户端向指定的Churk Server写入数据。
该Churk Server与其他Churk Server进行数据同步,同步成功后Churk Server告知客户端数据写入成功。
客户端告知元数据服务器本次写入完毕。
mfs故障模拟以数据恢复方式
第一种:利用rsync+intofy实时备份master的etc和var文件下的所有数据到备服务器
第二种:利用matelogger来恢复,将matelogger的var目录下的数据上传到master服务器上
用/usr/local/mfs/sbin/mfsmetarestore -m metadata_ml.mfs.back* -o metadata.mfs changelog_ml*来恢复数据
第三种:将matelogger启用代替为master
将matelogger停掉,用/usr/local/mfs/sbin/mfsmetarestore -m metadata_ml.mfs.back* -o metadata.mfs changelog_ml*来恢复数据
mfs详解及数据备份方式