ESXi与物理交换机静态链路聚合配置过程中的小陷阱
作者:陆斌
文章来自微信公众号:平台人生
内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响到虚拟机的运行。本文对其中的原理进行了分析。
链路聚合(link aggregation)是将多个物理端口绑定为单一逻辑组的行为。在日常应用中,链路聚合的配置模式有两种:静态模式和动态模式。动态聚合的链路聚合,即大名鼎鼎的LACP,不再多做介绍,这里我们主要聊聊静态模式的链路聚合。静态模式,顾名思义,配置即生效,没有协商,聚合组创建之后立刻显示为“启动”状态,即使线路另一端的对应端口没有正确配置,也依然为“启动状态”,就是这么任性。
当我们配置vSphere ESXi主机虚拟标准交换机(VSS)时,如果采用了双网卡绑定,并想使用“基于IP HASH 哈希的路由”这一负载平衡策略,必要条件是——与ESXi主机上行链路相连的物理交换机必须配置静态模式的链路聚合。只有物理交换机配置了链路聚合,ESXi主机VSS网卡绑定使用的“基于IP HASH哈希的路由”负载平衡策略才能够将网络流量均衡的分配到两块物理网卡,实现上行链路网络流量均衡和上行物理链路冗余。如果要问为什么不配置动态模式的链路聚合,原因很简单,虚拟标准交换机(VSS)不支持LACP协商,我们的选择只有一个——静态模式的链路聚合。

图1.基于IP哈希的路由负载均衡策略
图2. ESXi与物理交换机静态链路聚合配置示例
一切配置就绪,总得测试一把,按照正常情况,链路聚合组中的一个端口失效后,网络流量应该会发生故障切换,那么从ESXi这边看,怎样才能使链路聚合组中的一个端口失效呢,我们很快会想到如下办法:down网卡(使用命令esxcli network nic down –n vmnicX)、从虚拟交换机移除网卡。当我们进行上述两个操作时,会发现物理交换机上与被down掉或被移除网卡对应的端口并没有失效,端口状态依然为UP,流量也没有发生故障切换,这是怎么回事?

