FastDFS同步机制(一)概述

10910阅读 0评论2020-06-05 zpf1218
分类:服务器与存储

  FastDFS 同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行。文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器,源服务器读取binlog文件,将文件内容解析后,按操作命令发送给目标服务器,有目标服务按命令进行操作。
  以文件上传为例,假设一个组内有3台storage server A、B和C,文件F上传到服务器B,由B将文件F同步到其余的两台服务器A和C。我们不妨把文件F上传到服务器B的操作为源头操作,在服务器B上的F文件为源头数据;文件F被同步到服务器A和C的操作为备份操作,在A和C上的F文件为备份数据。
  服务器处理文件在操作的时候会写binlog文件,格式: 时间戳,操作类型,文件名
示例如下:
1490251373    C M02/52/CB/CtAqWVjTbm2AIqTkAAACd_nIZ7M797.jpg
1490251373 表示时间戳
C   表示操作类型
M02/52/CB/CtAqWVjTbm2AIqTkAAACd_nIZ7M797.jpg  文件名
binlog文件在 $basepath/data/sync 目录下:
binlog.index : 记录了当前写binlog的索引id。
binlog.001: binglog文件,文件大小最大1G,超过1G,会重新写下个文件,同时更新binlog.index  文件中索引值。
192.168.0.1_23000.mark  :记录了同步信息,文件名由同步源IP_端口组成。
binlog_index=1   //binlog索引id
binlog_offset=528253386  //当前时间binlog 大小
need_sync_old=1  //是否需要同步老数据
sync_old_done=1  //是否同步完成
until_timestamp=1480305224 //
scan_row_count=27620682 //扫描记录数
sync_row_count=14182877   //同步记录数
  同步规则总结:
   1. 只在本组内的storage server之间进行同步;
    2. 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了,源数据和备份数据区  分是用binlog的操作类型来区分,操作类型是大写字母,表示源数据,小写字母表示备份数据;
   3. 当先新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
该新增服务器
上一篇:按时间范围执行每天的脚本
下一篇:FastDFS同步机制(一)增量同步流程