ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

FusionSphere 3.0虚拟化架构解读:从KVM到资源池的落地实践

FusionSphere 3.0虚拟化架构解读:从KVM到资源池的落地实践 做虚拟化选型那阵子我把市面上主流的技术方案文档差不多翻了一遍。华为FusionSphere 3.0的《基础架构虚拟化解决方案》是其中我读完、做了笔记、后来又重复翻过好几次的一份。如果你正准备搭一套私有云、做服务器资源池化改造或者单纯想弄清楚一套完整的基础架构虚拟化平台内部是怎么分层、怎么协同工作的这份方案值得花时间仔细读。下面我就结合自己实操中的理解把FusionSphere 3.0这套基础架构虚拟化方案里值得抠的细节和落地时的注意点拆开讲讲。1. FusionSphere 3.0的整体定位与设计逻辑1.1 这套方案到底解决了什么问题先说背景。在传统数据中心里业务和物理服务器通常是一对一绑定的。数据库独占一台机器Web服务独占一台机器测试环境再独占一台。结果就是服务器的CPU利用率经常连15%都不到但每台机器都有采购成本、机房空间、耗电和维保开销。真要扩容了又得重新采购、重新装系统、重新部署应用周期按周来算根本跟不上业务节奏。FusionSphere 3.0这一代产品要解决的核心问题就是把计算、存储、网络这三样最基础的数据中心资源全部池化。计算资源抽象成CPU和内存池存储资源抽象成存储池网络资源抽象成逻辑网络池业务以虚拟机为单位按需申请资源。你不再关心这台虚拟机到底跑在哪一台物理机上管理员也只需要通过统一的管理界面就能完成资源分配、回收和调整。和传统模式相比最大的变化是交付时间从“周”缩短到“分钟”利用率也能明显拉起来。这套方案主要适用三类场景第一类是中小企业想自建私有云替代过去“一个应用一台物理机”的旧模式第二类是政企机构的内部IT部门做资源池化改造把分散在各部门的开发测试环境统一收拢第三类是教育、科研机构需要给学生或课题组分批提供可重复创建、可快速回收的实验环境。对于入门级选手来说它最大的价值是让你从整体上理解“虚拟化基础架构”到底由哪些模块构成——这一点比马上动手敲命令更重要。1.2 用三个“平面”来理解整套架构我当时读这份方案时最受益的是它用“计算、存储、网络”三个平面来组织整个虚拟化体系。这个拆分方式直到今天都适用。计算平面负责把物理服务器虚拟化成CPU和内存资源池。FusionSphere 3.0的虚拟化内核基于KVM也就是说计算节点装好Hypervisor之后多个虚拟机共享同一台物理机的CPU核心和物理内存互不干扰。简单说物理机是房东虚拟机是租客KVM负责做“分割产权”的物业公司。存储平面负责把硬盘、SSD或SAN存储阵列的能力抽象成统一的存储资源池。你可以对接传统集中式存储也可以用华为FusionStorage这套分布式存储把计算节点自带的本地硬盘聚合成一个共享存储池。这个思路和后来大家熟悉的vSAN很像本质上是把存储能力从“专属设备”变成“软件定义的资源”。网络平面是多数人最容易忽略、但也最容易出问题的环节。FusionSphere 3.0通过分布式虚拟交换机把物理交换机上的VLAN配置、流量转发能力抽象成虚拟网络资源。虚拟机不再绑定某个固定物理网口而是通过虚拟端口接入逻辑网络跨主机迁移时网络配置可以自动跟随。后面我会专门讲VLAN和VXLAN的处理逻辑这部分在实际部署中踩坑最多。1.3 和VMware vSphere比差异点在哪里读这份方案时我一直在心里拿它和VMware vSphere做对比。不是非要分高下而是通过对比更能看清它的设计取向。对比维度FusionSphere 3.0VMware vSphere虚拟化内核基于KVMLinux生态友好基于ESXi专有内核管理组件VRM主备模式和vCenter类似vCenter Server集中管理存储对接兼容SAN、本地盘支持FusionStorage分布式存储兼容各类SANvSAN单独授权网络虚拟化支持VLAN/VXLAN强调大二层网络VDS分布式交换机体系成熟硬件适配对华为自家服务器、存储、交换机做了深度预集成兼容列表它自己的硬件平台为主授权模式整体方案打包国内项目更灵活按虚拟机/CPU授权价格偏高从我实际接触的情况看FusionSphere比较明显的一个优势是“软硬协同”。同样的部署需求如果选用了华为的服务器和交换机厂商能提供比较完整的兼容清单和现场支持交付效率会高很多。VMware胜在生态成熟、第三方工具链丰富但价格也硬。做选型时先别盯某一项参数要看自己的团队技术栈和硬件存量更偏向哪边。2. 核心组件拆解与资源管理机制2.1 VRM整个资源池的“大脑”FusionSphere 3.0里有一个组件叫VRMVirtual Resource Manager它在整个架构里的角色类似于vCenter在vSphere里的角色。VRM负责集群管理、资源调度、虚拟机生命周期管理和故障切换。没有VRM计算节点只是各自为战的KVM宿主机有了VRM它们才变成一个可以被统一调度的资源池。VRM本身要冗余部署通常采用主备模式。主VRM负责对外提供服务备VRM实时同步状态主节点故障后自动切换到备节点管理面不中断。很多人在部署时为了省两台机器把VRM装在计算节点上这是个很不划算的节省。资源调度本身也是要耗CPU和内存的一旦计算节点负载上来了VRM反而成为瓶颈还拖累节点上的业务虚拟机。我的建议是管理平面单独占用两台低配服务器和计算节点分开稳定性和排障便利性都会好很多。VRM管理的核心对象是集群。一个集群就是一组计算节点虚拟机可以在这个集群内自由调度。创建集群时至少要明确两件事一是DRS分布式资源调度策略是手动还是自动二是高可用策略是否启用。我习惯在生产集群开启自动调度同时限制迁移次数避免负载波动时虚拟机频繁跳来跳去。2.2 计算虚拟化KVM内核与超分策略FusionSphere 3.0的计算虚拟化基于Linux KVM架构虚拟机的创建、启停和迁移都通过Libvirt标准接口来完成这意味着它对Linux生态非常友好。创建出来的虚拟机镜像文件通常采用qcow2格式支持精简置备和快照比原始的raw格式更灵活也更节省空间。这里重点说说资源超分。超分是虚拟化的核心价值之一——它允许物理CPU核数和虚拟CPU总数不成一对一关系。举个例子一台物理机有16个物理线程你可以跑40个只用了1个vCPU的虚拟机这就是CPU超分。内存同样可以超分但有代价。生产环境我一般按这个经验值来定CPU超分率建议控制在1:1到1:4之间。业务是Web服务、开发测试环境可以放宽到1:4如果跑数据库或高频交易这类计算密集型业务老老实实1:1甚至还要为关键业务预留物理核。内存超分率建议不超过1:1.5。内存不像CPU超分太多会导致虚拟机频繁使用swap性能断崖式下降。只要虚拟机一发生内存换页再好的SSD也救不回来。资源控制三件套预留Reserve、份额Share、上限Limit。核心业务一定要设置足够的预留值确保物理资源被抢时不会被饿死上限可以设低一些防止单个虚拟机吃光整个宿主机的资源。很多人在规划时只算“总内存除以单虚拟机内存”完全忽略超分带来的性能风险。虚拟机数量看着上去了一到业务高峰整台物理机都在换页所有人一起卡。超分是工具不是目标。2.3 存储虚拟化和网络虚拟化的落地细节存储这部分FusionSphere 3.0支持三种典型路径纯本地盘、集中式SAN、分布式FusionStorage。做方案时怎么选核心看业务对“共享存储”的需求。虚拟机做在线迁移时源和目的计算节点必须能访问同一份存储不然迁移就无从谈起。本地盘只能做数据盘或非关键业务集中式SAN适合传统核心业务稳定但扩容成本高FusionStorage适合追求横向扩展的场景每加一台计算节点容量和性能跟着线性增长这是它和传统SAN最大的区别。网络虚拟化是方案里篇幅不小的部分也最值得耐心读。它把物理交换机上的VLAN配置、端口属性等抽象成虚拟网络资源虚拟机网卡通过虚拟端口接入逻辑网络。VLAN模式适合中小规模VXLAN模式适合需要大二层网络的场景——比如虚拟机跨三层网络迁移保持原有IP不变化这在传统网络里几乎没法实现。方案里专门提到了分布式虚拟交换机的概念简单理解就是所有计算节点上的虚拟交换机配置统一管理、同步下发管理员只需要在管理界面上配一次整个集群生效。部署时网络规划一定要遵循隔离原则管理网络、存储网络、业务网络必须分开。管理网络跑VRM和计算节点之间的控制信令存储网络跑虚拟机磁盘IO业务网络跑真正的应用流量。三层混在一起一次流量高峰就能把整个平台拖到不可用。如果机房用的是华为三层交换机要记得trunk放通和VLANIF三层接口是两个概念业务VLAN不仅要建VLANIF还要在接入端口上做trunk放通这块配置不对虚拟机通了管理IP但业务网络不通的情况很常见。3. 部署前必做的资源规划与实操步骤3.1 硬件选型和网络隔离怎么规划才稳很多人把虚拟化部署当成“装个软件”来看动手前不做规划装完就后悔。我把该提前确认的事项整理成了一份检查表服务器选型CPU核心数多、内存插槽够、网口数量≥4个。以华为RH2288H双路服务器为例双路E5-2650 v2配合128GB内存是比较典型的虚拟化计算节点配置。关键点是内存通道要插满单根内存容量大但通道少内存带宽上不去性能一样拉胯。网络规划至少划分三套网络分别给管理、存储、业务使用。管理网建议用小网段比如/24的独立VLAN存储网如果走iSCSI或FusionStorage内部通信建议使用独立VLAN并开启巨帧业务网按应用类型继续往下拆分可以用VLAN也可以直接用VXLAN。存储容量先算“可用容量”再算“裸容量”。做了RAID10、开启精简置备之后可用容量会缩水规划时要给快照和备份预留20%左右的余量。别把盘算得满满当当否则快照一打就爆存储。备份策略虚拟化平台本身不做备份但方案文档里对备份有专门要求。部署前就把备份软件和备份存储的位置定好不要等到虚拟机跑起来之后再补。下面是我做容量规划时常用的估算表新手可以直接照着填资源项计算方式示例物理CPU需求虚拟机总vCPU数 × 平均负载预期 ÷ 超分率60个vCPU ÷ 4倍超分 ≈ 15个物理线程建议配置16线程内存需求虚拟机总内存规格 ÷ 内存超分率 管理开销如80GB可用 ÷ 1.5 ≈ 需要54GB物理内存考虑Hypervisor约2GB和管理组件开销存储容量单机虚拟磁盘大小 × 虚拟机数量 快照备份预留20%100GB × 30台 3TB预留后至少4TB再考虑RAID损耗IOPS需求每台虚拟机的峰值IOPS × 虚拟机数量2000 IOPS × 20台 4万IOPS至少要上万转SAS或SSD这套表虽然粗糙但用来做前期沟通和预算完全够了。后面性能不行回来查的第一站多半就是这里算得太乐观。3.2 安装部署的六个关键步骤把安装过程总结成六步照着做基本不会乱规划并记录所有IP地址和管理账密。VRM主备节点各规划一个IP每个计算节点再规划一个管理IP另外预留存储网络和业务网络的地址段。拿张表把所有信息记下来后面排查全靠它。安装计算节点操作系统。FusionSphere会把虚拟化所需的Hypervisor和组件打包进安装包计算节点在安装时直接写入基础系统这一步需要PXE或者通过部署工具批量完成。配置部署工具并执行安装。把规划好的拓扑、IP和存储信息填进部署工具工具会基于SSH执行自动化安装脚本。安装完成后通过管理界面复查各组件状态确认VRM主备正常、Agent在线。创建资源池和集群。把所有计算节点加入同一集群启用DRS和HA相关策略。注意先加节点再建资源池加节点时可以先用维护模式避免业务迁移打断。创建存储池。对接SAN存储时要做LUN映射和格式化对接FusionStorage时完成存储集群初始化。存储池创建完后必须先在管理界面上能看到“正常”状态再继续下一步。创建网络。把物理交换机的VLAN信息同步到虚拟网络创建VXLAN池再预设安全组规则。网络创建完用两台测试虚拟机做互通验证不要一上来就跑业务。这套流程我反复走了很多次最深的体感是步骤本身不难难的是“规划动作”做没做扎实。IP写错一位、存储LUN没有正确映射给计算节点、交换机端口没放通VLAN这三类问题在安装阶段最耗时。3.3 创建业务虚拟机时的参数参考真正创建虚拟机的时候很多人习惯界面填完就点确定连几个关键参数都没细看。这里给一套我自己常用的参考配置直接照抄也能用但最好理解一下为什么这么设。比如建一台跑Web业务的CentOS 7虚拟机规格2 vCPU4GB内存空闲业务后续要扩容的话CPU预留建议设为0份额选默认上限可以设高一点不影响它突发性能。系统盘40GBqcow2精简置备总线选virtio。virtio是半虚拟化驱动吞吐比模拟的e1000和IDE好得多。如果镜像里没装virtio驱动界面填了SCSI控制器也起不来这是新手最容易忽略的盲区。数据盘100GB厚置备或精简置备都行。核心业务用厚置备减少运行时分配的IO开销测试环境用精简置备省空间但要注意建立快照时的空间膨胀。网卡一块业务网卡连接之前创建的业务网络接入安全组时放通80端口和443端口。网卡队列数建议调整为4高流量下能明显改善吞吐。如果是跑Oracle或MySQL这种数据库虚拟机配置要反过来做内存不允许超分必须预留和规格一致的内存值CPU超分压到1:1存储使用独立SCSI控制器和多路径软件配合避免单链路IO瓶颈。虚拟化不是不能跑数据库前提是你得把这些细节抠到位。4. 常见故障排查与运维避坑实录4.1 主机加不进集群从哪里开始查计算节点加不进集群也就是管理界面上“增加主机”一直处于失败状态是部署阶段最高频的问题之一。我总结了一套固定排查顺序大家可以直接复用。第一步确认SSH连通性。管理工具和计算节点之间的通信依赖SSH先手工SSH过去测试密码进不去后面的流程根本走不通。第二步检查DNS和hosts解析。FusionSphere内部组件对主机名的解析非常敏感主机名解析到了别的IPAgent注册就会乱。第三步校对所有节点的时间同步。这个坑特别隐蔽——节点时间偏移超过一定阈值证书验证直接失败报错却常常显示成密码错误。部署前就把所有节点统一配置好NTP省得排查半小时才知道是时间问题。第四步确认管理端口没有被防火墙拦截。很多服务器自带firewalld默认不放行FusionSphere需要的管理端口先临时停掉防火墙确认问题再按最小化原则放行端口。这套顺序我在现场百试百灵。有一次一个节点折腾了快两个小时最后发现是服务器BIOS时间慢了五分钟把NTP校正一开立即恢复正常。基础设施上的小偏差在虚拟化这种多组件协作的架构里会被放大成“莫名其妙的问题”。4.2 虚拟机磁盘性能差先别急着怪存储虚拟机跑起来之后性能慢用户第一反应都是“存储太差”。但实际排查下来存储背锅的情况不到一半。这里有两条独家的排查经验。第一条用top或htop先看CPU和内存。很多时候性能瓶颈是CPU争抢或内存超分导致的swap而不是磁盘本身慢。你会发现系统显示磁盘读写很低业务却卡成狗这大概率就是内存换页导致的应用停顿。遇到这种情况优先把部分虚拟机迁走降低宿主机的内存超分率比你扩容存储有用得多。第二条用iostat看await和util指标。await是IO请求平均等待时间util是磁盘利用率。如果await高但util不高通常是链路问题——比如存储网络拥塞、多路径没配好、交换机端口双工模式错误。检查计算节点和存储之间的物理链路确认多路径软件激活再看交换机端口有没有协商成千兆。如果util已经到了90%以上才是真的存储性能不足考虑换SSD或加FusionStorage节点。虚拟化环境里一个常见误区是“动不动就扩资源”。资源越扩越宽硬件成本越来越高但性能问题往往用几个命令就能定位到真正的根因。我也是从踩坑中学会先看层再看盘先看系统再看存储。4.3 快照、迁移与HA三个高风险操作要格外小心快照、在线迁移、高可用故障切换是虚拟化平台三个看起来“自动化”很高的能力但每一样都用好了才能不出事故。快照操作上回滚前必须先确认快照链深度和空间余量。快照链太长回滚会很慢甚至失败。快照存储空间不足快照会自动挂起虚拟机业务直接中断。我给生产环境的配置是单台虚拟机最多保留两个快照快照总大小不超过系统盘容量的30%。在线迁移操作上共享存储是前提。没有共享存储迁移过程实际上还涉及存储迁移速度慢而且容易出问题。迁移过程中存储网络带宽会被占满所以避开业务高峰做迁移是基本常识。另外迁移完成后别忘了验证网络连通性VXLAN隧道如果状态异常虚拟机IP不变但网络就是不通信。高可用故障切换操作上HA触发后虚拟机自动在其他节点重启这听起来很棒但要注意重启后的业务恢复逻辑。数据库这类需要特定启动顺序的应用如果HA把所有虚拟机一并拉起等于同时启动几十个数据库实例反倒把节点压垮。建议按业务优先级设置HA的重启策略核心数据库单独配置冷启动多个实例时要考虑错峰。5. 向华为学到的几点与经验沉淀5.1 软件与硬件协同的价值被低估了读完FusionSphere 3.0这套方案我最大的感受不是某个技术点有多强而是产品化思路的完整性。它明确告诉你这一套自己的服务器、存储、交换机组合在一起是经过预集成验证的版本兼容性已知问题处理路径明确。这相当于买了一套原装整车而不是自己到汽配城拼装。对中小企业做私有云来说这意味着交期和风险大大降低。自己做开源方案堆叠当然可以但每个版本的兼容性验证、补丁管理、故障联动全部要自己扛。如果团队没有专门的虚拟化运维人员我更建议选这种软硬一体的方案。任何架子前期搭起来容易后期稳定运维才见真章。5.2 给虚拟化从业者的几条实操建议结合FusionSphere 3.0这套方案和实际运维经验我想给准备走虚拟化基础架构这条路的同行留几条实在话。第一把虚拟化当成系统工程来学不要只盯着管理界面。网络交换、存储链路、Linux系统这三块基础不牢靠你连排查问题的抓手都没有。第二文档是最好的交付物。装完平台之后把IP规划表、VLAN表、存储映射表、备份策略全部整理成文档存好半年后你会感谢当时的自己。第三容量管理是长期工作不可能一劳永逸。定期看宿主机CPU、内存、存储增长曲线提前规划扩容量比等到报警再去扩容舒服太多。第四有条件就多花时间做POC验证别信PPT上的性能数字自己压测一轮心里才有底。回头再看这份《基础架构虚拟化解决方案》它不再只是一份厂商文档而是一套可以被反复借鉴的架构方法论。我后来做的很多资源池设计、网络划分和容量规划底子都来自于当时反复读它的那几周。如果你正处在要搭私有云或正在被虚拟化排障折磨的阶段希望这篇解读能让你少踩几个坑也少走几段我走过的弯路。
返回列表