虚拟网络的简单知识总结


摘要

现在社会, 不管是C/S架构的软件还是B/S架构的软件
以及最新的Cloud native的服务器架构. 
还是大家使用的移动, 联通以及互联网电视都离不开网络
网络是现代社会的基石. 没有网络难以想象整个世界会变成什么样子.

最近学习了一些物理机, 虚拟机相关的网络. 想着简单整理总结一下.
网络不仅会影响生活和工作,对性能和产品以及延时影响也很大. 

第一部分: 一个简单的结论

部分虚拟机上面的延迟与带宽: 

同一个虚拟机:            延迟: 12us       带宽: 6GB/S
同一个物理机上面的虚拟机: 延迟: 50us-100us 带宽: 1.2GB/S
同一个交换机上面的虚拟机: 延迟: 60us       带宽: 120MB/S
不同园区的虚拟机:        延迟: 460us      带宽:  80MB/S

测试用的命令为:
qperf -vvs -t 60  10.24.21.30 tcp_lat
qperf -vvs -t 60  10.24.21.30 tcp_bw

第一部分: 另外一个结论

本地IP地址的结果
qperf -vvs -t 60  10.110.139.181 tcp_lat
tcp_lat:
    latency         =  15.2 us
    msg_rate        =  65.8 K/sec
    loc_send_bytes  =  1.98 MB
    loc_recv_bytes  =  1.98 MB
    loc_send_msgs   =  1.98 million
    loc_recv_msgs   =  1.98 million
    rem_send_bytes  =  1.98 MB
    rem_recv_bytes  =  1.98 MB
    rem_send_msgs   =  1.98 million
    rem_recv_msgs   =  1.98 million
本地回文地址的结果
qperf -vvs -t 60  127.0.0.1 tcp_lat
tcp_lat:
    latency         =  15.2 us
    msg_rate        =  65.8 K/sec
    loc_send_bytes  =  1.97 MB
    loc_recv_bytes  =  1.97 MB
    loc_send_msgs   =  1.97 million
    loc_recv_msgs   =  1.97 million
    rem_send_bytes  =  1.97 MB
    rem_recv_bytes  =  1.97 MB
    rem_send_msgs   =  1.97 million
    rem_recv_msgs   =  1.97 million

第一部分: 结论的总结

1. 在本机的情况下 127.0.0.1和实际IP地址其实都是一样的.
   不轮是带宽和时延. 都是一致的. 
   不需要认为输入本机IP地址不如127.0.0.1的性能好了. 
2. 本机的性能是最好的 延迟只有12us. 
   跨越机房的速度最慢,我这边20km左右距离的机房就产生了 400多微秒的时延.
   同一个交换机上面的机器的时延大概是本机的5到10倍. 
   同一个物理机上面不通虚拟机的时延也是本机的5到十倍
   虚拟交换机的效率虽然没有物理网线, 但是与实际交换机效果差不多.

第二部分: 网卡,网线与交换机

网卡:
网卡是设备接入互联网,公司内部网,办公网,家庭网的设备入口.
网卡有很多种类型, 无线网卡, 板载网卡,USB网卡,PCI-E网卡,光纤网卡,IB网卡
网卡的速率也有很多种, 10M 100M 1000M 等等. 

网线:
网线是从传输数据的载体. 他的质量好坏一定程度决定了网络传输的效率和质量
种类: 电磁波(无线空中接口),普通网线(五六七类),电缆,光纤,IB交换网线.
传输速率: 普通的双绞线网线为例 有屏蔽和非屏蔽有 五类, 超五类,六类,超六类之分.
          不同网线的速率完全不通,抗感染能力也完全不通. 

交换机:
交换机作用于OSI模型里面的2-3层网络.
一层的是作为网桥来使用.一般不区分冲突域.
二次的一般称之为交换机.
三层的一般称之为路由器
交换机和路由器其实实现了分类的分发功能,只不过路由器可能更多的路由记录
交换机可以仅记录组内的mac地址和上下级线路就可以了. 
交换机和路由器是企业网络里面的核心应用.

第二部分: 设备相关的性能-网卡

网卡, 网线, 交换机 在服务器没有其他压力的情况下共同来决定机器的网络性能.

网卡主要是包转发效率(CPU能力),网卡的对外的吞吐量带宽,还有跟主机接口的带宽性能功能决定
现阶段的网卡大部分采用ARM内核架构的CPU, 之前的很多采取MIPS等架构的或者是ASIC的定制CPU
网卡的CPU属于专用的设备.他可以进行封包和解包, 可以实现大于MTU大小的包的拆分和合并. 
在很多内核参数的调整下可以有各种参数配置粗来. 

网卡对外的吞吐量一般看起来就是 是否双工,以及网卡的速度配置 10M 100M类似的. 
一般网卡的极限速度是由较大的包来算出来的, 如果使用最小的包进行传输验证,带宽会很低
另外网吧一般会有一些校验位. 所以理论上1G带宽的网络,实际传输速度可能是 100MB/S
而不是正常计算的 125MB/S

网卡主机的接口也会决定很大一部分性能. 
最开始网卡是连接的南桥. 通过南桥总系统总线连接CPU.
现阶段高速网卡一般都是走PCI-E 可以直连CPU,响应速度和带宽都有了极大的提升. 

服务器的CPU相应网卡一般采用中断的模式. 中断可以绑定CPU, 也可以限制中断的频率与合并中断. 
网卡的CPU性能以及主机的CPU性能,还有总线的能力也共同作用下来决定网卡的极限性能. 
并且通过修改内存的TCP参数,可以适当调整不同应用负载下的性能表现

第二部分: 设备相关的性能-网线

网线的质量好坏决定了集群情况下的性能表现.