图3.从虚拟交换机移除网卡
原来,一切就源于“静态模式”链路聚合。在配置静态模式链路聚合后,物理交换机端检测聚合端口是否生效,是通过链路的物理状态,即电信号,只要链路的电信号存在,端口即被认为是UP状态,而不管对端有没有正确配置。由此,我们可以得出如下分析:
(1)当down掉ESXi上的一块网卡时,如果网卡的驱动程序不能切断网卡的电信号,那么上联物理交换机并不会感知到相连对端虚拟交换机聚合组中有成员被down掉,还是继续从被down掉网卡对应的端口发送数据,不会发生故障流量切换。
(2)当从虚拟交换机移除网卡时,该网卡只是不再被ESXi使用,但是其电信号依然存在,上联物理交换机并不会感知相连对端虚拟交换机聚合组中有成员被移除,还是继续从被移除网卡对应的端口发送数据,也不会发生故障流量切换。
通过以上的分析可以看出,在配置静态链路聚合后,如果要使聚合组中的成员失效,必须要切断其对应物理链路的电信号,否则物理交换机就会认为相应端口在聚合组中的状态为UP,不会发生故障流量切换。这就是我们发现的ESXi与物理交换机静态链路聚合配置过程中的小陷阱。
在发现以上“小陷阱”后,我们又在多种型号服务器和物理交换机组合上对拔网线、down网卡、从虚拟交换机移除网卡这三种操作进行了测试,得出了以下结论:
(1)拔网线,能够保证使物理交换机静态链路聚合组中的成员状态为Down,发生故障流量切换。
(2)down网卡,与服务器使用的网卡型号和驱动程序相关,如果网卡的驱动程序在执行down网卡操作时能够切断网卡的电信号,那么就可以使物理交换机静态链路聚合组中的成员状态为Down,发生故障流量切换;否则无法发生故障流量切换。
(3)从虚拟交换机移除网卡,物理交换机始终会认为相应的物理链路电信号正常,不会发生故障流量切换。
知道了以上小陷阱后,如果我们的环境中配置了静态链路聚合,在进行down网卡和从虚拟交换机移除网卡的操作时,就要小心了。如果有重要的虚拟机在运行,且上行链路配置了静态链路聚合,强烈建议您不要轻易进行down网卡和从虚拟交换机移除网卡的操作,以防发生不测。
ESXi与物理交换机静态链路聚合配置过程中的小陷阱的更多相关文章
- ENSP静态链路聚合实验配置要点及实例
链路聚合分为:静态链路聚合.动态链路聚合链路聚合的负载分担模式:对于二层数据流,系统会根据MAC地址(源mac地址和目的mac地址来计算),而对于三层数据流则会根据ip地址来进行负载分担计算. 静态链 ...
- H3C交换机端口链路聚合
H3C交换机端口链路聚合 以太网链路聚合 -- 以太网链路聚合配置命令 -- lacp system-prioritylacp system-priority命令用来配置系统的LACP优先级.undo ...
- [CISCO] 交换机间链路聚合端口聚合
[CISCO] 交换机间链路聚合端口聚合 一.Introduction 端口通道( port channel ) 是一种聚合多个物理接口 ( that ) 创建一个逻辑接口.你可以捆扎( bundle ...
- OGG "Loading data from file to Replicat"table静态数据同步配置过程
OGG "Loading data from file to Replicat"table静态数据同步配置过程 一个.mgr过程 GGSCI (lei1) 3> view p ...
- 菜鸟帮你跳过openstack配置过程中的坑
一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...
- 菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]
一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...
- CAS SSO:汇集配置过程中的错误解决方法
本教程为gevin.me原创文章,转载请注明: CAS SSO:配置过程中的错误解决方法 | Gevin’s Blog 本文将收集在配置CAS SSO遇到的所有错误,希望对大家有帮助,也方便下次搭建的 ...
- Redis配置过程中的问题
记录一下配置过程中的坑~~ 当Redis在服务器上安装完成后,get.set没有问题了,接下来在程序中使用看看... 首先 在配置文件redis.conf中,默认的bind 接口是127.0.0.1, ...
- springmvc配置过程中遇到的一些问题总结
springmvc配置过程中遇到的一些问题总结 1.配置tomcat过程中的错误: 2.配置web.xml中DispatchServlet报红(配置好已有依赖条件下) 解决的办法: 因为新添加依赖,m ...
随机推荐
- java:ssh连接服务器,实现本地文件上传和下载
1.连接至服务器:ssh hp@10.10.17.16 -p 5555 下载文件:scp -r hp@10.10.17.16:/ccc(服务器路径,文件夹下所有文件) /path(本地路径) ...
- JWT With NetCore WebApi
1 什么是JWT? JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象 ...
- 怎样将DataGrip连接到MS SQL Server?
DataGrip支持几乎所有主流的关系数据库产品,如DB2.Derby.H2.MySQL.Oracle.PostgreSQL.SQL Server.Sqllite及Sybase等,并且提供了简单易用的 ...
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>
前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...
- 【神经网络与深度学习】YOLO windows 配置《Darknet配置》
作者配置时的环境 visual studio 2013 显卡 GTX 960M CUDA 7.5 OpenCV 2.4.9 pthreadpthread 下载地址 YOLO官网 [http:// ...
- c++ string详解 assign
assign方法可以理解为先将原字符串清空,然后赋予新的值作替换. 返回类型为 string类型的引用.其常用的重载也有下列几种: a. string& assign ( const stri ...
- Macaca环境搭建(一)----windows系统macaca安装
一.安装JDK, 1.官方网站:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- 牛客小白月赛14 -A (找规律+除数取模)
题目链接:https://ac.nowcoder.com/acm/contest/879/A 题意:有n个城市,编号1~n,k天,第一天位于城市1,要求最后一天在城市1,且相邻两天不在同一个城市,求方 ...
- RPC基本原理
RPC非常重要,很多人面试的时候都挂在了这个地方!你要是还不懂RPC是什么?他的基本原理是什么?你一定要把下边的内容记起来!好好研究一下!特别是文中给出的一张关于RPC的基本流程图,重点中的重点,Du ...
- Java基础(五)
方法概述 方法的定义格式 什么是方法?方法就好像是一个工厂. 如奶牛场 原料:奶牛,饲料 产出物:牛奶,各种奶制品 程序当中的方法 参数(原料):进入方法的数据 返回值(产出物):从方法中出来的数据 ...