当前位置: 首页 > news >正文

VMWARE虚拟交换机的负载平衡算法

一、基于源虚拟端口的路由

虚拟交换机可根据 vSphere 标准交换机或 vSphere Distributed Switch 上的虚拟机端口 ID 选择上行链路。

基于源虚拟端口的路由是 vSphere 标准交换机和 vSphere Distributed Switch 上的默认负载平衡方法。

ESXi主机上运行的每个虚拟机在虚拟交换机上都有一个关联的虚拟端口 ID。要计算虚拟机的上行链路,虚拟交换机将使用虚拟机端口 ID 和网卡组中的上行链路数目。虚拟交换机为虚拟机选择上行链路后,只要该虚拟机在相同的端口上运行,就会始终通过此虚拟机的同一上行链路转发流量。除非在网卡组中添加或移除上行链路,否则虚拟交换机仅计算虚拟机上行链路一次。

当虚拟机在同一主机上运行时,虚拟机的端口 ID 固定不变。如果迁移或删除虚拟机,或者关闭虚拟机电源,则此虚拟机在虚拟交换机上的端口 ID 将变为空闲状态。虚拟交换机将停止向此端口发送流量,这会减少其关联的上行链路的总流量。如果打开虚拟机电源或迁移虚拟机,则虚拟机可能会出现在不同的端口上并使用与新端口关联的上行链路。

二、基于源 MAC 哈希的路由

虚拟交换机可基于虚拟机 MAC 地址选择虚拟机的上行链路。要计算虚拟机的上行链路,虚拟交换机将使用虚拟机 MAC 地址和网卡组中的上行链路数目。


三、基于 IP 哈希的路由

虚拟交换机可根据每个数据包的源和目标 IP 地址选择虚拟机的上行链路。

要计算虚拟机的上行链路,虚拟交换机会获取数据包中源和目标 IP 地址的最后一个八位字节并对其执行 XOR 运算,然后根据网卡组中的上行链路数将所得的结果用于另一个计算。结果是一个介于 0 和组中上行链路数减一之间的数字。例如,如果网卡组有四个上行链路,则结果是一个介于 0 和 3 之间的数字,因为每个数字与组中的一个网卡相关联。对于非 IP 数据包,虚拟交换机会从 IP 地址所在的帧或数据包中提取两个 32 位二进制值。

任何虚拟机都可根据源和目标 IP 地址使用网卡组中的任何上行链路。因此,每台虚拟机都可以使用网卡组中任何上行链路的带宽。如果虚拟机在包含大量独立虚拟机的环境中运行,则 IP 哈希算法可在组中的网卡之间均匀地分布流量。当虚拟机与多个目标 IP 地址通信时,虚拟交换机可为每个目标 IP 生成不同的哈希。因此,数据包可以使用虚拟交换机上的不同上行链路,从而可能实现更高的吞吐量。

但是,如果环境中包含的 IP 地址较少,则虚拟交换机可能会始终通过组中的一个上行链路传递流量。例如,如果一个应用程序服务器访问一个数据库服务器,则虚拟交换机会始终计算同一个上行链路,因为只存在一个源-目标对。

四、基于物理网卡负载的路由

基于物理网卡负载的路由以基于源虚拟端口的路由为基础,其中虚拟交换机将检查上行链路的实际负载,并采取措施以减少过载上行链路上的负载。仅适用于 vSphere Distributed Switch。

Distributed Switch 将使用虚拟机端口 ID 和网卡组中的上行链路数目来计算虚拟机的上行链路。Distributed Switch 将每 30 秒测试一次上行链路,如果上行链路的负载超过 75% 的使用率,则拥有最高 I/O 的虚拟机的端口 ID 将移到其他上行链路。

http://www.lryc.cn/news/488493.html

相关文章:

  • 安卓InputDispatching Timeout ANR 流程
  • 【Nginx从入门到精通】03 、安装部署-让虚拟机可以联网
  • java 增强型for循环 详解
  • 浪潮云启操作系统(InLinux) bcache宕机问题分析
  • 038集——quadtree(CAD—C#二次开发入门)
  • 备赛蓝桥杯--算法题目(1)
  • 机器学习100道经典面试题库(二)
  • Unet++改进37:添加KACNConvNDLayer(2024最新改进方法)
  • 基于 Levenberg - Marquardt 法的 BP 网络学习改进算法详解
  • MySQL 8.0与PostgreSQL 15.8的性能对比
  • qt连接postgres数据库时 setConnectOptions函数用法
  • MySQL45讲 第二十七讲 主库故障应对:从库切换策略与 GTID 详解——阅读总结
  • JavaWeb笔记整理——Spring Task、WebSocket
  • 基于SpringBoot+RabbitMQ完成应⽤通信
  • Flutter踩坑记录(一)debug运行生成的项目,不能手动点击运行
  • React的hook✅
  • 2024.5 AAAiGLaM:通过邻域分区和生成子图编码对领域知识图谱对齐的大型语言模型进行微调
  • 从熟练Python到入门学习C++(record 6)
  • jenkins的安装(War包安装)
  • WPS 加载项开发说明wpsjs
  • 【Anomaly Detection论文阅读记录】PaDiM与PatchCore模型的区别与联系
  • uni-app Vue3语法实现微信小程序样式穿透uview-plus框架
  • K8S基础概念和环境搭建
  • [服务器] 腾讯云服务器免费体验,成功部署网站
  • vue中el-select 模糊查询下拉两种方式
  • 深入解析PostgreSQL中的PL/pgSQL语法
  • Vue 3集成海康Web插件实现视频监控
  • 多目标优化算法:多目标蛇鹫优化算法(MOSBOA)求解DTLZ1-DTLZ9,提供完整MATLAB代码
  • 机器翻译基础与模型 之三:基于自注意力的模型
  • 如何使用PCL处理ROS Bag文件中的点云数据并重新保存 ubuntu20.04