免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6149 | 回复: 4

[FastDFS] 咨询关于FastDFS中Tracker角色是如何选举的 [复制链接]

论坛徽章:
0
发表于 2014-03-26 01:35 |显示全部楼层
本帖最后由 ruying 于 2014-03-26 10:57 编辑

鱼大及各位。
我当前同时启动了两个tracker,分别是192.168.118.3和 118.4 ,他们各自服务器上也负担着storaged节点的工作。
我在启动tracker服务器的时候在两个trackerd.log上都看到了如下内容:
第一个tracker中开始显示错误,然后提示它服从另一个IP为leader节点
  1. [2014-03-26 01:00:02] ERROR - file: tracker_proto.c, line: 37, server: 192.168.118.4:22122, recv data fail, errno: 107, error info: Transport endpoint is not connected
  2. [2014-03-26 01:00:03] ERROR - file: tracker_proto.c, line: 48, server: 192.168.118.4:22122, response status 95 != 0
  3. [2014-03-26 01:00:04] ERROR - file: tracker_proto.c, line: 48, server: 192.168.118.4:22122, response status 95 != 0
  4. [2014-03-26 01:00:05] INFO - file: tracker_relationship.c, line: 383, selecting leader...
  5. [2014-03-26 01:00:08] INFO - file: tracker_service.c, line: 955, the tracker leader is 192.168.118.4:22122
复制代码
第二个tracker的日志中显示他成为leader节点;
  1. [2014-03-26 01:00:02] ERROR - file: tracker_service.c, line: 1575, cmd=65, client ip: 192.168.118.3, i am not the leader!
  2. [2014-03-26 01:00:03] ERROR - file: tracker_service.c, line: 1575, cmd=65, client ip: 192.168.118.3, i am not the leader!
  3. [2014-03-26 01:00:08] INFO - file: tracker_relationship.c, line: 383, selecting leader...
  4. [2014-03-26 01:00:08] INFO - file: tracker_relationship.c, line: 401, I am the new tracker leader 192.168.118.4:22122
复制代码
通过fdfs_monitor看到的结果,确实活动的tracker节点为192.168.118.4 ,屏显细节就不贴了。

我把老的leader节点关掉,则192.168.118.3顺利成为新的leader节点,哪怕192.168.118.4重新启动了tracker,也不会发生角色迁移。

原先我一直以为tracker节点就像DNS一样是一个很轻量级、很简单的构造,我认为他的所有信息都是来自storaged节点的主动推送,但今天看到leader角色选举,我觉得不是那么回事。
首先,我用搜索功能,搜索了诸如“FastDFS tracker 角色”“ i am not the leader!”这类关键字,但没搜到的任何有用信息;我又仔细看了很久的trackerd.conf ,也没看到有类似选举权重一类的设置。烦请各位高手给我介绍一下FastDFS 角色选举的问题行吗?

在我的认知范围里,如果有角色选举,则必然要考虑如下因素:

1,选举角色如何相互发现对方的?我没看到tracker.conf中有对其他角色的任何描述。请问两个角色相互发现,是靠发局域网广播,还是storage节点的主动推送信息?

2,选举角色的权重值怎么定义的?以上文为例,说为什么选192.168.118.4为leader节点?

3,备用节点的意义何在?我看来,所有的信息都是storage节点自己储存,并主动推送给tracker的,备用节点的数据是来自storage还是 tracker——leader?

4,如果集群中默认只有192.168.118.3一个tracker,则所有客户端都配置了118.3到自己的配置文件中,现在我新增了一个118.4的节点,且选举为leader节点了,当那些老客户端继续连接118.3的时候,备用节点会怎么做?
    4-1,会处理客户的任何读写请求,并将结果反馈给leader节点,这个时候leader节点最大的作用是将这个变更扩散到其他的备用节点。
    4-2,会处理客户的读请求,也就是说所有更改都必须在leader节点上进行,并由leader节点同步给各个备用节点。
    4-3,备用节点就是名副其实的备用节点,不接收任何读写请求。

5,还是类似第四个问题,但我现在关注的是客户端,就是说客户端配置了配了192.168.118.3和118.4两个tracker,平时一直在连接118.4,突然118.4死掉了,客户怎么知道自己应该去向118.3重连?

6,当老的tracker leader节点死亡以后,在新的leader选举出来之前,是不是无法接收客户响应请求了?

7,我本来想在完成FDFS配置后,把tracker设置为监听所有端口请求,但客户端去连一个VIP,现在后端leader server 总是变,我没办法设置VIP,请问大家有什么好方法?

烦请鱼大和各位大神抽空给我介绍一下leader协商机制好吗?如果有现成的文档,仅仅是我自己没搜到答案,烦请各位朋友给我贴一下连接地址,我确实没搜到资料。
我并不懂开发,以上我的疑问,我自己都能组织测试测出来结果,但并非是我懒不愿意测试,而是觉得这种设计理念性的东西,懂行的人一字万金,比我瞎揣摩要精确的多。

论坛徽章:
1
寅虎
日期:2014-03-17 10:18:07
发表于 2014-03-26 08:27 |显示全部楼层
同关注……

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
发表于 2014-03-26 10:57 |显示全部楼层
tracker server之间是对等的。客户端可以访问任意一台tracker server。
引入tracker leader是为了解决如下问题:
  1. 新加入一台storage server时,由leader指定向其同步的源storage server
  2. 使用了合并存储特性时,leader为每个group选举和维护唯一的一个trunk server
以上分配如果不由leader来完成的话,可能会出现混乱情况,尤其是第2条。

论坛徽章:
0
发表于 2014-03-26 11:00 |显示全部楼层
非常感谢鱼大的回复,这样的话工作确实是轻量级的,Leader角色是否选举、怎么选举、客户端感受都并不太重要。
回复 3# happy_fish100


   

论坛徽章:
0
发表于 2014-03-26 18:13 |显示全部楼层
回复 1# ruying
还是类似第四个问题,但我现在关注的是客户端,就是说客户端配置了配了192.168.118.3和118.4两个tracker,平时一直在连接118.4,突然118.4死掉了,客户怎么知道自己应该去向118.3重连?

关于这个问题的一点看法。下午大概的读了下fdfs_upload_file.c, 感觉客户端和tracker之间应该是个短链接,只有任务到来的时候才会尝试选取一个tracker,然后由tracker决定这个client的storage是谁。或者也可以自己实现client和tracker之间的常链接 ,不过这样的话就需要自己做心跳,在tracker断掉后,client主动搜寻下一个可用的tracker.



   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP