-
启动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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- geo-replication 提供多种部署方案 Geo-replication over LAN Geo-rep...
- https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...