无线一般采用空中接口, 延迟和电磁干扰比较严重, 对应的无线网卡需要做很多整流以及排错
虽然无线可以采用MIMO的方式来提高带宽,但是对应的网卡CPU需要进行包重组等操作
所以无线一般用于toC业务, 很少有用作toB业务的场景. 

最开始的互联网曾经是用过电话线(ADSL),或者是电缆传输(与强电共线)
但是随着历史的发展逐步退出了历史舞台. 

网线方面数据库中心主要采用了两种, 双绞线以及光纤. 
双绞线一般用户应用服务器,带宽和延迟要求不是特别高的场景.
特点是造价便宜,弯折容忍度高.不易损坏.较为持久
但是对应的性能表现就比较差, 虽然有七类等很高级别可以实现2.5G带宽的网线
但是实际表现远远不如光纤.并且双绞线的最大长度一般为100m. 高级别的距离更低.

光纤主要分为单模和多模光纤
长距离传输,以及海底传输,一般采用光纤传输. 
光纤可以达到10km以上的距离. 并且光的衰减比电信号的衰减要低的多. 
延迟更低.速度更快,更加稳定. 
所以数据中心上面核心交换机以及核心设备都是采用光纤连接.
但是光纤不允许弯折的太厉害.容易断并且影响数据传输正确性和效率. 

除此之外还有一些铜缆, 比如IB交换机使用的, 距离短,造价高昂. 但是延迟低.性能好.

第二部分: 设备相关的性能-交换机

交换机的性能主要是看包转发率, 转发时延 ,以及背板计算能力
提供的端口是用来连接设备. 

交换机这边其实分类也很多,光纤交换机. 普通交换机. 带管理的交换机等等.
非专用交换机的性能可能不是非常好.会互相影响. 

专用机的参数也很重要 不是简简单单看参数就可以, 可能还是需要实测.
虽然带宽很高可能在较小的包时性能会很差
所以为了提高整体性能, 不仅需要硬件进行优化, 还需要产品进行优化. 

第三部分: 虚拟网卡相关

虚拟化的种类有很多 现在最常见的就是 VMwarevSphere MSHyperV RedHatKVM 

虚拟化不同 硬件情况也有不同的地方
基于我的能力考虑, 这次总结不进行网卡直通 还有 RDMA方面的总结. 
这次简单进行驱动和网卡类型的情况说明. 

第三部分: 虚拟网卡ESXi相关说明

ESXi创建虚拟机时可以选择多种网卡:
E1000
E1000E
VMXNET3
很明显能够看出来E1000和E1000E 实质上仅能够实现千兆 1G的带宽.
VMXNET3实质上是可以实现万兆以及更高带宽的. 

通过第一部分 同一个宿主机之间网络带宽为:1.2GB就可以看的出来.

但是跨服务器因为连接了交换机. 一般情况下交换机的速度会限制网卡的性能
也就是水桶能够存储的水量是最短的一款板子来决定. 

提升性能也类似, 需要修改最差的一部分, 会对产品的性能提高最多. 

第三部分: 虚拟网卡ESXi相关说明

因为网卡可以选择不同,所以机器的性能表现也不是很一样.
需要注意. 部分操作系统需要安装vmtools 才可以使用 VMXNET3的网卡
并且就算有的机器可以不使用驱动就安装VMXNET3的网卡. 
但是这样对虚拟化平台来收很不优雅. 容易出问题一定的性能问题. 

建议直接还是用最新的驱动然后对产品来说性能较好. 

第四部分: 虚拟交换机相关

通过vSphere或者是vCenter平台可以进行虚拟机的创建工作
可以选择不同的操作系统,不同的设备进行处理. 

可以选择网卡, 也可以选择不同的交换机. 
注意虚拟交换机是有很大的区别
虚拟化平台里面有三类虚拟交换机:
VMKernel: 主要进行宿主机服务器管理等使用
标准的虚拟交换机: 主要是承载虚拟机的运行.用来暴露虚拟机的服务出来.
分布式的虚拟交换机: 多个物理机的协同使用的虚拟交换机.

第四部分: 虚拟交换机相关

ESXi开机的时候会提示进行网络管理, 并且设置IP地址
此时输入的IP地址主要是用于进行系统管理. 
但是为了简化部署. 此时ESXi也会自动创建一个VM Network 的虚拟交换机
此时虚拟机使用的网卡与管理控制台的网卡是相同的. 
如果在高频率使用情况下执行虚拟机管理比如克隆或者是备份
会导致网络堵塞. 
所以最好的处理方式是 VMKernel 和 VM Network 独立到不同的网卡上面来. 

其实这样的话可以讲管理平面和数据平面进行拆分. 也可以将管理平面隐藏. 避免暴露宿主机的地址被人攻击.
数据碰面的网卡可以进行网络聚合来提高性能. 

第四部分: 虚拟交换机相关

虚拟交换机的的配置可能也需要进行优化:
BMC IMPI需要设置一个IP地址. 最后最终的管理手段
主机的管理可以比BMC要求稍微低一些,但是如果有比较多的虚拟机CLone备份的需求
建议还是需要有一个比较高性能的网卡进行承载. 
承载VM Network 所需要的网卡应该是性能最好的,并且应该是连接最佳的交换机

在增加虚拟交换机时可以增加多个网卡,但是需要注意增加的网卡,必须连接相同的网络设置. 
不然会出现网络失败的情况. 

网卡的性能其实有很多需要调整的地方, 比如中断绑定. 是否支持分包offload等
以及tcp 的一些内核参数. 
不同的应用场景需要单独进行配置. 

原文地址:http://www.cnblogs.com/jinanxiaolaohu/p/16810199.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性