替换Elasticsearch集群指定节点
当集群中的节点发生故障时,可以执行“替换指定节点”任务。通过删除故障节点,重建一个一样的新节点,实现节点替换。替换指定节点过程中会将替换节点的数据提前转移,不会造成数据丢失。
前提条件
集群处于“可用”状态,且无正在进行的任务。
在替换指定节点前,建议备份所有关键数据,以免造成数据丢失。
约束限制
- 一次只能选择一个节点进行替换。
- 节点替换过程会按照原节点的ID、IP地址、规格、AZ等信息重建节点。
- 节点替换过程中不会保留手动操作。例如被替换的节点手动加过回程路由,那么节点替换完成后,需要重新添加回程路由。
- 当替换的是数据节点或冷数据节点时,需要确认集群或节点是否满足以下条件。
- 替换数据节点或冷数据节点的过程中,会先将被替换节点的数据迁移到其他数据节点,因此集群中每个索引的副本数和主分片数之和的最大值要小于集群的数据节点数量和冷数据节点数量之和。替换过程耗时跟数据迁移到其他节点的耗时强相关。
- 版本号在7.6.2以前的集群,不能有close的索引,否则不支持替换数据节点或冷数据节点。
- 被替换的数据节点或冷数据节点所在的AZ需要有两个及以上的数据节点或冷数据节点。
- 当替换的数据节点或冷数据节点所在集群不存在Master节点时,则集群中可用的数据节点数量和冷数据节点数量之和要大于等于3。
- 当替换的是Master节点或Client节点时,则不受以上四条约束。
- 当替换的是故障节点时,不管什么节点类型都不受以上四条约束。因为故障节点不包含在“_cat/nodes”中。
替换指定节点
- 登录云搜索服务管理控制台。
- 在左侧菜单栏,选择对应的集群类型,进入集群管理页面。
- 选择目标集群,单击操作列的“更多>形态变更”进入更改集群规格页面。
- 选择“替换指定节点”页签。
- 在替换指定节点页面,设置参数。
表1 替换指定节点 参数
说明
配置委托
删除节点会释放网卡,需要VPC的操作权限。选择IAM委托,授权当前账号访问和使用VPC的权限。
- 仅对接了IAM新平面时才显示该参数。
- 当首次配置委托时,可以单击“自动创建委托”新建委托“css-upgrade-agency”直接使用。
- 当已有自动创建的委托时,可以单击“委托一键授权”,删除委托中VPC Administrator系统角色和VPC FullAccess系统策略的权限,新增如下自定义策略授权委托到最小化权限。
"vpc:subnets:get", "vpc:ports:*"
- “自动创建委托”和“委托一键授权”需要如下最小权限。
"iam:agencies:listAgencies", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:createAgency", "iam:permissions:listRolesForAgency", "iam:permissions:grantRoleToAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:revokeRoleFromAgency", "iam:roles:createRole"
- 使用委托需要如下最小权限。
"iam:agencies:listAgencies", "iam:agencies:getAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:listRolesForAgency"
节点类型
展开本次要变更的节点类型,此处会显示当前节点类型拥有的节点,勾选要替换的节点。
- 单击“提交申请”。在数据迁移弹窗中确认是否进行数据迁移(建议勾选“进行数据迁移”避免数据丢失),单击“确认”提交申请。
数据迁移过程中,系统会把待替换节点中的所有数据分片移动到剩余节点,待数据迁移完成后再进行节点替换操作。当待替换节点上的数据在剩余节点存在副本时,可跳过数据迁移,缩短集群变更时间,减少数据迁移带来的负载压力。
- 单击“返回集群列表”跳转到集群管理页面。集群的“任务状态”列中显示为“节点替换中”,表示集群正在替换节点。当集群状态变为“可用”,则表示节点替换成功。