ARTICLE DETAIL

资讯详情

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

数据中心云基础架构:从超融合到SRv6的选型与避坑实践

数据中心云基础架构:从超融合到SRv6的选型与避坑实践 简介高效数据中心云基础架构解决方案PPT面向数据中心运维、云计算架构及智慧城市、大数据、人工智能项目相关人员重点讲解动态基础架构管理AIM与基础架构云解决服务器部署繁琐、资源利用率低、容灾冗余成本高等问题。演示文稿共1个PPTX文件压缩包约1.89MB内容按高效数据中心、基础架构云、未来展望三部分展开涵盖一次上架连线、按需资源分配、物理/虚拟服务器动态调整、N1/NM冗余、存储数据同步容灾等要点并引入Dell AIM、Red Hat Xen及Blackboard大型SaaS实例说明从虚拟化升级到云计算所需的平台能力与改造路径。全文配有清晰架构图和流程适合需要快速理解数据中心云化方案与落地价值的IT决策者、架构师和售前工程师参考。目前已有137人学习可作为入门与方案汇报的提纲型资料。1. 一个PPT标题背后的架构真相从方案演示到能投产的数据中心“高效数据中心云基础架构解决方案”这类PPT几乎每个机房改造项目里都会出现但真正落地时你会发现PPT里那一页“总体架构图”只画出了结果没画出取舍。高效不是指某一个交换机或某一套虚拟化软件跑得快而是在计算、存储、网络三层把资源利用率、故障半径和运维边界同时按住。这篇笔记想聊的正是这件事一个可投产的数据中心云基础架构到底选什么、怎么搭、参数怎么设、哪些坑是用事故换来的。适合正在做机房改造、私有云平台选型或数据中心间互联的运维与架构工程师。2. 先定底座超融合还是分离式用一张表把账算清2.1 超融合三节点起步的诱惑与天花板很多中小规模团队的第一反应是超融合。三台通用服务器装上虚拟化软件和分布式存储管理网、业务网、存储网全跑在同一套硬件上起步成本很低交付也快这也是它长期霸占中小项目PPT首页的原因。但超融合的天花板也很明确计算和存储共用同一批CPU、内存和磁盘扩计算必须连存储一起扩扩存储又被迫多买了CPU当集群规模超过三四十台rebalance、热迁移和备份流量开始抢业务带宽性能曲线会出现断崖。我一般会问三个问题现有虚拟机总量会不会在两年内翻倍有没有单机IOPS要求超过几千的数据库或大数据组件运维团队是三个人还是十个人如果前两个回答是“会”和“有”超融合的初期省下的钱会在扩容时加倍还回去。反过来如果业务就是几十台低负载虚拟机加少量文件共享超融合仍然是对的选择。2.2 分离式架构的组件与选型决策表分离式架构把计算节点、存储节点、网络Spine-Leaf分开规划每层独立扩容排障边界也更清晰。计算层用KVM或VMware做虚拟化存储层用Ceph或商业SAN/NFS网络层用Spine-Leaf加VXLAN。这张表是我做选型时固定用的对比维度按规模、性能、成本、运维分别打分对比维度超融合3-30节点分离式50节点规模分离式200节点规模起步成本低三节点即可高需要独立网络设备高但单节点成本下降横向扩展计算存储必须同步扩计算、存储各自独立扩分层扩展优势最明显性能峰值控制混跑场景难隔离存储网络独立性能可控可按业务分池故障域更小运维复杂度单一厂商/单一界面组件多需要分层监控需要网络、存储、虚拟化专人典型故障半径节点故障影响面大存储节点故障不影响计算任意单点故障几乎无感关键在第三条“性能峰值控制”。超融合的存储流量必然经过计算节点的物理网卡而分离式架构里存储走独立平面虚拟机的网络抖动不会直接拖垮磁盘IO。如果你的业务里已经有容器平台、大数据组件或高并发业务分离式几乎是唯一长期答案。2.3 网络为什么被低估BGP是事实标准SRv6是DCI的钥匙很多人在做云基础架构规划时把精力都放在服务器和存储上网络只画了“核心-接入”两层就交差。等到业务流量上来才发现在数据中心里跑路由协议、做路径切换的复杂程度远超过想象。大型数据中心里BGP已经是事实标准underlay用EBGP做Spine-Leaf间的路由通告overlay用EVPNVXLAN做租户隔离和虚拟机迁移这些不是可选项而是保证收敛速度和故障隔离的基础。跨数据中心互联时SRv6 Policy又取代了传统的MPLS TE成为路径编排和流量调度的主流手段。网络层是后面第4章的重点这里先记住一个结论底座选型时把网络单独画一层别省。3. 计算与存储池化先把Ceph和虚拟化参数调对再谈高效3.1 IOPS先算账混合池比例与容量规划计算存储池化前第一件事不是装Ceph而是算账。存储规划里最容易翻车的是一上来就问“容量多大”实际生产里IOPS和服务质量往往才是瓶颈。我常用的估算公式是随机IOPS需求约等于业务QPS乘以每个请求的IO次数再乘以2读写比例系数SSD容量则按每日写入量乘以保留天数再乘冗余系数。比如一个在线交易库QPS两万每次事务约4次IO读写比3:1算下来需要约16万随机IOPS这已经不是机械盘能扛的量。算完账再决定混合池比例。我的常见做法是SSD池跑数据库和高频交易类虚拟机HDD池跑备份、文件存储和冷数据。Ceph里可以把两类OSD放到不同CRUSH root下建独立pool避免冷热数据互相干扰。配置示例# 创建SSD池承载高频IO业务 ceph osd pool create ceph-ssd 128 128 ceph osd pool set ceph-ssd crush_rule ssd-rule ceph osd pool set ceph-ssd size 3 # 创建HDD池承载备份和冷数据 ceph osd pool create ceph-hdd 512 512 ceph osd pool set ceph-hdd crush_rule hdd-rule ceph osd pool set ceph-hdd size 3这里size 3表示三副本crush_rule分别指向不同的故障域。PG数128和512不是随手写的是按OSD总数和副本数算出来的具体算法在下一节展开。值得提醒的是SSD池和HDD池的PG数别偷懒用同一个值HDD池的PG通常要更大才能让数据分布更均匀。3.2 Ceph的PG数与CRUSH分布两个公式避开rebalance风暴Ceph集群最常见的故障原因不是磁盘损坏而是PG数规划错误。PG太少会导致单个PG承担过多数据数据分布严重不均PG太多又会让集群的元数据和rebalance开销失控。我习惯用这个公式估算PG总数约等于OSD数量乘以100再除以副本数然后取接近的2的幂。例如100个OSD、三副本100乘以100除以3约等于3333取4096每个pool按容量占比分配。CRUSH map是另一个容易被忽略的地方。默认的CRUSH规则只区分host和rack如果你的机柜里SSD和HDD混插又没有把OSD按磁盘类型放进独立rootCeph会把HDD和SSD当成同一类设备做副本散列导致三副本全落在一块机械盘上。这个坑我在测试环境踩过一次现象是写入延迟时高时低排查了很久才发现副本根本没按类型隔离。解决方法是先给每个OSD打上device class标签再为SSD和HDD分别创建crush rule最后在pool上指定rule。这套操作做完冷热数据才算真正物理隔离。3.3 虚拟化层的三个参数CPU超分、内存预留、后端驱动计算池化的核心是虚拟化层参数。CPU超分比例生产环境我一般控制在1:2到1:4之间关键业务虚拟机用1:1独占超过1:4后CPU的等待时长会明显上涨业务出现莫名其妙的延迟这时候不是加核能解决的得靠监控数据回头调超分比。内存方面不建议超分超过1:1.5而且必须预留足够swap兜底否则宿主机OOM时内核会随机杀QEMU进程整个宿主机上的虚拟机全部陪葬。磁盘和网卡驱动决定了虚拟机的IO上限。qcow2支持快照和压缩但写性能不如raw生产数据库虚拟机我一般直接上raw或全盘预分配的qcow2避免写入时反复分配块。网卡用virtio并开启多队列让每个vCPU对应独立的队列。下面是一段虚拟机XML里的关键配置vcpu placementstatic16/vcpu memory unitGiB64/memory disk typefile devicedisk driver nameqemu typeraw cachenone ionative/ /disk interface typebridge driver namevhost queues4/ /interfacecachenone是避免宿主机页面缓存与客户机缓存双重缓存造成的内存浪费ionative则让QEMU绕过用户态缓冲直接走Linux原生AIO延迟更低。queues4对应的物理网卡需要支持多队列配合ethtool把队列数打开不然虚拟机多核业务还是会被单队列卡住。这四个参数是我接手每个虚拟化集群必查的前四项。4. 数据中心网络BGP路由收敛与SRv6 Policy双SID List切换实战4.1 underlay用EBGP、overlay用EVPN为什么是大型数据中心标配数据中心网络分成两层看underlay解决物理连通性overlay解决租户逻辑隔离。大型数据中心里underlay最常见的是Spine-Leaf架构每台Leaf交换机与所有Spine建立EBGP会话。相比OSPFEBGP的优势在于路由策略控制粒度更细、故障收敛更快而且天然支持等价多路径Leaf故障时流量可以立刻从另一条路径走。Leaf之间不直接建立邻居所有路由都经过Spine反射路由表规模可控。overlay层现在几乎没有悬念地选EVPNVXLAN。EVPN用BGP承载MAC/IP路由虚拟机迁移时新位置通过Type-2路由通告出去老位置撤销路由整个过程对网络设备是透明的。Ceph集群和虚拟机迁移流量在同一条物理链路上跑时光靠QoS不够overlay的设计要保证存储流量不会因为突发穿越Spine导致丢包。这里有一个小技巧存储网络单独建一个VNI并在Leaf出端口打上高优先级队列避免和业务流量抢带宽。4.2 SRv6 Policy的候选路径设计单CP双Slist怎么发跨数据中心互联时DCI路由器之间的流量调度是重头戏。SRv6 Policy把一条业务路径封装成一个PolicyPolicy下挂候选路径候选路径里再挂SID List。最常见的场景是同一个候选路径下配置两条SID List初始两条都下发到设备一条走主用路径一条走备用路径实现主备快速切换。配置片段如下# 数据中心间SRv6 Policy单候选路径双SID List segment-routing ipv6 locator datacenter-dci prefix 2001:db8:100::/48 traffic-engineering policy sr-policy-dci color 1001 end-point 2001:db8:200::1 candidate-path preference 100 segment-list srv6-path-main index 10 sid 2001:db8:100::1 index 20 sid 2001:db8:300::2 segment-list srv6-path-backup index 30 sid 2001:db8:400::3 index 40 sid 2001:db8:500::4这里的逻辑是color 1001标识业务等级end-point是目的路由器地址。候选路径preference 100是优先级两条SID List挂在同一个候选路径下初始同时下发。设备通过SBFD对主用路径做连续性检测主路径丢包或BFD超时后立即把流量切到备份SID List。这种设计好在哪里在于切换只发生在数据平面控制面不需要重新计算路由收敛时间能做到百毫秒级。参数设置上要注意index的步长我习惯隔10留一个余量方便后续在两条SID List之间插入新SID。SID本身是Locator下的前缀不能随意填必须对应设备上已配置的SRv6 SID否则Policy下发后状态会是Down。验证时用display segment-routing ipv6 traffic-engineering policy看Policy状态为Up、active path为主用SID List才算配置成功。4.3 DCI场景的切换参数阈值、回切与端到端验证双SID List能不能真正发挥作用取决于切换参数而非配置本身。SBFD检测间隔设多少决定了从故障到切换的耗时。太短会让链路抖动就触发切换业务频繁被中断太长又失去了快速切换的意义。我一般的起点是检测间隔100毫秒、乘3次超时判定故障也就是约300毫秒完成故障识别。回切则需要额外设置hold-down延时避免主链路刚恢复时因不稳导致来回切换。端到端验证我会用两个手段。一是用ping mesh脚本从每个Leaf分别ping对端数据中心的网关故障注入时观察丢包数和切换耗时二是在DCI路由器上看Policy的active path变化确认流量确实从主SID List切到了备份SID List。只验证通不通是不够的必须验证切换路径是不是你设计的那一条否则复杂度就白加了。5. 云基础架构落地避坑五条血泪经验每条都是事故换来的5.1 热迁移流量把存储网络打爆业务无响应现象某次计划内维护触发批量虚拟机热迁移迁移开始十分钟后所有虚拟机的磁盘IO延迟从个位数毫秒涨到数秒数据库会话大量堆积。 原因热迁移流量与Ceph副本同步流量混跑在同一对物理网卡上迁移突发带宽占满队列存储协议等不到IO确认连锁效应蔓延到整集群。 解决将存储网络和迁移网络拆成独立VLAN和独立物理网卡并在迁移参数里限制最大带宽例如限速500Mbps把批量迁移改为逐台迁、等集群恢复均衡后再迁下一台避免流量叠加。事后我在所有宿主机上加了一条迁移带宽上限虽然单台迁移变慢但再没出现过存储被拖垮的事故。5.2 Ceph PG数估算错误数据rebalance持续三周现象新扩容一批OSD后集群状态一直显示rebalancing部分pool的PG分布极不均匀最大和最小OSD上的PG数差了三倍。 原因扩容时没有按新OSD总数重新计算PG数原PG数相对于扩后的OSD数过小导致数据只能往部分新OSD迁移且永远达不到均衡。 解决按公式重新计算PG数再执行在线调整PG数操作等rebalance完成后观察分布。这次教训让我把PG计算写进了扩容SOP里每次扩容前先做公式校验绝不凭感觉沿用旧值。5.3 SRv6 Policy配置顺序翻车先删后加导致断链现象调整DCI的SRv6 Policy时业务流量中断了大约十几秒监控显示Policy状态从Up变Down再变Up。 原因变更时先删除了旧候选路径再添加新候选路径删除瞬间Policy找不到可用路径直接进入Down状态。 解决所有Policy变更都按“先加后删”执行新路径生效确认Up后再删除旧路径。如果是整段替换可以用配置预编译能力先把新配置写好再原子替换生效。这件事之后我在所有网络变更单里加了一栏“回退方案”每条变更必须写明如何切回。5.4 监控采集间隔太短监控系统成了最大负载现象虚拟机CPU监控曲线出现规律的尖峰排除业务后发现尖峰间隔和监控采集周期完全一致。 原因监控agent每10秒对每台虚拟机做一次CPU和内存采样几百台虚拟机叠加后采集请求本身占用了大量宿主机CPU和网络队列。 解决把常规指标采集间隔放宽到30秒关键业务单独设10秒采样采集方式从逐个请求改为SNMP批量采集或push模式减少轮询开销。监控的目的是发现故障而不是给生产环境制造压力这个边界要守得住。5.5 只测主路径不测回切演练时一切正常故障时回不来现象季度灾备演练时主备切换一切正常一个月后真实故障发生时回切操作却失败业务多中断了半小时。 原因演练只验证了“从主切到备”没有验证“从备切回主”主用路径上的某个资源已被故障期间的流量打满回切后无法承载流量。 解决把回切纳入每次演练的必做项故障注入不仅要测主路径失效还要测备份路径失效与恢复后的回切。现在我的验收清单里固定有一项“切两次”确保往返都能成功。6. 验收不止看Ping通长期稳定性验证与最后一公里的习惯新集群上线不能只在第一天跑通就算结束。我习惯在业务接入前做一次72小时稳定性验证覆盖计算、存储、网络三层的持续压力与故障注入。验收清单核心项如下验证对象验证手段通过标准计算层批量创建/删除虚拟机、热迁移10台迁移期间业务无感知存储层fio随机写72小时记录时延分布P99延迟小于5毫秒网络层连续ping mesh 路由收敛测试故障切换丢包小于3个可靠性拔一块磁盘、重启一台存储节点集群不进入降级状态72小时fio压测命令我一般这样跑fio --namerandwrite --rwrandwrite --bs4k --iodepth32 \ --numjobs8 --runtime72h --time_based \ --output-formatjson --output/tmp/storage-72h.json看结果时不只看平均IOPS重点看P99和P99.9延迟曲线。平均延迟再漂亮只要P99出现长尾业务侧的数据库连接池就会先报警。最后说一个用事故换回来的习惯每次变更后无论多小的改动都要验证回切路径。最贵的一次故障就是只测了主路径没测回切演练时一切正常真实故障来临才暴露回切失败。从那以后我的验收习惯从“测通”变成了“测对”不仅要证明方案能用还要证明方案在故障时能按设计回到预期状态。希望这份清单能帮你少走几步弯路。本文还有配套的精品资源点击获取
返回列表