第三讲. COTS包交换介绍
COTS里面涉及到虚拟机的概念,所以网络稍微复杂一点点。
基本概念
目前虚拟机里面常见的网卡控制器有三类:
- 半虚拟化网卡设备,由Hypervisor统一管理,虚拟机里面采用特定的接口进行调用。
- 透传网卡设备,将一个PCIe设备(网卡、USB、光驱…)直接分配给指定的虚拟机独占,一般需要开启IntelVT-D技术
- SR-IOV网卡设备,结合上述的两种优势,他先在Hypervisor里面注册成多个网卡,再把这些网卡透传分配给虚拟机。(需要NIC硬件支持)
:fa-location-arrow: 如果是C7K架构,一般一个Blade上面只创建一个VM,所以跨板(Between-Appls)的交换能够使用C7K自带的
L2Switch(6120XG),同时H248消息也是从这个交换板来转发到SCM上。至于数据包是直接从PIM板连出去的吗? 存疑?
:fa-location-arrow: 针对我们的数据包,能够使用的物理卡是各个Blade上的GE口和6120XG,一般来说最好的打算就是每个虚拟机PF自己所在Blade的那个GE口(如果只有一个虚拟机Per-Blade)
:fa-location-arrow:如果是DL380一个Blade上做BGW,那么最好的打算是半虚拟化方式,同时,一个Blade的话就没有L2Switch(6120XG)了,所以必须要有vSwitch来扮演这个角色,那么问题就在于vSwitch会不会成为瓶颈?(因为数据包+控制包都在上面交换的= =!)
:fa-location-arrow:如果在DL380上插Intel-Niantic-NIC,那么最好的打算是SR-IOV方式来分配vNIC,同时也会需要vSwitch的帮助,DPDK的作用目前来说只用于DATA-PATH的交换过程。
虚拟机
机箱里面的虚拟机相关背景知识:
KVM和QEMU的关系
当一起工作的时候,KVM管理CPU和MEM的访问,QEMU仿真硬件资源(硬盘,声卡,USB,等等)当QEMU单独运行时,QEMU同时模拟CPU和硬件。
准确来说,KVM是Linux kernel的一个模块。可以用命令modprobe去加载KVM模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM模块是 远远不够的,因为用户无法直接控制内核模块去作事情,你还必须有一个运行在用户空间的工具才行。这个用户空间的工具,kvm开发者选择了已经成型的开源虚拟化软件 QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个Power的CPU,并可利用 它编译出可运行在Power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM 下载有两大部分(qemu和kvm)三个文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM模块,也可以只升级QEMU工 具。这就是KVM和QEMU 的关系。
QEMU是个独立的虚拟化解决方案,从这个角度它并不依赖KVM。 而KVM是另一套虚拟化解决方案,不过因为这个方案实际上只实现了内核中对处理器(Intel VT, AMD SVM)虚拟化特性的支持,换言之,它缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具,所以它借用了QEMU的代码并加以精简,连同KVM一起构成了另一个独立的虚拟化解决方案,不妨称之为:KVM+QEMU.
关于Virtio:fa-link:的具体介绍。
实际上虚拟化和半虚拟化都是概念性的东西,针对每个资源都可以有相当的自行配置空间,譬如NIC设备,
如果全虚拟化方式,那么这块卡的所有包都要经过全虚拟化层的模拟器来转发给各个虚拟机,
如果不用模拟器,而是能够透过特殊的Hypervisor层API调用网卡,那么这就称为半虚拟化,
如果我想把这块卡让某个虚拟机独占使用,那么可以使用PF方式,
如果网卡硬件支持SR-IOV,那么就可以注册出好几个卡,然后PF给多个虚拟机。
遗留问题:
- COTS中包交换的网络拓扑: ?
- DL380中包交换的网络拓扑: ?
第三讲. COTS包交换介绍的更多相关文章
- 第三讲:WCF介绍(3)
代码 https://yunpan.cn/cPns5DkGnRGNs 密码:3913 前面我们通过一个小的例子,大概了解的WCF. 这里我们补充下 EndPoint 配置 A,B,C 中 ...
- Spark系列视频
大数据生态圈很大,很多开发者都仅仅接触到某个单一产品. Spark 是近年来比较流行的大数据计算框架,系统.平台要想用好Spark 这个产品,需要用到很多的产品. 本视频系列主要是为准备入坑大数据的童 ...
- 【学习中】Unity Schedule
章节 内容 签到 第一课:界面介绍 第一讲 编辑器工作区 4月27日 第二课:资源管理 第二讲 资源及资源类型 4月27日 第三讲 资源管理:模型和角色动画的输出设置(上) 4月27日 第四讲 资源管 ...
- Spring注解驱动第三讲--@Filter介绍
上一讲主要针对@ComponentScan注解做了一些说明,本文主要对@Filter的扫描条件,再做一些详细的介绍 1,FilterType.ANNOTATION 按照注解的方式进行扫描.后面clas ...
- Kettle 4.2源码分析第三讲--Kettle 转换机制transformation介绍
转换机制 每个转换步骤都是ETL数据流里面的一个任务.转换步骤包括输入.处理和输出.输入步骤从外部数据源获取数据,例如文件或者数据库:处理步骤处理数据流,字段计算,流处理等,例如整合或者过滤.输出步骤 ...
- TCP 介绍
TCP介绍 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络O ...
- FreeSWITCH第三方库(音频)的简单介绍(一)
FreeSWITCH使用了大量的第三方库,本文档主要介绍音频相关库的信息: 视频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5488890.html 其他相关 ...
- 转载 VPN介绍
转载原地址: http://aajs800.blog.51cto.com/519255/239724 原作者 aajs800 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者 ...
- 32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式
32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 1.没有代码提醒功能 2.编写代码很慢,记不住各 ...
随机推荐
- 区间重叠计算及IntervalTree初识
最近被人问到这样一个问题的解决方案:在一个餐馆的预定系统中,接受用户在未来任意一段时间内的预订用餐,用户在预订的时候需要提供用餐的开始时间和结束,餐馆的餐桌是用限的,问题是,系统要在最快的时间段计算出 ...
- IE中cookie问题,带下划线的前置域名会不给设cookie,谷歌和火狐浏览器则不受影响
!! WARNING !!: Server hostname contains an underscore and this response sets a cookie. Internet Expl ...
- 【Xpath学习】xpath都不会,说什么你做网站自动化测试的?
嗯我确实不太会.感觉我写的随笔很渣,不一定对,大家不要被我误导了,最好不要看.我也尽量保证写出来都是对的. 首先这俩给我搞晕了 1. // 不管层级: 相对路径 2. / care 层级: 表示到 ...
- docker-compose编写(英文)
原文地址:https://docker.github.io/compose/compose-file/ Compose file reference The Compose file is a YAM ...
- TCPReplay使用---张子芳
TCPReplay主要功能是将PCAP包重新发送,用于性能或者功能测试.但是在测试环境与原转包系统结构一般是不同的.比如被测试机的二层MAC地址与抓包机器的MAC不同,所以被测试机在二层处理时发现目的 ...
- [Asp.net]Uploadify上传大文件,Http error 404 解决方案
引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章:[Asp.net]Upl ...
- Python __builtins__模块拾穗
1.isinstance函数:除了以一个类型作为参数,还可以以一个类型元组作为参数. isinstance(obj,basestring)===isinstance(obj,(str,unicode) ...
- Delphi 调用C# DLL(包含委托)
例子 C# Dll: using System; using System.Collections.Generic; using System.Text; using System.Diagnosti ...
- 用node.js给图片加水印
一.准备工作: 首先,确保你本地已经安装好了node环境.然后,我们进行图像编辑操作需要用到一个Node.js的库:images.这个库的地址是:https://github.com/zhangyua ...
- Highcharts使用教程(2):设置选项
Highcharts使用教程(2):设置选项 使用教程 | 作者:走猫步的鱼 | 2013-12-11 09:33:25 | 阅读 16次 评论 1 概述:JavaScript图表工具Highchar ...