1.背景
当前公司绝大部分服务都部署在aws上,少量新服务部署在阿里云上,由于单云平台可用性风险。公司希望通过部署双云平台实现容灾,同时在aws和阿里云部署相同服务,一个云平台有问题部署到另外一个平台
2.迁移阿里云问题
2.1 阿里云
问题:es服务可以启动,但是连接集群内其他节点报错,es集群不可用
es版本:elasticsearch 5.2
jdk版本:jdk 1.8
os:centos 6.8 linux kernel:2.6.32-642.13.1.el6.x86_64
集群主机列表:l-uc-es-server1.mgt.prod.ali.dm l-uc-es-server2.mgt.prod.ali.dm l-uc-es-server3.mgt.prod.ali.dm
报错如下:
[followup-es03] failed to send join request to master [{followup-es01}{_Yy36H0TSDOGZ9sxRDKZLA}{C8S0Lr48Seifw2U1F-vHQQ}{10.21.14.59}{10.21.14.59:9300}], reason [RemoteTransportException[[followup-es01][10.21.14.59:9300][internal:discovery/zen/join]]; nested: ConnectTransportException[[followup-es03][10.21.14.60:9300] connect_timeout[30s]]; nested: IOException[连接超时: 10.21.14.60/10.21.14.60:9300]; ]
初步分析原因:linux内核版本不一致引起的,elasticsearch 5.2默认使用netty 4,netty 4依赖底层操作系统(内核)相关特性,低版本内核不支持某些特性引起的,其他人也遇到类似情况:https://github.com/elastic/elasticsearch/issues/24696
2.2 亚马逊
es版本:elasticsearch 5.2
jdk版本:jdk 1.8
os:定制linux linux kernel:3.10.0-514.21.1.el7.x86_64
状态:正常 启动无任何错误