知识回顾:
网络虚拟化好处:
- 将物理机与应用解耦
- 带来了更好的可用性,更灵活
传统的数据中心绝大多数是南北向的网络流量
常见的三层园区网络设计
- 核心层
- 汇聚层
- 接入层
本节内容:
第一章:云计算下的网络虚拟化
第二章:三种网络虚拟化技术
第三章:普通虚拟网卡的交换方式
第四章:SR-IOV(硬件直通)虚拟交换的方式
总结
第一章:云计算下的网络虚拟化
在传统的园区网络设计中,架构越往上,越容易出现瓶颈,传统的数据中心因为频繁进行数据交换,所以 绝大多数走的都是南北流量
我们在虚拟机迁移的时候,绝大多数都是东西向的流量
总结:虚拟机可能会经常发生迁移,网络关系不再固定,为了解决这个问题,引入网络虚拟化技术
热迁可能跨三层甚至可能是跨数据中心的
VLAN限制了广播域,提高了物理资源的利用率,提高了链路的灵活性,其实VLAN就是也是一种物理虚拟化技术
云计算场景下,由SDN控制器,在交换机上划分VLAN 。
为什么需要隔离:在云计算环境下,我们通常虚拟出多个性能数据中心,在虚拟数据中心有多个租户,不同的租户站的流量绝对不允许跨租户之间互通
租户之间的流量绝对不允许相互连通,解决方法:
- 通过二层隔离
- 通过三层隔离(CID 无类间路由)
第二章:网络虚拟化的三种解决方法
- IO虚拟化:从虚拟机的虚拟网卡如何与外接通信
- 虚拟接入:假设虚拟交换机收到数据包后,如何识别不同的虚拟机,如何转发数据包的问题
- 网络连接:物理服务器与接入层交换机的连接问题
- 网络交换:实现物理网络的逻辑隔离
- 物理设备的虚拟化解决方法:堆叠技术
- 虚拟接入问题:虚拟机的标识问题,桌面判断是虚拟机的流量,怎么判断是不同虚拟机的流量
- 网络连接:一个物理网口承载多个虚拟机的流量,就要提高端口及网络线缆的带宽
- 网络交换:实现物理网络的逻辑隔离
下面我们介绍最为常用的两种:
- 左边为通过软件模拟虚拟网卡即普通虚拟网卡的方式,模拟交换功能。
- 右侧应用SR-IOV场景下通过DMA(直接内存访问技术)设备进行报文的转发(DMA:直接内存访问技术,将数据直接写到APP对应的内存中,大大减低了CPU的负担)
第三章:网络虚拟化之普通虚拟网卡
普通虚拟网卡的交换方式:
在虚拟机以软件模拟网卡的方式进行虚拟交换的数据下发(数据读取时则顺序相反)的过程:
- App内存的数据被复制到Guest OS的内存中
- 在Guest OS的数据被复制到虚拟机的虚拟网卡
- 虚拟网卡的数据被复制到VMM层的内存中
- VMM内存的数据被复制到VMM的网卡的内存中
- VMM网卡的数据被转发到物理设备A中
第四章:网络虚拟化之硬件直通技术(SR-IOV)
SR-IOV(硬件直通)虚拟交换的方式:
虚拟机以硬件直通的方式进行虚拟交换的数据下发(数据读取时则顺序相反)的过程:应用了内存零拷贝技术:直接转发,不经过中间介质,在Linux主机中非常常用
- App将属于此App的内存的数据复制到此虚拟机的虚拟网卡
- 虚拟网卡将数据直接复制到到物理设备
在SR-IOV场景下,应用特殊的物理网卡,应用零拷贝技术:尽量减少数据到达目的端的被转发的次数,减低资源开销。
总结:
普通虚拟网卡的 特点:
- 灵活、成本低。适用IO偏小的场景
SR-IOV(硬件直通技术)特点(推荐使用):
- 适用高io的场景,但因为与硬件的直接通信会损失一些高级特性(热迁移、快照等)
如果要实现流量审计,要用VM-tag:用于标识虚拟机,
- 要用trap
- 关闭生成树,原因是虚拟交换机从上行端口转发的数据不会在本端口转发到上行链路
- 配了生成树会造成收敛慢的问题,造成心跳延迟,业务会出现波动的问题
- 端口不会发出BPDU的报文,即使配了生成树业务浪费流量
- 虚拟交换机之间实现虚拟机之间的二层转发
- 虚拟机与CNA主机之间通信流量在内部消耗,不需要经过物理网络