集群缩容
功能介绍
集群缩容是指当集群的计算资源或存储资源超出实际业务需求时,通过减少集群节点数量来释放多余资源、降低成本的操作。
应用场景
- 业务高峰期已过,集群节点资源长期闲置。
- 业务迁移或缩量后,集群计算/存储资源明显过剩。
- 需要优化集群成本,释放不必要的节点资源。
缩容对系统的影响
缩容是不可逆操作,缩容后节点将被移除、数据将重分布,请务必在操作前仔细阅读以下影响说明,并确保已做好数据备份:
- 缩容前,需关闭创建了临时表(Temporary Table)的客户端连接。因为在缩容过程中及缩容完成前,已创建的临时表将失效,对临时表的操作也会失败。缩容完成后新建的临时表不受影响。
- 执行缩容操作后,集群会执行一次自动快照,快照创建成功后才会进行集群缩容,若您不需要自动创建快照,可在缩容界面取消自动备份功能。
- 缩容前,需确保数据倾斜率不超过10%,但对于50G以上的大表,建议倾斜率不要超过20%~30%。脏页率无硬性指标要求,但过高会影响重分布效率。
- 正在缩容的集群禁用重启集群、扩容集群、创建快照、节点管理、智能运维、负载管理、参数修改、安全设置、日志服务、重置数据库管理员密码和删除集群的功能。
- 离线缩容过程中,应该停止所有业务或运行少量查询语句。表重分布期间会对表加共享锁(Share Lock),所有INSERT、UPDATE、DELETE操作和表DDL操作都会被长时间阻塞,可能会出现等锁超时情况。表重分布完成后方可正常访问。在重分布执行过程中,应当避免执行超过20分钟的查询(重分布执行时申请写锁的默认时间为20分钟)。否则可能导致重分布因等待加锁超时而失败。
- 在线缩容过程中,表重分布期间用户可以对该表执行INSERT、UPDATE、DELETE等操作,但重分布过程仍然会短时间阻塞用户的数据更新操作,影响语句执行性能。缩容重分布过程会消耗大量的CPU和I/O资源,对用户作业性能影响较大,建议在停止业务或业务轻载时执行缩容重分布。
- 在线缩容删除节点的瞬间,如果有DDL语句正在执行(例如创建Schema或Function并发执行),这些DDL可能因为DN不存在而报错,重新执行即可成功。
- 如果集群缩容失败,数据库不会在后台自动执行缩容回滚操作,此时数据库所有运维操作不可用,需要您在管理控制台页面上单击“缩容”重新执行数据库缩容操作。
- 在云原生9.0.2版本缩容场景下,新集群的Bucket(数据桶)数量不满足条件:每个DN分配的Bucket数量在[3, 20]之间时,系统会自动触发调整Bucket的缩容。Bucket数量决定了数据分布的粒度,缩容后需确保每个DN分配的Bucket数量在合理范围内。Bucket数量可以通过GUC参数table_buckets查看。
- Bucket是数据分布的最小逻辑单元,数据按Bucket划分后分布到各DN上。此Bucket缩容目前仅支持离线模式,使用方式与现有缩容相同,触发修改Bucket的缩容过程为系统自动判断和执行。
- 触发过程集群会重启,关闭所有连接,重启会花费数分钟。
- 重启完毕后,数据库可读但不可写,直到数据重分布结束。
约束与限制
- 缩容按需计费集群仅8.1.1.300及以上集群版本支持,包年/包月集群仅8.2.1及以上集群版本支持。缩容的节点默认是按节点数计费。
- 集群状态需为“可用”状态,不支持“只读”状态,且确保集群没有进行重分布操作。
- 存算一体集群缩容时只支持缩容与当前集群相同的存储规格的节点。
- 集群缩容时需确保节点数量大于3,基础节点不支持缩容操作。
- 集群配置文件已生成,且配置信息与当前集群状态一致。
- 缩容前用户需要确保default_storage_nodegroup参数值为installation,该参数指定当前的默认建表所在的节点组,目前只适用普通表。值为installation时表示默认建表在安装的节点组上。
- 集群按照环(Ring)的方式部署,缩容的最小单元是一个环,比如4个或5个主机组成一个环,这些主机上的DN主节点、备节点和从节点都部署在这个环里。如果当前集群只有一个环时,不支持缩容操作,缩容按钮置灰不可用。
- 待缩容的主机不能包含ETCD组件、GTM组件、CM Server组件。
- 待缩容的节点不能包含CN节点,如果节点上部署了CN,需先执行删除CN操作后再缩容。
- 缩容不支持回滚,但支持重入。若缩容数据重分布失败,不影响已有业务,您可选择合适的时间尽快完成重分布,否则会导致数据长期分布不均匀。
- 重分布前,需要保证对应数据库下的data_redis为重分布预留Schema,不允许用户操作该Schema及其内部表。因为在重分布过程中会使用到data_redis,重分布结束后会删除该Schema,如果其中存在用户表可能导致数据误删。
- 缩容过程不支持gs_cgroup操作(资源组管理工具)。
- 缩容后保留的节点必须有足够的存储空间存放整个集群的数据,否则缩容无法正常进行,执行缩容前需对集群剩余容量进行检查,满足以下条件后方可进行缩容。
- 所有节点已使用物理磁盘空间均小于80%。
- 所有用户和角色的使用量均小于配额的80%。
- 总数据量缩容后的空间预估要小于80%。
- 所有剩余可用空间均是最大单表大小的1.5倍以上。
- 缩容过程中系统将临时关闭“自动剔除故障CN”功能,缩容完成后系统自动重新开启该功能。
操作步骤
- 登录DWS管理控制台。
- 在左侧导航栏选择“集群 > 集群列表”,默认显示用户所有的集群列表。
- 在集群列表中,在指定集群所在行的“操作”列,选择“更多 > 节点变更 > 缩容”。
- 弹出右边窗口显示缩容页面,页面将显示当前资源详情、缩容配置和配置确认模块。
在缩容开始前如果集群满足巡检条件,页面会显示巡检模块,单击“开始巡检”先完成一次巡检(如果需要终止巡检任务可单击“终止任务”),巡检中会显示巡检进度,用户需保证巡检通过,通过后可单击“下一步”进行变更操作,详情请参见查看巡检。
- 用户可参考当前资源详情模块信息在缩容配置栏配置缩容相关信息。
表1 缩容配置参数说明 参数名称
参数描述
计算组/逻辑集群
集群为逻辑集群/计算组时显示该参数,选择缩容的逻辑集群/计算组。
缩容节点数
下拉框选择需要缩容的节点数。
缩容模式
支持“在线模式”和“离线模式”,“在线缩容”默认开启。在线缩容过程中,支持数据增删改查及部分DDL语法,其余不支持的语法将会报错,缩容期间可能造成部分业务短暂中断。
重分布并发数
支持设置重分布并发配置,可配置并发数在1~200之间,默认值为4。
- 确认变更后配置无误后,勾选“我已知晓缩容操作可能存在的风险,同意进行缩容”。
- 单击“提交”,返回集群列表,集群显示“缩容中”,请耐心等待一段时间。
- (可选)如果缩容失败,用户可选择“更多 > 节点变更 > 重试缩容”,弹出窗口确认集群是否按照之前下发的缩容策略重试,确认无误后单击“是”。
- (包周期计费模式)集群在缩容结束后,系统会提示删除空闲节点,用户可单击“确认”完成空闲节点删除。按需计费模式的集群缩容完成后系统将在后台自动删除节点,包周期计费模式的集群用户需手动删除节点。
- (包周期计费模式)页面跳转至删除节点页面,查看资源信息并单击“提交”。
- (包周期计费模式)跳转至资源确认页面,确认退款信息,无误后,单击“提交”。