作者:陆斌
文章来自微信公众号:平台人生

内容简介: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与物理交换机静态链路聚合配置过程中的小陷阱的更多相关文章

  1. ENSP静态链路聚合实验配置要点及实例

    链路聚合分为:静态链路聚合.动态链路聚合链路聚合的负载分担模式:对于二层数据流,系统会根据MAC地址(源mac地址和目的mac地址来计算),而对于三层数据流则会根据ip地址来进行负载分担计算. 静态链 ...

  2. H3C交换机端口链路聚合

    H3C交换机端口链路聚合 以太网链路聚合 -- 以太网链路聚合配置命令 -- lacp system-prioritylacp system-priority命令用来配置系统的LACP优先级.undo ...

  3. [CISCO] 交换机间链路聚合端口聚合

    [CISCO] 交换机间链路聚合端口聚合 一.Introduction 端口通道( port channel ) 是一种聚合多个物理接口 ( that ) 创建一个逻辑接口.你可以捆扎( bundle ...

  4. OGG "Loading data from file to Replicat"table静态数据同步配置过程

    OGG "Loading data from file to Replicat"table静态数据同步配置过程 一个.mgr过程 GGSCI (lei1) 3> view p ...

  5. 菜鸟帮你跳过openstack配置过程中的坑

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  6. 菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  7. CAS SSO:汇集配置过程中的错误解决方法

    本教程为gevin.me原创文章,转载请注明: CAS SSO:配置过程中的错误解决方法 | Gevin’s Blog 本文将收集在配置CAS SSO遇到的所有错误,希望对大家有帮助,也方便下次搭建的 ...

  8. Redis配置过程中的问题

    记录一下配置过程中的坑~~ 当Redis在服务器上安装完成后,get.set没有问题了,接下来在程序中使用看看... 首先 在配置文件redis.conf中,默认的bind 接口是127.0.0.1, ...

  9. springmvc配置过程中遇到的一些问题总结

    springmvc配置过程中遇到的一些问题总结 1.配置tomcat过程中的错误: 2.配置web.xml中DispatchServlet报红(配置好已有依赖条件下) 解决的办法: 因为新添加依赖,m ...

随机推荐

  1. 安装VMTool

    一.       安装VMTool 开启虚拟机,然后在VMware上选虚拟机->安装VMTool 如果提示光驱被占用就先用root登录 在命令行中挂载光盘   #mount /dev/cdrom ...

  2. git 提交项目到远程仓库,简单实现忽略 node_modules文件

    在项目根目录中创建 .gitignore文件 在文件中添加你要忽略的文件 .DS_Store node_modules /dist # local env files .env.local .env. ...

  3. LeetCode.1128-等价多米诺骨牌对的数量(Number of Equivalent Domino Pairs)

    这是小川的第394次更新,第428篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第259题(顺位题号是1128).给定多米诺骨牌列表,当且仅当(a == c且b == d ...

  4. 完全理解js中的&&和||

    阅读代码时对一行代码很困惑 step > max_step && (step = min_step); 查阅资料后发现它等价于 if (step > max_step) { ...

  5. volatility 命令

    https://blog.csdn.net/chanyi0040/article/details/100956582 表格 1 Volatility支持的插件列表 插件名称 功能 amcache 查看 ...

  6. python控制流 -- if、for、while、range()、sys.exit()

    1.布尔值 “布尔”数据类型只有两种:True和False    #首字母以T或F开头,后面小写,且不能作为变量赋值 2.比较操作符 == 等于 != 不等于 <  小于 >  大于 &l ...

  7. kafka安装使用配置1.1

    官方文档 rz上传到/usr/local/下 解压 tar xzvf 文件 改名 mv 文件 名字 环境变量 vi /etc/profile export KAFKA_HOME=/usr/local/ ...

  8. Python input/output boilerplate for competitive programming

    The following code is my submission for Codeforces 1244C The Football Season. import io import sys i ...

  9. 设计模式:备忘录模式(Memento)

    个人比较喜欢玩单机游戏,什么仙剑.古剑.鬼泣.使命召唤.三国无双等等一系列的游戏我都玩过(现在期待凡人修仙传),对于这些游戏除了剧情好.场面大.爽快之外,还可以随时存档,等到下次想玩了又可以从刚开始的 ...

  10. win10 远程桌面ubuntu16

    一. 软件安装 1.1. 打开终端,安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients 1.2. desktop s ...