
干了几年虚拟化运维FusionCompute 6.x到8.8都用过其实配置虚拟网络这块底层逻辑和VMware的分布式交换机很相似但FusionCompute走的是华为自己的管理面和数据面分离那套。好多新手上来就急着点“创建分布式交换机”结果网络规划一塌糊涂后面虚拟机要么上不了网要么广播风暴排查起来特别痛苦。这篇就把FusionCompute 8.8配置虚拟网络从头到尾捋一遍从最核心的概念到实操步骤最后是排障经验一次性讲透。1. 先搞懂FusionCompute里网络是怎么分层的在动手点鼠标之前我建议先花二十分钟把架构图在脑子里过一遍。FusionCompute的逻辑架构分两层底层是CNACompute Node Agent节点就是跑虚拟化的物理服务器上层是VRMVirtual Resource Manager负责管理整个集群包括网络资源的调度。虚拟网络这套东西就是在这两层之间实现的。1.1 三种业务平面的划分这是规划的第一步也是很多人栽跟斗的地方。FusionCompute里通信平面分三种管理平面负责VRM和CNA之间管理指令的交互走的是带内管理网络一般是单独划分的VLANIP段独立。误以为管理平面可以和业务平面混用那是给后面埋雷。存储平面应对虚拟化环境里虚机磁盘的读写流量和热迁移的数据传输。对带宽和延迟极其敏感通常会用独立的物理网卡甚至万兆网卡承载避免和业务流量互相挤占。业务平面承载虚拟机之间的互访和对外通信流量就是我们等下重点要配置的部分。有个实操原则功能隔离优先于性能复用。物理网卡资源紧张时管理平面可以和存储平面共用但业务平面尽量避免跟它们混跑因为一张千兆网卡承载业务流量时管理指令的延迟会显著升高极端情况下VRM会误判CNA节点心跳超时导致虚拟机HA高可用误触发迁移不确定迁移规则是否会自动执行的话至少监控页面上会刷红色告警非常吓人。1.2 DVS和普通虚拟交换机的区别FusionCompute 8.8里的虚拟网络体系里最关键的抽象就是DVSDistributed Virtual Switch分布式交换机。直接理解成整个集群的所有物理宿主机上当做一个大交换机来用虚拟机只要挂载到这个大交换机的端口上就能和任意其他宿主机的虚拟机直接二层通信。一开始不理解分布式交换机会有个疑问“为什么不能每台宿主机各建各的交换机”如果你这么做过就会发现每台宿主机建一个独立的虚拟交换机跨宿主机通信时只能通过物理网络走三层路由二层广播域被割裂。对于虚拟机迁移的场景源主机和目标主机必须接入同一个二层网络否则业务IP不可达。DVS的价值就在这里逻辑上一台交换机横跨所有CNA节点无论虚拟机的亲和性怎么调度、怎么迁移网络的“形状”是不变的。2. 虚拟网络配置前的规划工作直接上手创建端口组之前动动笔把规划表写出来。这部分决定了后续是顺利还是反复改配置我见过太多集群上线后又重新划分VLAN的案例那叫一个折腾。2.1 VLAN划分建议怎么划分广播域和故障域思路上基本是通用的。管理VLAN承载FusionCompute管理面流量一个集群内建议用同一段比如VLAN 100IP段独立。业务VLAN承载虚拟机业务流量如果有多个业务系统建议按系统隔离比如OA系统VLAN 200、ERP系统VLAN 210。存储VLAN如果存储和业务在同一个物理网络上务必单独划分VLAN。这里有一个细节经常被忽略VLAN ID 0。在FusionCompute里VLAN 0代表不做VLAN Tag封装就是普通Trunk上说的Access模式。如果你的物理交换机端口划的是专门的业务Trunk允许特定VLAN通过那么端口组类型里一定不能选VLAN 0一定要选明确的VLAN号否则虚拟机发出的包会被物理交换机打上PVID封装结果跟虚拟机配置不匹配二层直接不通。2.2 物理网卡与上行链路的绑定策略FusionCompute的CNA节点上插了好几块网卡这些网卡未来要映射到DVS的上行链路uplink。规划多少根上行链路比较合适我的经验是管理平面至少2根物理网卡做vSwitch的链路聚合绑定避免单点故障。存储平面如果走IP网络建议独立网卡至少万兆。业务平面至少2根物理网卡做绑定可以根据实际流量决定是否聚合带宽。这些规划其实跟物理交换机的端口配置强相关。比如你准备让业务平面走端口组所在的VLAN那物理交换机上对应的端口就要配成Trunk口并在Port VLAN里放行相关VLAN。如果交换机端口是Access模式且VLAN配死了那上行链路中的虚拟机流量就只能在那个固定的VLAN里跑其他VLAN的包全被交换机丢弃。2.3 端口组命名规范命名这件小事越早统一越好。推荐格式用途_网络类型_VLANID例如业务网_普通_VLAN200、迁移网_存储_VLAN300。包括DVS本身也建议统一前缀比如DVS-Business、DVS-Storage。理由很简单问题排查时要在成堆的端口组里快速定位名字有规律能省半个小时的排查时间。3. 实操创建分布式虚拟交换机的完整流程规划做完了下面就是动手环节。讲一下FusionCompute 8.8在Web管理界面里创建DVS、绑定上行链路、创建端口组的全过程我尽量把每个关键步骤为什么这么做说清楚。3.1 登录并打开网络资源池在浏览器输入https://VRM_IP:端口号比如https://192.168.1.10:8443登录FusionCompute管理界面有些版本界面是FusionCompute Web Platform注意区分。登录后导航到资源池- 选择对应的集群 - 点击集群名进入详情 - 找到网络页签。这个网络页签下会列出已创建的DVS和普通交换机8.8版本默认展示所有CNA节点上的虚拟交换机。如果是全新集群这里一般只有系统自带的“default”交换机用途是管理面业务网络需要手动新建。3.2 创建DVS并理解上行链路的概念在“网络”页签里点击“创建分布式交换机”。需要填写以下关键参数名称和描述按照规划填写如DVS-Business。交换机类型选择分布式交换机。普通交换机在FusionCompute里也有但只适用于单CNA场景或者临时排查集群化生产环境一律用DVS。网络类型如果要跑VLAN业务流量就选“VLAN网络”VXLAN或其它大二层隧道模式后面再选普通场景选VLAN即可。上行链路通常是迁移前的最大难点这里要选择绑定到该DVS上的物理网卡。创建向导的高潮往往是在选“上行链路”环节。所谓上行链路就是这个分布式交换机在每台CNA物理主机上使用的物理网卡接口。比如集群有3台CNA节点每台有两个物理网卡eth0和eth1规划eth0走业务流量eth1走管理流量。那么在创建DVS-Business时上行链路绑定就要选择每台CNA上的eth0。注意需要确保3台CNA的eth0都接入同一台物理交换机且放行了同样VLAN否则同一DVS下不同CNA之间的二层互通会出问题。这里还有个问题创建DVS时选择物理网卡绑定后可能需要使CNA主机进入维护模式才能操作或者主机显示未激活状态。我的建议是首次配置网络时先不要让CNA主机处于业务承载状态否则在绑网卡的瞬间该主机上已有的虚拟机网络会闪断。如果必须在线操作建议通过“添加/移除上行链路”的方式逐个热添加不要一次性移除主用网卡。注意DVS创建完成后如果绑定上行链路时提示“主机当前状态不支持该操作”多半是CNA节点的主机没有纳入集群管理或者主机已有非DVS的交换机占用了该物理网卡。先去“计算资源”检查主机状态是否正常再回到网络页签操作。这是新手最容易踩的坑。3.3 在DVS下创建端口组DVS创建好了现在需要在这个大交换机里划分端口组。端口组就是DVS的一个端口容器虚拟机的虚拟网卡要接到这个容器上才能获得网络配置。操作步骤在DVS详情页面点击创建端口组。关键参数名称按规划命名如VM-Business-VLAN200。类型VLAN类型。这里有个选项“VLAN”和“VXLAN”普通业务选VLAN。VLAN ID填写200对应规划里的业务VLAN。端口组用途如果是给虚拟机提供普通通信保持默认即可如果是给DHCP服务或管理面用的需要根据不同用途区分。创建完成后DVS下就会多一个端口组。这个端口组就是虚拟机将来接入网络的“入口网线插口”。多个端口组可以同时存在只要VLAN ID不同就相当于在同一个DVS上切分出了多个广播域。3.4 绑定上行链路之后再回头检查这里有个容易被忽略的关键点创建DVS时你绑定了上行链路但每个CNA主机上的该物理网卡是否真的“激活”了需要去确认。在DVS详情页查看“上行链路列表”里面会显示每台CNA节点对应的物理网卡的状态。确保状态是“正常/激活”并显示了链路速率如10000Mbps这代表虚拟网络和物理网络已正式打通。如果显示“未激活任务”大概率是主机未执行绑定任务或者CNA节点上的网络服务异常。可以尝试重启CNA主机上的network服务但这种操作应该在低峰期做。4. 虚拟机接入虚拟网络的实操步骤DVS和端口组都建好了接下来就是把虚拟机接入这个虚拟网络。这部分相对简单但也有几个细节很容易踩坑。4.1 创建虚拟机时绑定端口组在“计算资源”- 虚拟机列表里创建虚拟机或者对已有虚拟机编辑配置。在“网络”配置部分选择之前创建的端口组VM-Business-VLAN200。“网卡类型”默认是virtio性能较好一般选择virtio即可如果操作系统里面没有virtio驱动启动时会识别不到网卡此时可以换成e1000保证兼容性优先。网卡数量按需配置不要一次性加4块网卡很多操作系统默认只启用了第一块网卡多出来的网卡有时候会因为MAC地址和操作系统配置冲突导致网络异常。4.2 虚拟机操作系统内的网络配置端口组绑定完成后进入虚拟机操作系统里配置IP。这里要分情况Linux虚拟机通常在网卡配置文件里设置/etc/sysconfig/network-scripts/ifcfg-eth0或者Ubuntu的netplan。注意设置ONBOOTyes然后重启网络服务。Windows虚拟机进入网络适配器里配置IP地址和网关。实操中经常遇到的现象是虚拟机绑定端口组VLAN 200成功系统内IP配置192.168.200.5/24网关192.168.200.1但ping不通网关。最常见原因之一就是DVS的下行口绑了物理网卡但物理交换机对应Trunk端口没有放行VLAN 200。虚拟机的报文带VLAN Tag 200出去后到物理交换机上直接被丢了表现就是虚拟机物理链路连通但三层不通。4.3 连通性验证三板斧配置完网络不要急着跑到业务侧去验证先做基础三连测在虚拟机内ping同网段的另一个虚拟机或网关地址验证二层和三层的连通性。在管理界面的DVS详情里找到该虚拟机的虚拟网卡确认该网卡的状态是“已连接”。在CNA节点上使用virt-storage-report之类的命令或网页检查主机网络负载确认虚拟网络流量确实经过预期的物理网卡。记住这个测试逻辑虚拟网络配置的好不好不能只看虚拟机本身IP能否通而要拉通整体链路去验证。这里再补充一个8.8特性部分版本还支持在虚拟网络详情里直接发起Ping测试到端口组下的某个IP非常方便不用每次登录虚拟机敲命令行。如果版本不支持就老老实实登录虚机测试。5. 常见问题与排查技巧实录配置过程中和配置完成后总会遇到各种问题有些问题很经典这里直接整理成排查速查表。5.1 虚拟机显示“网络已断开”或“无网络”先排查两层虚拟网卡是否已经正确连接在虚拟机的“设备列表”里确认虚拟网卡的“连接”状态是勾选的。有时候虚拟机克隆出来后网卡默认是断开状态。检查DVS上行链路状态确认该虚拟机所在CNA节点的物理网卡是否处于正常激活状态。如果该CNA节点的物理网卡被意外移除或者物理链路断开虚拟网络就会“通而不通”。5.2 VLAN间通信失败phy交换机Trunk配置问题这是最常见场景同VLAN内的虚拟机互通没有问题但VLAN 200的虚拟机ping不通VLAN 210的虚拟机甚至ping不通网关。排查链路看虚拟机的VLAN ID确认端口组VLAN ID正确虚拟机的流量确实是带对应Tag出去的。看物理交换机配置找到对应CNA节点的物理网卡接入交换机端口检查端口是否为Trunk模式并放行了VLAN 200和210。看三层网关跨VLAN通信必须经过三层网关物理交换机、防火墙或路由器处理。确认网关设备上有对应VLAN接口且地址配置无误。提示如果确认物理交换机的Trunk配置正确虚拟机依然不通检查端口组的“端口安全”设置。FusionCompute某些版本默认开启了端口安全的MAC学习限制多个虚拟机的虚拟网卡MAC被交换机口学到但限制允许数只有1时只有一台虚拟机可以通信其他虚拟机流量被丢弃。这在虚拟机批量创建场景特别容易出现改成“允许所有MAC”或提高允许数量就好。5.3 虚拟机跨CNA迁移前网络正常迁移后网络不通这个场景的特征虚拟机在CNA-A节点上一切正常迁移到CNA-B节点后网络就彻底不通了。排查方法确认CNA-B节点是否也绑定了正确的DVS上行链路。DVS是分布式交换机理论上所有CNA节点都应绑定相同的上行链路配置如果CNA-B的物理网卡绑定错了比如绑到了管理平面虚拟机的流量就发到了错误的物理网络。确认目的CNA节点的物理网卡所接交换机的VLAN放行是否正确。经常是CNA-B的网线插到了另一个交换机的Access口而那个口只放行了管理VLAN业务VLAN流量全被丢弃。5.4 网络性能不均衡或出现广播风暴有时配置好虚拟机后网络慢到怀疑人生。抓包看流量都是广播。排查思路检查端口组的VLAN划分是否合理同一广播域内虚拟机数量是否过多。广播域内的数量建议不要超过200台性能瓶颈明显需重新规划VLAN。检查物理交换机的生成树协议配置。如果物理交换机端口连接的是CNA节点务必开启STP生成树协议同时正确配置边缘端口防止环路产生广播风暴。检查有没有虚拟机开启了Windows的“网络桥接”或Linux的网桥这一块很容易形成二层环路。一旦发生DVS下所有虚拟机的网络都会雪崩。5.5 端口组成员变更后不生效用户反馈给虚拟机新增一块网卡绑定到另一个端口组后虚拟机内始终看不到这块网卡。原因通常是操作系统内没有正确加载virtio驱动或者虚拟机操作系统的PCI映射顺序没有刷新。解决办法先关机再开机不是重启让虚拟机的PCI设备重新扫描。如果还是不行把网卡类型从virtio改成e1000进入系统后确认能看到网卡了再改回virtio并安装驱动到最新版本。6. 配置完毕后的日常维护心得DVS和端口组配置完成后并不是一劳永逸日常维护上还有几件事值得持续关注定期检查上行链路状态如果物理网卡老化或光模块异常链路由万兆降为千兆DVS不会主动告警但业务流量一上去就切换链路需要定期检查每台CNA的上行速率。备份网络配置FusionCompute支持导出集群的网络配置文件。建议在每次改动网络架构后都导出一份配置备份存档后续恢复集群时能省不少时间。监控IP和MAC映射尽量使用IP/MAC绑定DHCP静态绑定或者虚拟机用的固定MAC避免因克隆虚拟机导致MAC地址冲突造成网络时通时断。FusionCompute 8.8的虚拟网络配置从DVS创建到上行链路绑定再到端口组建一套组合拳下来其实熟练了十分钟就能搞定。但真正考验经验的是在规划阶段就把VLAN、物理网卡、交换机Trunk这些杂七杂八的事情理清楚。我个人习惯是先把表格画出来再动手点配置。这行干久了你会发现所有网络故障最后排查出的根因多半都是规划阶段埋下的隐患。