ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

华为云Stack扩容缩容实战:从CMDB到计算节点的避坑指南

华为云Stack扩容缩容实战:从CMDB到计算节点的避坑指南 先说个让我印象很深的场景客户业务在半年内翻了三倍CPU和内存水位连续几周在80%以上打转扩容需求一提交大家以为最快的方式就是加几台物理机把计算节点纳管进来。结果真动手才发现从CMDB台账核对的第一个字段开始每一步都可能有坑。我前后做了多次华为云Stack扩容从CMDB配置到计算节点增减容有成功经验也有差点翻车的教训。这篇内容不打算复述官方文档就把实际踩坑过程里真正值得注意的点拆开讲给准备在华为云Stack上做扩容或缩容的同行一个能照着思考的路线图。如果你是第一次接触扩容可以先理解成往一个已经跑起来的私有云平台里加计算资源或减计算资源。听起来简单真正难的是让新增的算力安全地融入现有环境让被减掉的节点不带走任何业务数据同时让监控、CMDB、配额这些周边系统都跟着保持一致。这篇内容的顺序也按这条链路来先是CMDB再是扩容步骤然后是缩容最后是扩容收尾的盲区和生产环境的真实故障。1. 扩容第一步不是加机器而是把CMDB当成“数据底座”来治1.1 CMDB在扩容链路里的角色比你想的更重我最早做扩容时也抱着“先上架联调、再把节点加进集群就完事”的心态。直到有一次生产环境监控异常告警刷屏查了一整天才定位到是CMDB里的IP资源和实际网络配置不一致。从那次之后我给自己定了一条规矩不管扩容还是缩容第一件事一定是先核对CMDB最后一件事一定是回写CMDB。这个规矩在后来的几次项目里帮我省了大量排查时间。在华为云Stack的环境里CMDB承担的角色不只是“记录资产”那么简单。节点加入集群时资源池归属、网络区域、存储关联关系都可能被自动化流程读取如果台账是错的自动化流程就会把新节点分配到错误的AZ或资源池轻则影响业务调度重则出现IP冲突、存储挂载错误。监控和告警系统同样依赖CMDB节点IP、网段、机柜位置这些字段一旦对不上告警定位就会失真故障响应时间会被拖得很长。所以我的建议是扩容前先把CMDB里和计算资源相关的配置项全部过一遍字段要能落到“三个一致”——IP地址一致、资源池归属一致、网络VLAN及存储结构一致。不要觉得这部分是“纸面工作”它直接决定了扩容后整个平台的可观测性和可维护性。1.2 华为云Stack扩容前必须核对的核心CMDB字段结合我自己的使用习惯下面这张表是扩容前我至少会检查一轮的核心字段。字段类别、关键字段、如果不一致可能导致的问题字段类别关键字段不一致时的典型后果资源池 / 集群集群名称、所属AZ、所属Region新节点被划入错误资源池业务调度异常主机节点管理IP、业务IP、序列号、机架位置、主机型号监控告警定位错误自动化任务无法识别节点网络资源管理VLAN、存储VLAN、业务VLAN、IP地址段网络不通存储链路中断甚至出现IP冲突存储资源存储池、磁盘组、LUN/卷映射关系新节点识别不到存储或挂载错误LUN服务映射服务/产品与物理主机的关系缩容时误删关键服务节点业务直接中断这里单独把“服务映射”拎出来是因为很多运维团队在扩容时只关心IP和集群忽略了“哪些业务服务和主机绑定”的问题。华为云Stack里的部分服务组件是有主机亲和性的新增或下线节点之前必须先知道这条业务链路上的依赖边界否则很容易在缩容时把承载管理服务或数据库的节点误当成普通计算节点处理。1.3 云原生时代传统CMDB台账怎么适配动态资源池说完传统CMDB的核对项我想再展开一个和“开源CMDB适配云原生”相关的话题。近两年云原生架构越来越普及很多平台上跑着Kubernetes集群Pod漂移、节点弹性伸缩是常态。传统CMDB以“固定IP、固定主机”为模型的台账遇到这类动态场景会显得力不从心Pod从一个节点重新调度到另一个节点CMDB如果不感知变化几天后记录就和实际环境完全对不上。我在实际维护中的做法是“两层数据”分开管一层是物理静态数据包括物理机、存储、交换机等很少变化的资产信息这部分继续由传统CMDB持有另一层是动态资源数据包括虚拟机、容器实例、资源池实时容量等这部分通过云平台或云原生编排器的API定期同步保证CMDB里看到的“动态层”始终贴近真实环境。做扩容时第一轮核对是静态层上线后再次同步动态层这样两个层面都不会失真。如果团队有能力把开源CMDB和云平台API打通是成本不高的做法但不要把两套数据硬塞进同一张表维护成本会很高。2. 计算节点扩容从容量评估到上线验证的完整动作2.1 扩容前容量评估不要只看CPU和内存扩容前的容量评估最容易犯的错误是只盯着CPU核数和内存总量把总容量算够就觉得可以了。我在实际规划里至少还会看四个维度CPU主频是否匹配现有集群、内存是否按配置满插、磁盘或存储池的IOPS与延迟是否满足业务峰值、网络端口带宽和物理链路是否冗余。拿内存来说很多服务器标称容量很大但实际是按两个内存通道配置的内存带宽根本喂不饱CPU放到生产环境后整体性能会明显偏低。这类问题在单机测试时很难暴露只有业务跑起来后才会被发现。评估还要结合现有集群的超分比。如果资源池里CPU和内存超分已经很高扩容就应该优先考虑增加计算节点而不是在现有节点上继续压榨剩余资源。如果超分本身很低说明资源利用率还有空间先做切片分析和业务梳理也许能通过优化减少扩容需求。对华为云Stack来说评估结果还要落到“能不能被云平台识别”。例如新节点和集群内已有节点要求在CPU型号、内存类型、虚拟化特性方面兼容。如果在扩容前发现CPU存在型号代差就要提前规划是新建集群还是升级已有集群否则等节点上架了才发现兼容性问题返工流程会特别痛苦。2.2 新节点上线操作要点网络、存储、集群参数一起盯新节点上线的标准链路大致是硬件上架 → 配置带外管理 → 配置RAID → 安装操作系统和虚拟化组件 → 配置网络 → 接入云平台 → 加入资源池。每一步看起来都不复杂但我在生产环境里遇到过最多故障的环节是网络配置。新节点的管理VLAN、存储VLAN、业务VLAN要一次性配齐并且要和现有节点的配置逐项对比。网卡绑定模式也要特别留意如果现有节点用的是主备模式新节点配成了负载均衡模式某些交换机配置下会出现未知单播泛洪或网络震荡。接入云平台时不同版本的华为云Stack对纳管节点有不同的前置条件包括依赖的软件包版本、内核参数、时间同步配置等。我自己的经验是在正式接入之前先用一台与生产同型号的新节点做全流程验证确认各版本匹配之后再批量处理其他节点。这样能把配置错误控制在一台机器的范围内。集群参数方面新节点加入后需要检查HA策略、DRS或均衡策略是否已经覆盖到新节点。有些扩容项目做完新节点一直处于“未受管”状态原因就是集群策略的重算没有触发节点虽然纳管了但虚拟化组件不会主动把负载调度过去等于白扩。2.3 上线后的验证清单不是能开机就代表成功新节点显示“在线”不代表扩容成功。我一般会按以下清单验证全部通过才算是完成节点在管理界面显示正常告警为空。新节点与已有节点之间管理IP、存储IP、业务IP三层网络全部互通端口组与VLAN标签一致。存储多路径正常重启主机后LUN依然能被平台正确识别和挂载。虚拟化组件版本与集群内其他节点一致迁移兼容性检查通过。创建一台测试云主机并把它从集群内其他节点热迁移到新节点再迁回去观察迁移过程是否平稳。监控系统能采集到新节点的CPU、内存、磁盘、网络指标告警阈值和联系人配置正确。租户配额已刷新能够在新节点上创建云主机。其中“测试迁移”是我强烈建议做的。很多节点单独跑没问题一旦参与虚拟化热迁移CPU特性、内存大页、NUMA等配置差异就会暴露。先把一台业务不敏感的测试机来回迁一次往往能提前发现兼容性隐患。3. 计算节点缩容先排空业务再摘节点节奏比顺序更重要3.1 缩容前必须完成的业务迁移与避责项缩容通常发生在业务下云、资源退租、设备老化或资产盘点等场景。最危险的错误是先把节点关机再去看上面跑了什么业务。我在团队里反复强调的一句话是缩容的节奏比顺序更重要先把业务全部迁走再碰硬件。节点上的业务梳理可以从云平台导出的虚拟机清单开始逐个检查是否有运行中的核心业务、是否有未备份的本地数据、是否有不能热迁移的虚拟机GPU直通、PCI直通、特殊CPU亲和性等。对不能迁移的业务要么先停机维护要么单独出方案处理千万不要默认一台节点上的虚拟机都能顺利迁走。迁移完成之后还有一个容易被忽略的动作把节点设置为维护模式后要观察一段时间。这个“观察期”不是走过场而是确认没有新的虚拟机被调度上来、迁移出去的虚拟机没有异常回切。我通常的建议是至少观察一个业务周期比如24小时或一个完整的业务高峰段。3.2 节点下线的标准动作从维护模式到硬件摘除我把节点下线归纳成以下几步顺序上不要乱编排工具或管理平台上把目标节点置为维护模式。确认节点上所有虚拟机已迁移到其他可用节点且迁移后运行状态正常。在管理平台中将节点从集群中移除等待平台侧完成资源回收。停止节点上的云平台相关服务确认无业务流量和存储I/O后再关机。硬件下架、线缆清理并同步更新交换机端口配置释放IP更新CMDB。这里容易出问题的是第3步和第4步。有些平台版本里节点从集群移除后仍有监控或调度组件短时间内继续往该节点下发指令如果立刻关机可能造成整个集群的异常告警严重的还会影响其他节点。所以我的经验是逻辑移除后至少再等待几轮管理平面数据同步确认平台对这个节点已经“无感”再执行物理下电。3.3 缩容后最容易被忽略的资源配置一致性缩容完成后很多人就认为项目结束了实际上缩容后的资源配置一致性比扩容更麻烦。我用一个实际例子说明有一次我们把一个计算节点下线后第二天有开发同事反馈部分租户无法创建新云主机原因是租户配额模型仍然把这个节点纳入可分配容量。平台把该节点置为不可用后可用容量变少但配额数据没有实时联动导致部分租户的资源申请被拒绝。类似的情况还可能出现在监控系统、自动化运维平台和CMDB。只要任何一个系统还保存着已下线节点的记录后续就可能出现“幽灵资源”占用、异常告警、自动化任务报错等问题。缩容之后应该对CMDB、监控系统、配额模型、服务发现组件做一次全量刷新确保“下线节点”这个事实在所有依赖它的系统里同步生效。4. 高可用与配额检查扩容收尾时最容易漏掉的两个盲区4.1 扩容后的HA域和资源池冗余策略扩容之后计算节点多了看起来很充裕但高可用设计不一定会自动变得更好。我见过不少环境扩容后业务虚拟机在集群内分布得比较均匀但一旦某台节点宕机剩余节点根本没有足够冗余承载全部接管业务。原因是扩容只增加了节点没有同步调整HA策略、故障域或虚拟机亲和性规则。正常规划时一个计算资源池至少要预留一台节点的冗余容量也就是说当某节点故障时其他节点还能接管它的全部虚拟机。这个规则在扩容前可能只占一小部分但扩容后业务变多预留比例要重新计算否则从N1变成了N0故障时就会出事。如果平台支持故障域或主机组建议把关键业务的虚拟机分散到不同故障域避免一个节点故障导致同一条业务链整体中断。4.2 租户配额与业务可用性的关系配额这个话题在扩容项目里经常被当成“事后调整”来处理。实际上配额直接决定了扩容后的算力能不能被业务使用。华为云Stack里资源池的容量是平台层面的每个租户或项目能用的CPU、内存、存储是由配额控制的。扩容之后即使平台总容量上去了如果某个租户的配额没有增加他们依然只能使用原有配额内的资源。这就是为什么有些扩容项目做完业务侧感觉“没有任何变化”的原因。我建议在扩容方案里就把配额调整作为一项独立任务列出来和节点上线并行推进而不是等业务反馈创建失败后再去补配额。5. 避坑实录五个我在生产环境遇到过的典型问题5.1 新节点加进集群后状态“离线”问题出在VLAN配置一次扩容中新节点接入管理平台后一直显示离线和同集群节点完全无法通信。我当时的排查链路是先从物理层开始确认网线、光模块、交换机端口都没有告警再从交换机侧查看端口状态和VLAN划分结果发现新节点业务网卡的VLAN标签和集群内其他节点不一致。业务流量走错了二层网络节点自然被管理平面判定为离线。修复方法是把新节点对应网卡和交换机端口上的VLAN配置统一再重新加载网络服务。这个问题的教训是新节点接入前一定要拿现有节点的网络配置做一次“像素级对比”不要只凭机房给的模板去配。5.2 CMDB里IP段与新节点冲突监控告警刷屏扩容完成后一天监控系统突然开始大量报IP连通性异常而且异常IP都能在CMDB里找到记录。查下去才发现这些IP其实是扩容时刚启用的新地址段但CMDB里有一个旧项目的“历史事实”一直没清理把同一个IP段登记在了两个业务名下。监控系统拿到这个数据后探测源数据错乱告警自然刷屏。这件事让我意识到任何一次扩容前都应该做IP资源唯一性校验历史台账里的失效IP要及时回收或标记不能只依赖“这次排查没有冲突”这样的临时结论。5.3 缩容时虚拟化迁移失败根因却是存储多路径有一次缩容节点进入维护模式后虚拟机迁移跑到一半就报错回滚。刚开始怀疑是CPU兼容性问题反复检查后发现迁移失败的虚拟机都有同一个特征挂载着某个共享存储LUN。进一步排查发现这台节点在迁移期间存储多路径只感知到一条链路另一条光纤链路松动存储I/O在切换路径时出现中断。解决方法是在虚拟化层面重新扫描多路径确认两条链路都正常后再继续迁移。之后我把“存储多路径健康检查”列入了缩容前检查表这种问题在故障前很难通过常规监控发现只有迁移时才会暴露。5.4 扩容完成但租户无法创建云主机配额没刷扩容过程中节点纳管正常测试云主机也能创建但特定租户在业务侧创建云主机时一直报资源不足。排查后发现这个租户的配额还停留在扩容前的数值新增的算力容量没有体现在配额模型里。刷新配额后创建操作立即恢复。这类问题最麻烦的地方在于平台层面没有任何告警节点状态、资源池状态都正常只有租户真正发起创建时才会暴露。所以扩容收尾时一定要在验证清单里加上“租户侧真实创建云主机”这一步而不仅仅是平台管理员在后台创建一台测试机。5.5 删除节点后发现数据库连接池撑爆了业务最后一类问题更隐蔽发生在中间件或数据库节点缩容的场景。有一次我们下线了一个承载数据库实例的计算节点业务侧连接池配置里仍然包含该节点的地址新请求不断尝试连接已经不存在的主机连接池被无效连接占满业务处理能力骤降数据库连接池监控一度逼近上限。最终的修复是把连接池配置里的失效地址清理掉并重启相关服务。缩容数据库或中间件节点时比“迁移虚拟机”更前置的动作是调整业务接入层的连接配置比如负载均衡器的后端IP列表、数据库连接串、缓存客户端节点列表。这个顺序反了业务故障几乎必然出现。在华为云Stack上做扩容缩容真正考验的不是某一项技术操作而是对平台所有依赖关系的理解程度。我现在做任何一次增减容都会把CMDB变更、容量评估、业务预期、监控同步和回滚方案这五件事绑在一起考虑。最后分享一个我自己保持了很久的习惯每次扩容或缩容完成后我会在监控看板上把新增或下线节点的上下游依赖截图保存存成台账附件。很多时候文字记录会被遗忘但一张包含节点状态、告警趋势、租户配额变化的截图在后续复盘时反而是最有说服力的凭证。
返回列表