美文网首页
geo-replication

geo-replication

作者: zhllsr | 来源:发表于2016-05-04 18:03 被阅读260次
    • 启动gsync
      glusterd_start_gsync

      • 检测gsync运行状态:gsync_status
      • 添加命令参数:runner_add_args
      • 调用shell脚本来运行python代码进行异地备份:runner_start:execvp (runner->argv[0], runner->argv);
    • 资源启动

      • 检查链接:local.can_connect_to(remote)
      • 创建链接: connect---->inhibit
      • 创建临时目录: margv = self.make_mount_argv(*a)
      • 启动agent---->创建线程:repce.service_loop()
      • 启动monitor
    • 核心函数crawl,进行数据同步

      • 唤醒机制:changlog或者synchronizes stime(现在使用的方式是changlog)
      • 同步核心逻辑在Xcrawl中

      dem = self.master.server.entries(path) //获取volume根目录的entries,也就是所有的文件
      通过比较该文件的xtime与slave的xtime,判断是否进行同步
      如果是dir文件:递归调用

    • 异地同步机制

      • 主要是三个函数在不停的循环:crawlwrap crawl process
      • crawlwrap 会循环查询,现在truns 与 上次truns的差值

      如果是0,continue;
      否则,就会唤醒crawl进行数据同步
      - crawl 上面已经讲过
      - process会循环查看changlog,看是否有文件操作,如果有就对truns进行 ++操作(还有一些其他操作,不影响主流程)

    相关文章

      网友评论

          本文标题:geo-replication

          本文链接:https://www.haomeiwen.com/subject/koprrttx.html