ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

高性能计算集群部署与运维:从规划到排障

高性能计算集群部署与运维:从规划到排障 1. 开工前的总体规划集群到底要多大多强1.1 先算负载再买机器别拍脑袋定规模做得越久越发现高性能计算集群部署这件事七成的问题出在规划阶段而不是安装阶段。很多人上来就问“装个Hadoop集群要几台机器”“Kafka三节点够不够”其实这个问题的正确答案取决于你要跑的任务是什么类型、数据量多大、并发多高。我习惯先做一次负载估算。比如你要部署一套用于离线数仓的Hadoop集群那么先统计每天新增数据量、保留周期、中间结果放大系数把这些乘起来再乘1.5到2倍的冗余就是存储侧的需求。计算侧就看你的任务类型如果跑的是Spark或者Flink这类计算密集任务CPU核数和内存比例大概控制在1:4到1:8之间比较合适如果是AI训练或者推理场景那就要重点看GPU型号和显存带宽CPU反而不是最关键的瓶颈。量化一下假设你有100TB原始数据压缩比按3:1算HDFS三副本存储实际占用大约100TB × 3 / 3 100TB再预留30%的扩容空间和临时文件空间那存储规划基本要按150TB以上来做。如果每台机器配8块4TB盘、两块盘做系统冗余单机可用存储大约24TB那至少需要7台左右的数据节点。提示估算时宁多勿少但也不要盲目堆配置。集群规模扩大一倍运维复杂度不是翻倍而是呈指数级上升。1.2 节点角色划分管理、计算、存储、登录要分开很多初次搭建集群的人喜欢“每台机器什么都干”管理节点上跑NameNode顺便也跑DataNode还兼着当作业提交入口。短时间没问题等到集群规模上来管理节点的CPU和内存会被各种心跳请求、RPC处理打满这时候再拆就非常痛苦。标准做法是至少分出四类角色管理节点跑NameNode、ResourceManager、etcd、K8s控制面这类元数据服务对CPU主频和内存稳定性要求高磁盘用SSD做元数据存储数量建议2到3台做HA。计算节点跑实际的计算任务是集群中最多的节点类型。只配置系统和计算框架不承担存储职责方便弹性伸缩。存储节点专门挂大盘跑DataNode、RegionServer这类存储服务。和数据计算分离的好处是存储节点故障不会直接拖垮计算任务数据倾斜时也更好定位。登录/网关节点用户在这里提交作业、上传数据不对内网暴露所有节点安全性好很多也方便做统一的权限控制和作业审计。这个角色分离的思路来自一个很朴素的运维原则让每个组件都做自己擅长的事。Kubernetes把控制面和数据面分开也是同样的逻辑你在物理集群部署时先把这层思想落地后面不管是套Hadoop生态还是K8s生态都会顺手很多。1.3 硬件选型不要迷信“高配”瓶颈往往在网络上硬件选型这块我踩过最大的坑就是忽视网络。第一次搭集群的时候买了很强的计算节点双路CPU、512GB内存但是千兆网卡。结果Spark跑shuffle的时候Map端的数据在网络上堵成一锅粥CPU利用率不到20%整个任务却慢得离谱。后来把网络换成万兆同样的代码跑下来时间直接缩短了大约7成。所以我的建议是计算节点内存够用就好但网卡一定要选当前主流偏上的规格。规模在10台以下万兆网卡加万兆交换机基本够用规模再大特别是AI训练场景建议直接上InfiniBand或者RoCE配RDMA协议。磁盘方面热数据用NVMe SSD温数据和冷数据用SATA HDD不要把SSD和HDD混在一个存储池里做同等热度的数据存放GC和均衡策略会互相拖累。每台计算节点至少保留一块独立系统盘和数据盘物理隔离避免数据盘IO打满时系统卡死。注意如果条件允许在采购前做一次小规模基准测试至少测一下同一交换机下两台节点的TCP带宽和延迟。这个测试成本极低但能提前发现很多网卡驱动、交换机配置、布线质量的问题。2. 网络与存储集群的血管和骨架2.1 网络拓扑设计与带宽验证集群内部通信主要分三类流量管理流量、存储流量、计算流量。小规模集群可以共用一张物理网络但我建议通过VLAN或者物理隔离的方式至少把存储流量和管理流量分开避免存储节点之间做数据平衡的时候把管理网络堵死导致心跳超时、节点被误判为故障。具体到IP规划我习惯把网段规划成三段管理网段、数据网段、存储网段。比如管理网段用10.0.1.0/24计算数据网段用10.0.2.0/24存储网段用10.0.3.0/24每类节点按序号分配固定IP。这样做的好处是后续做防火墙策略、路由配置、监控告警的时候按网段管理比按MAC地址或者主机名管理要清晰得多。带宽验证有一个很实用的命令组合。先测TCP吞吐用iperf3在节点A起服务端节点B起客户端测60秒取平均值再测延迟用ping的洪水模式看小包延迟的均值和中位数最后最好再测多并发流的聚合带宽因为很多分布式框架的shuffle是并发多流的单流带宽高不代表聚合带宽够。提示如果你发现自己集群的RDMA带宽正常但数据节点之间的复制速度就是上不去先查交换机的流控和ECMP哈希策略八成问题出在哈希不均导致某条链路过载。2.2 存储选型本地盘、分布式存储还是集中式存储存储选型没有一个放之四海皆准的答案关键看你关心的是吞吐量、延迟还是管理便捷性。纯计算场景比如跑深度学习训练数据读取有很强的时间局部性直接用计算节点本地NVMe盘缓存数据是最省事也最高性能的做法配合 checkpoint 定期落盘到对象存储备份即可。大规模数据存储和分析场景比如数仓、日志平台我更推荐分布式存储方案比如用Ceph或者MinIO搭对象存储配合HDFS计算存储分离架构。数据和计算分离之后计算节点可以随时扩缩容数据节点故障也只影响存储服务不会连带把正在运行的作业全部拖垮。集中式存储像企业级SAN或者NAS性能稳定、管理方便但价格高、扩展性一般更适合对延迟和数据一致性要求极高、数据量不太大的关键业务。我一般不推荐在超大规模集群里用集中式存储因为性能瓶颈和单点风险都太明显。这里给一个很主观但参考性很强的对比表是我在不同项目里的实际体感| 存储方案 | 优点 | 缺点 | 适用场景 | | 本地盘 | 部署简单、性能好 | 数据可靠性依赖计算节点、容量分散 | AI训练、临时计算 | | HDFS | 生态成熟、吞吐高 | 元数据节点运维复杂、小文件性能差 | 离线数仓、批量计算 | | Ceph/MinIO | 扩展性好、支持S3接口 | 网络要求高、调优成本高 | 对象存储、计算存储分离 | | 集中式存储 | 稳定、企业级功能全 | 贵、扩展性弱 | 核心数据库、低速增长业务 |2.3 集群间数据迁移与带宽测试方法多集群场景下迁移数据是避不开的活。我最常遇到的一个问题是两边都是千兆链路但迁移速度始终只有200Mbps左右怎么都提不上去。这时候先别急着怀疑磁盘先测单流TCP带宽如果iperf3单流只有200多Mbps可能就是网卡协商速率有问题或者中间防火墙做了限速。数据迁移工具的选择也很关键。量小、一次性迁移用rsync或者scp就行数据量大且持续同步用DistCpHadoop生态内、Rclone适配对象存储和各类远端、或者专门的数据同步工具。跑DistCp之前记得先把Map数调大默认的Map数经常只有20对跨集群迁移来说远远不够。注意迁移前先在目标集群做一次小规模写入测试确认目标集群的存储写入性能和源端匹配否则很容易出现源端任务等待目标端写入堆积大量临时文件把磁盘耗尽的情况。3. 操作系统与基础软件层先把地基夯实3.1 系统初始化账户、时间同步、DNS一个都不能少集群系统的初始化阶段最容易被忽视的往往不是复杂的环境配置而是三个最基础的项目统一账户体系、时钟同步、DNS解析。统一账户最简单的做法是每台机器同步/etc/passwd和/etc/shadow或者干脆用LDAP/NIS集中管理。账户不一致会导致一个很隐蔽的问题作业在节点A上以userA提交调度到节点B时userA不存在任务以匿名用户运行权限错乱数据写不进去。NTP同样关键Kerberos认证、日志时间戳、数据库事务都对时间敏感时间偏差超过几分钟很多分布式系统会直接拒绝服务。DNS这块我吃过亏。某个集群内部通信偶尔超时排查了很久最后发现是系统解析主机名的时候走了外网DNS外网抖动导致解析超时。所有节点必须把集群内部主机名解析写到/etc/hosts里或者搭建内网DNS服务器并关闭无关的DNS解析请求。系统参数方面建议做以下几项基础调优文件句柄上限进程级和系统级都调高到至少65535很多大数据组件的默认值不够用。网络参数TCP缓冲区、TIME_WAIT回收、backlog队列长度结合实际并发连接数调整。内存参数关闭大页内存透明化避免Spark这类内存密集应用出现内存碎片和异常占用。关闭防火墙或按网段放行集群内部节点之间尽量不做复杂防火墙策略要么物理隔离要么在边界统一做安全策略。3.2 内核参数调优每一项改动都要有依据内核参数调优最大的坑是“看着网上教程一顿乱调调完系统更慢了”。调优必须基于监控数据不要拍脑袋。比如改TCP缓冲区大小前先看看服务器当前的连接延迟、丢包率和带宽时延积如果带宽时延积很小缓冲区开得再大也浪费内存。一个我常用的基础配置思路先测出节点间RTT比如0.2毫秒带宽10Gbps那带宽时延积大约为10Gbps × 0.0002s 2000000bit 250KB。TCP接收窗口可以设置为这个数值的2到4倍大概1MB就够。如果RTT是50毫秒那窗口就要开到接近64MB完全不同量级。内存相关参数里vm.swappiness我习惯设置成10左右避免系统过早地swapvm.dirty_ratio和vm.dirty_background_ratio要结合业务调整写密集型应用可以适当调高background阈值避免频繁触发回写造成IO抖动。3.3 调度系统选型SLURM、YARN、K8s各有分工高性能计算集群的核心软件除了存储和计算框架调度系统是真正的中枢神经系统。很多初学者分不清SLURM、YARN和Kubernetes的定位这里我给出一个非常粗粒度的分类SLURM传统HPC场景的王者管理和调度MPI、GPU任务是绝对强项适合气象、流体、有限元这类有强并行模型的计算任务。它和云原生生态连接较弱但在传统科学计算领域生态非常牢固。YARNHadoop生态的调度器主要负责MapReduce、Spark、Flink任务的资源分配。它设计初衷是一套通用资源管理系统但后来被K8s抢走了不少市场份额现在更多作为Hadoop生态的配套组件存在。Kubernetes云原生时代的调度底座适合微服务、在线推理、数据平台这类需要弹性伸缩和容器编排的业务。越来越多的大数据组件比如Spark、Flink都在提供K8s的原生支持。选择调度系统的关键不是谁的技术更先进而是你现有团队最熟悉哪个、业务形态更接近哪种模式。如果团队天天写Dockerfile那Kubernetes怎么都不会错如果团队有一堆MPI程序那SLURM就比K8s省心得多。3.4 常见集群软件部署要点Hadoop、Redis、Kafka、Doris各有各的脾气部署具体软件时每一个组件都有它的脾气。拿Hadoop来说NameNode的HA配置、fsimage和edits的定期合并这些不提前做等集群跑上几个月出问题就会非常被动。另外一个高频问题就是block副本数不一致要养成习惯定期跑fsck检查健康度。Redis的部署模式经常有人在哨兵模式和集群模式之间纠结我的建议非常直接如果数据量没有超过单机内存、主要诉求是高可用那就用哨兵模式部署简单、故障切换快如果数据量大到单机扛不住必须分片存储那就用集群模式。哨兵解决的是“主节点挂了谁来接管”的问题而集群模式解决的是“数据太多一台机器存不下”的问题两者解决的是不同维度的问题。Kafka部署第一件事就是记住broker的controller和broker角色分离以及acks参数对写入可靠性的影响。三节点Kafka集群极其常见但如果不小心把replication.factor设为1一旦某个broker宕机分区数据就彻底丢失。设成3只是基本操作更要注意的是min.insync.replicas参数要同步调整否则生产端acksall的判断根本不生效。Doris这类MPP数据库部署时BE和FE的节点角色要分清FE是元数据和查询协调BE是数据存储和计算执行把BE和FE混在同一台机器上查询压力一大元数据服务先扛不住。AI模型部署又是一个独立话题。本地部署Ollama这类推理服务核心是显存预算模型参数量、量化位数、上下文长度三者直接决定显存需求。7B模型FP16大约需要14GB显存INT4量化后大约4GB左右。如果想跑更大模型要么上多卡要么做模型并行要么接受更激进的量化方案。4. 高可用与故障转移别让单点毁掉整个集群4.1 高可用架构的核心思路消除单点但不解决所有问题高可用这件事情我的理解是集群里每一个服务都假设它会挂然后设计出一套机制让它在挂了之后不影响整体服务。很多人把所有希望寄托在主备切换上但切换本身也有成本和时间窗口设计高可用架构时要先问自己一个问题这个服务能容忍多长时间的不可用能容忍多少数据丢失两个关键概念是RPO恢复点目标和RTO恢复时间目标。如果你不能容忍任何数据丢失那就不应该依赖异步主备切换而应该选择同步复制或者多副本强一致方案如果你能容忍几秒到几分钟的不可用那主备模式就够了。这个决策要和业务一起商量不能纯技术拍板。我经常用一套简单的分层策略数据层做多副本比如HDFS三副本、Kafka多副本、数据库主从同步服务层做主备或仲裁切换比如NameNode HA、K8s控制面多副本网络层做冗余链路多网卡绑定、多交换机堆叠。每一层的高可用策略不同但共同点是都要定期做故障演练不能只部署不验证。4.2 Redis哨兵模式与集群模式的选型别再纠结“哪个更好”前面已经提过哨兵模式和集群模式解决的是不同问题。这里再展开说清楚因为这是搜索热词里很高频的疑问。哨兵模式是在主从复制基础上增加了一个监控、通知、自动故障转移的组件通常部署奇数个哨兵节点通过多数派判定主节点是否故障。它适合数据总量在单机以内、QPS要求不那么极端的场景部署和运维成本低是很多业务系统的首选。集群模式则是把数据按slot范围分散到多个主节点上每个主节点又有若干从节点做备份。它解决了容量扩展问题但引入了一个新问题跨slot操作受限事务和Lua脚本的使用范围变窄有些应用层代码要到集群模式下才能发现兼容性问题。我的选择建议是优先用哨兵模式撑住绝大多数场景等到确实发现内存不够、读写量超过单机能力时再考虑迁移到集群模式而且迁移前一定要在测试环境把应用代码的兼容性先跑一遍。4.3 元数据守护NameNode和etcd的备份恢复分布式系统的数据可靠性不等于元数据可靠性这是一个很多新手容易漏掉的点。HDFS的NameNode存储fsimage和edits log如果这台机器磁盘损坏且没有做异地备份整个集群的数据相当于全部丢失因为数据块的位置映射关系全在NameNode里。我给Hadoop集群做元数据保护的标准动作是NameNode的fsimage每天定期归档到其他节点edits log通过JournalNode做同步复制同时把关键元数据再快照到独立对象存储上。一套流程做好NameNode物理机即使整机报废也能在半小时内恢复集群。Kubernetes的etcd也是一个道理。etcd存了集群的所有资源和状态etcd丢失意味着整个集群的控制面都丢了。务必每天备份etcd快照并把快照存到集群外部同时定期验证备份的可用性否则备份了半年到真正要恢复那天发现快照是坏的那才是最绝望的事。4.4 K8s证书过期与自动续签定时炸弹要提前拆Kubernetes集群运行时间一长必然会遇到的坑之一就是证书过期。集群内部的各类证书默认有效期只有一年如果没有做自动续签到期那天整个集群的控制面会逐渐不可用kube-apiserver之间的通信、kubelet和apiserver的认证全部失败表现非常诡异。解决思路有两个方向一是把所有证书有效期调长比如10年或者在签发时指定更长的有效期二是配置自动续签机制。kubeadm部署的集群可以借助kubeadm相关命令定期检查证书有效期再做手动续签生产环境可以用cert-manager这类工具管理证书自动轮换。我个人的操作习惯是集群部署完成当天就在监控里加一个证书过期时间的告警提前30天、7天、1天各告警一次防止遗漏。证书续签后一定要滚动重启相关组件很多人的证书明明已经续签了但组件没有加载新证书服务还是报错。4.5 故障演练不演练的高可用都是纸面高可用我见过太多“配置了HA但从来没切换过的集群”这样的高可用在真正出故障时大概率切换失败。原因是主备切换涉及的很多细节比如仲裁链路是否正常、备节点数据是否真正追上主节点、切换后应用能否自动重连这些只有在真实故障或者演练中才会暴露。建议每季度做至少一次故障演练场景可以包括停掉一个NameNode、摘掉一个Kafka broker、杀掉一个Redis主节点观察系统是否能自动恢复RTO和RPO能不能满足要求。演练前要在窗口期做演练后要复盘切换日志和报警记录。第一次演练肯定会发现问题发现得越早损失越小。有一次我演练停掉主NameNode结果发现JournalNode的一个节点磁盘满了edits log写入失败集群进入安全模式折腾了半个多小时才恢复。这就是典型的“配置了HA但从不检查底层依赖”的教训。5. 监控告警与日常运维实践5.1 监控指标怎么抓不是指标越多越好要抓能反映问题的指标监控系统是集群的第二套“神经系统”。很多人搭Prometheus加Grafana把所有Exporter都接上面板拉了一大堆真出问题时反而不知道看哪里。我建议按层级选指标不要在无关指标上浪费注意力硬件层CPU、内存、磁盘IO、网络吞吐和错误包重点关注磁盘IO等待时间和网络重传率这两个指标往往比利用率更能反映问题。系统层文件句柄数、进程数、TCP连接状态、系统负载。系统负载需要结合CPU核数判断而不是看绝对值大小。应用层每个组件的核心指标比如HDFS的容量使用率、DataNode心跳延迟、Kafka的消费者堆积量、Redis的命中率和持久化阻塞时间。告警阈值要分主次不能全部是一级告警。我的经验是容量类指标磁盘使用率、内存使用率设置为warning达到90%提醒扩容可用类指标心跳丢失、进程退出、证书过期设置为critical必须立刻响应。告警通道方面我习惯把Prometheus的Alertmanager接到飞书或者钉钉的群机器人上再配合一条短信或者电话通道给值班人。5.2 作业调度与资源配额别让一个任务榨干全集群多租户场景下作业调度比存储容量更容易起冲突。如果所有人提交作业都不设资源上限一个Spark任务申请几百个执行器可能瞬间占满整个集群其他业务全部饿死。解决办法是建立资源池和队列的配额体系。SLURM里用Partition和QOS控制资源上限Kubernetes里用Namespace加ResourceQuota和LimitRange做隔离YARN生态里配置Capacity Scheduler或者Fair Scheduler按部门或业务线划分队列确保每个队列有最低资源保障。我的建议是每个新上集群的业务先提交一个资源需求表说明预计的任务数、单任务资源量、峰值时段。运维侧据此配置队列容量和优先级先小流量验证再逐步放开。资源配额的效果要定期复盘防止有些队列长期空闲、有些队列天天排队。5.3 日志收集与审计故障排查的第一现场日志集中收集在集群规模超过5台时就要提上日程。最简单的方式是每台节点跑一个filebeat收集日志发送到统一的日志平台比如ELK或者Loki。收集哪些日志系统日志、应用日志、作业日志三类都要其中作业日志最容易被人忽略但对排查问题最有效。作业日志要保留到可追溯的周期。Hadoop生态的作业日志默认由YARN管理开启日志聚合后任务结束日志会统一存到HDFS保留时间可以按需求设置。K8s的容器日志默认存在节点本地规模一大会迅速占用磁盘建议配置日志轮转加远程采集。有一次排查一个延迟问题单看监控指标怎么都对不上最后是从作业日志里发现某个任务一直在重试连接一台已经下线的节点每次等超时10秒重试几十次就把任务拖崩了。没有集中日志这种问题几乎不可能定位。6. 常见问题与排查技巧实录6.1 节点间通信延迟偏高从哪里开始查集群里时不时会碰到“某两个节点之间ping延迟只有0.2ms但TCP传输速率只有预期的一半”这种怪问题。我的排障顺序是先确认链路层网卡是否协商到预期速率光模块是否插紧交换机端口是否有错误包。再确认TCP层用iperf3分别测单流和并发多流对比差异如果多流带宽远高于单流通常是单TCP流窗口或拥塞控制算法导致可以调整TCP参数或者启用不同的拥塞控制算法。最后看应用层确认是不是应用本身处理能力有限导致吞吐上不去这时就不能全怪网络了。从系统到网络的排障顺序比较稳妥最快的定位方式是先看网卡队列是否有多核均衡比如有多队列网卡但没有打开RSS某条中断全打在一个CPU核上处理不过来必然影响吞吐。6.2 磁盘IO打满和数据倾斜磁盘IO打满的典型场景有两个一是后台有大量的数据均衡或者副本复制任务二是数据倾斜导致少数节点承担了绝大多数读写。前者可以通过调整均衡任务的带宽上限来缓解比如HDFS的balancer带宽参数调低后者必须从业务侧解决比如改分区键、加盐、改分桶规则。诊断数据倾斜的快速方法是看监控里各存储节点的写入量或者任务各分区处理时间是否分布极度不均。如果某个节点磁盘利用率明显比其他节点高大概率存储倾斜如果某个Reduce任务跑了1小时其他只要5分钟大概率计算倾斜。定位后再针对性优化比盲目加节点有效得多。6.3 证书过期、时钟漂移这类“不起眼”的问题前面提到的证书过期是集群运维里最典型的“平时没感觉、到期就翻车”的问题。分布式系统里还有另一个类似级别的坑时钟漂移。NTP如果配置不当或者个别节点无法访问时间服务器时钟漂移超过一定阈值后Kerberos票据会失败Kafka的控制器选举和副本同步会出现异常很多分布式一致性协议都会因为时钟问题出现错误行为。这两类问题的排查方法都很有通用性如果集群某天开始出现大量偶发的认证错误、复制同步异常先查证书有效期再查系统时间偏差。很多疑难杂症的排查路径第一步不是看复杂组件而是看这些基础环境变量。6.4 集群扩容缩容的注意事项扩容通常比缩容简单更好的做法是提前规划好预期规模把节点角色和IP网段预留出来新节点上线时只需要执行标准的初始化脚本再加入集群触发数据平衡即可。缩容则要非常小心以HDFS为例缩容前要先把节点上的数据块迁移走等待副本数满足条件后再下线直接kill进程很可能导致大量副本缺失整个集群进入安全模式。Kubernetes的缩容相对容易一些先把节点标记为不可调度再把Pod优雅驱逐到其他节点。但要注意的是StatefulSet类型的工作负载或者使用了本地盘的存储驱逐过程中可能涉及数据迁移要评估好IO冲击。扩容缩容后的常规操作是观察集群的健康状态。HDFS要跑一次fsck确认副本数恢复正常Kafka要多观察一下分区的leader分布是否均衡Redis集群则需要用redis-cli --cluster rebalance手动重新平衡slot。7. 几个值得养成的运维习惯最后分享几条我在实操里沉淀下来的经验不像是某个具体命令或配置但对集群长期稳定运行影响很大。第一任何变更都要有回滚方案。不管是改内核参数、升级组件版本还是调整网络配置变更前先想清楚“如果挂了怎么回去”最好先把配置文件和原始版本备份好。很多小问题变成事故就是因为变更后出了异常但回滚路径不清晰只能手忙脚乱地现场改。第二监控和告警要自己模拟一遍。搭好告警后主动触发一次测试把告警通道的真实通知跑一遍确认能收到、内容可读、操作人知道怎么处理。很多人的告警从未真正发出过等真出事了才发现电话没打通、机器人的webhook地址失效了。第三备份的可用性要定期验证。备份不是拷贝一份就完事了要定期做恢复演练把备份文件恢复到临时环境启动服务做基本功能验证。磁盘上的备份数据可能因为静默损坏、存储介质故障而不可用只有真正恢复过才敢信。第四文档要跟着变化走。每次变更后把IP规划表、拓扑图、配置基线、操作手册都同步更新。很多集群问题排查困难就是因为文档和实际环境已经脱节靠人的记忆去还原整个集群的架构效率太低。高性能计算集群的部署和维护本质上是一个系统工程。一项一项地把硬件规划、网络设计、软件选型、高可用策略、监控体系做扎实集群的稳定性自然就上来了。我个人的体会是真正让集群变得可靠的往往不是某个惊艳的技巧而是那些看起来枯燥的基础工作——把账户统一了、把时钟同步了、把备份恢复了、把告警打通了。做到这些你的集群就比大多数集群稳了不止一个量级。
返回列表