GBase 8a集群根据IP(ipv4)计算nodeid方法

本方法只限于ipv4地址的计算,而且对于862Build43这个支持ipv6的版本,其内部全部使用ipv6地址栈,即使你配置的是ipv4地址,也是用的ipv6地址栈。类似::ffff:10.0.2.107 这样的。 这种情况下,无需重新计算nodeid了。
另外,如果你使用V9版本,配置了ipv6地址的,也不需要重新计算nodeid, 只需要将配置文件里的老的IPV6 IP更换为新的IPV6 IP即可。

1、原理

节点nodeid就是节点IP地址按照小头序排列转换成的整形数字,例如“192.168.103.70”对应的nodeid就是0x4667A8C0(0x标识十六机制数) 其中 46对应“70”,67对应“103”,A8对应“168”,C0对应“192”。  0x4667A8C0转换为10进制数就是1181198528了。配置文件中还有一些nodeid值为负值-3113768768,该值为0xFFFFFFFF4667A8C0(0x标识十六机制数)换算得到,或者1181198528-2^32=1181198528-4294967296=-3113768768得到

2、使用电脑的计算器计算nodeid

2.1 将IP地址转化为16进制格式
比如10.0.2.107 转为 0A 00 02 6B

2.2 将其顺序反转
6B 02 00 0A

2.3 输入到计算器的程序员16进制里

2.4 其中DEC 十进制部分,就是新的nodeid

1795293194