基本概念
- vpc(Virtual Private Cloud)网关为用户提供一个隔离的虚拟网络环境
虚拟私有云VPC(Virtual Private Cloud)是一套为云服务器、云容器、云数据库等云上资源构建的逻辑隔离的、由用户自主配置和管理的虚拟网络环境,旨在提升用户资源的安全性,简化用户的网络部署。
vpc秒懂 vpc使用( Virtual Private Cloud) 由公有云管理,运行在公共资源上,但是保证每个用户之间的资源是隔离,用户在使用的时候不受其他用户的影响,感觉像是在使用自己的私有云一样。Kube-OVN 支持多租户隔离级别的 VPC 网络。不同 VPC 网络相互独立,可以分别配置 Subnet 网段, 路由策略,安全策略,出网网关,EIP (Elastic IP Address,是可与云中实例绑定的可配置的IPV4地址,不随实例变化)等配置。
vpc一般有以下特点:
- 由多个子网(subnet)组成
- 每个子网的网段地址在vpc内唯一
- 不同的vpc可以复用相同的地址段,比如vpc1与vpc2里可以都包含 192.168.0.0/16地址段
- ovs(Open vSwitch)是一款开源的“虚拟交换机”
OVS已经是数据平面的事实标准了,流表的执行者。ovn
但是长期一来OVS都缺乏一个统一的网络模型(Neutron虽然花费巨大力气实现一个网络模型但是仅仅适用于OpenStack而无法用于容器更加无法单独使用),于是在2015年OVS社区宣布了一个子项目——Open Virtual Network(OVN)。它旨在为OVS提供一个控制平面,通过一个统一的网络模型为容器、虚拟机提供相同的网络服务。
-
ovn(Open Virtual Network) 用于为实例提供网络服务
OVN提供的是一个轻量级控制器,这个轻量级不但体现在OVN本身的代码少(只有几个C语言文件,而且代码很少),模型简单(虽然简单但是很丰富,更懂得利用OVS本身的特性)而且它的流表设计(Pipeline)也容易理解。
OVN的功能- ··L2功能,叫Logical switches(逻辑交换机)
- L3功能,叫Logical Router(逻辑路由器)
- ACL,就像我们物理交换机可以配置ACL,OVN可以针对逻辑交换机添加ACL
- NAT,SNAT、DNAT都支持
- Load Balancer,支持面向内部的负载均衡和提供外部访问的负载均衡
为OpenStack而生的SDN控制器-OVN
-
NAT是将IP数据包包头中的IP地址转换为另一个IP地址的协议
-
KMS (Key Management Service,KMS)是一款安全管理类服务
创建和管理密钥,保护密钥的保密性、完整性和可用性,满足用户多应用多业务的密钥管理需求,符合监管和合规要求。
KMS 是基于硬件加密机的云上密钥管理系统,核心服务如下:
- 密钥的全生命周期管理
- 加密、解密算法
- 真随机数
- 密钥轮换
-
Consul 是一个服务网格解决方案,提供了一个功能齐全的控制平面,具有服务发现、配置和分段功能。
-
Eureka Springcloud封装了Netflix公司开发的Eureka来实现服务治理。
Eureka简介以及入门,服务治理管理服务与服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现服务注册于发现。Eureka集群的原理是多台机器相互守望,互相关注,和zookeeper不同的是不存在主节点的概念。所以相比于Zookeeper的选举主节点发生的处理中断(CP),Eureka满足的是AP原则(自我保护模式会保留异常的服务)。 -
Nacos一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
-
VirtIO是一套通用 I/O 设备虚拟化的程序,用于提高虚拟机的I/O性能和兼容性。
-
vDPA 是一硬件加速数据面,是让virtio数据平面不需主机干预的解决方案。
-
NVME, NVME-oF与RDMA
一文读懂NVMe、NVMe-oF和RDMA
NVMe将 SSD 设备视为内存,而不是硬盘驱动器。NVMe 协议的设计从一开始就以搭配 PCIe 接口使用为目标,因此几乎直接连接到服务器的 CPU 和内存子系统。在多核环境内,NVMe 效率更高,因为它允许每个核心独立地与存储系统进行交互。 NVMe 能够减少 I/O 开销,并带来了许多性能提升,包括支持多个长命令队列和降低时延。
-
应用场景:
NVMe(Non-Volatile Memory Express):是一种存储规范,它利用PCIe(Peripheral Component Interconnect Express)接口连接主机和固态硬盘(SSD),用于快速访问存储设备。NVMe通过映射请求和响应到主机中的共享内存来实现数据传输。这种方式的优点是延迟低,传输速度快,但缺点是距离有限,通常只适用于单个系统内部或相邻系统的直接连接。
NVMe-oF(NVMe over Fabrics):是将NVMe标准从PCIe总线扩展到其他类型的网络结构上,如光纤通道(FC)、InfiniBand、RoCE、RDMA等,使得NVMe设备可以通过这些网络进行远程访问和管理。是一种网络传输协议,它允许NVMe命令通过网络在不同的主机和目标存储设备之间传输。这意味着NVMe-oF可以将远程的NVMe SSD连接到服务器上,而不需要物理连接,从而实现了更加灵活的存储扩展和数据中心内部的资源共享。以此来挑战SCSI在SAN中的统治地位。如今兴起的NVMe over Fabrics如果使用的不是FC网络的话,本质上就是NVMe over RDMA。 换句话说,NVMe over InfiniBand, NVMe over RoCE和NVMe over iWARP都是NVMe over RDMA。所谓Fabric,就是支持RDMA的局域网(LAN)。
总的来说,NVMe是一种直接连接存储设备的高速接口协议,而NVMe-oF则是一种通过网络实现存储设备远程连接的技术。 -
NVME-oF传输协议 NVMe, NVMe over Fabrics and RDMA for network engineers
-
光纤通道(NVMEe/FC): 最大化继承传统的 FC 网络,复用网络基础设施
-
NVMe/TCP:基于现有IP网络,采用TCP协议传输NVMe, NVMe over TCP,翻译的不太好,建议直接看英文原文
在数据中心开始从机械硬盘向固态硬盘(SSD)转换后不久,NVMe协议就开始支持高性能直通式PCIe SSD。紧随NVMe 之后的是 NVMe over Fabrics ( NVMe-oF ),旨在有效支持超大规模远程 SSD 池,有效取代直连式存储 。最近推出的NVMe over TCP可提供更强大的NVMe-oF技术,能够在降低部署成本和设计复杂度的同时提供更高的性能。
-
NVMe over RDMA(远程直接内存访问): 结合了NVMe-oF和RDMA的优势。https://www.snia.org/sites/default/files/SDC/2019/presentations/NVMe-oF/Minturn_David_Vasudevan_Anil_Selecting_an_NVMe_over_Fabrics_Ethernet_Transport_RDMA_or_TCP.pdf
RDMA负责高效、低延迟的数据传输,而NVMe-oF则提供了快速的存储访问能力和良好的网络互操作性。
-
-
RDMA是一种允许在计算机之间直接传输数据的技术,无需通过操作系统进行数据拷贝,即一台主机直接访问另一台主机的内存。也就是在不中断远程机器系统 CPU 处理的情况下对该机器上的内存执行访问(读取和写入)的能力。RDMA概述
-
零拷贝:应用程序可以在不涉及网络软件栈的情况下执行数据传输。数据可以直接发送和接收到缓冲区,无需在网络层之间复制。
-
内核旁路:应用程序可以直接从用户空间执行数据传输,无需内核参与。
-
无 CPU 参与:应用程序可直接访问远程内存,无需在远程服务器内耗用任何 CPU 时间。无需任何远程进程(或处理器)的干预即可读取远程内存服务器。远程 CPU 的缓存不会被访问的内存内容填满。
RDMA三种不同硬件实现
- InfiniBand(IB): 从一开始就支持RDMA的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。
- RDMA过融合以太网(RoCE): 即RDMA over Ethernet, 允许通过以太网执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上使用RDMA,只不过网卡必须是支持RoCE的特殊的NIC。
- 互联网广域RDMA协议(iWARP): 即RDMA over TCP, 允许通过TCP执行RDMA的网络协议。
-
-
BeeGFS是一个分布式的、容错性高、可扩展性强的网络文件系统,主要用于大规模的数据存储和处理。
-
Lustre是一个基于对象的分布式文件系统
-
控制平面(Control Plane): 控制平面负责网络设备之间的信息交换和路由决策。它主要处理网络拓扑、路由协议和网络策略等方面的问题。控制平面的主要任务是维护网络的稳定状态,以便在网络中传输数据时能够选择最佳路径。控制平面通常使用诸如OSPF、BGP等路由协议来实现这些功能。
-
数据平面(Data Plane): 数据平面负责实际的数据转发和处理。它根据控制平面生成的路由表和策略,对进入网络设备的数据包进行分类、转发和处理。数据平面的主要任务是确保数据包在网络中高效、快速地传输。数据平面通常由硬件(如ASIC芯片)实现,以提供高性能和低延迟的数据转发能力。
-
SDN(软件定义网络) 是一种网络虚拟化和容器化方法,有助于优化网络资源并快速调整网络,使其适应不断变化的业务需求、应用和流量。这种方法可通过分离网络的控制平面和数据平面来构建软件可编程基础架构。
-
NFV(Network Function Virtualization) 是在标准化的x86服务器、存储和交换设备上,通过虚拟化技术实现传统由专用硬件执行的网络功能。其目的是用统一的通用硬件平台加上业务逻辑软件,来取代通信网络中私有、专用和封闭的网元。
是基于主机物理 NIC 的虚拟网络接口。每个主机可以有多个 NIC,每个 NIC 可以是多个 vNIC 的基础。
它可以将单一的 PCIe 设备虚拟为多个功能设备并分配给不同的虚拟机直接访问使用,借此有效提升每一个虚拟机获得的 I/O 性能并降低延迟。
物理的设备被叫做physical function(PF),一个PF 可以虚拟出virtual devices(VF)。当开启VF时,每一个VF都有自己的配置空间,VF 最后的作用就相当一个传统的PCI devices.
是电脑硬件的一部分,将数据通过串列通信进行传输。UART通常用在与其他通信接口(如EIA RS-232)的连接上。被用来控制CPU与其余部分的消息传送
24.EMMC(Embedded Multi Media Card)内嵌式存储器标准规格是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC在封装中集成了一个控制器,提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。目的在于简化手机存储器的设计.
25.kubevirt是Red-Hat开源的,以容器方式运行的虚拟机项目。是一个Kubernetes扩展,允许用户在其Kubernetes或OpenShift集群中本地运行传统虚拟机(VM)工作负载和容器工作负载。允许Kubernetes使用与容器化工作负载相同的工具来管理、部署和调度虚拟机。KubeVirt(Kubernetes接管虚拟化)
26.OpenFlow是一种网络通信协议,属于 数据链路层
,能够控制网络交换器或路由器的转发平面
,借此改变网络数据包所走的网络路径。
下面两个都是IO的纯软优化技术
27.DPDK( Data Plane Development Kit)是一套高性能网络IO开发框架,专注于网络应用中数据包的高性能处理。DPDK不使用Linux内核的协议栈处理网络数据,而是在用户空间实现了一套数据平面来进行数据包的收发与处理。绕过内核直接在用户态收发包来解决内核的瓶颈。在内核看来,DPDK 就是一个普通的用户态进程。
核心优化是PMD(Poll Mode Driver)去掉了硬中断,在用户态主动轮询做收发包处理。
28.SPDK(Storage Performance Development Kit) 用户态下的存储开发套件,存储设备的驱动代码运行在用户态,不会运行在内核态,避免了内核态与用户态之间的频繁切换,从而减少了延迟和 CPU 开销。。特别是在 NVMe(Non-Volatile Memory Express)和 NVMf(NVMe over Fabrics)环境中,显著提升了存储性能。
典型架构
• NVMe 驱动:用于直接访问NVMe SSD。
• NVMe-oF(NVMe over Fabrics):支持通过网络协议(如RDMA或TCP)访问远程存储。
• Blobstore:用于管理非易失性存储上的数据块。
• iSCSI Target:用于通过iSCSI协议提供存储服务。
- 裸盘: 未经格式化,无附加层的直接使用模式,不被操作系统通过文件系统来读取的设备,通常位于/dev目录下。
NVMe
NVMe over RDMA浅析
NVMe over TCP
NVMe over Fabrics也称为NVMeoF , NVMeoF实现NVMe标准在PCIe总线上的扩展实现远距离传输。
NVMeoF支持多种传输网络,主要包括FC、InfiniBand、RoCE v2、iWARP和TCP,其中InfiniBand、RoCE v2(可路由的RoCE)是理想的Fabric,原因在于它们支持RDMA。RDMA的主要优势就是提高处理效率,降低时延,缺点是要花钱。
为什么NVMe/TCP是数据中心的更优选择
参考资料
【网络】TOE、RDMA、smartNIC 是什么和区别|DPU
RDMA是一种host-offload(硬件处理), host-bypass(绕过内核)技术,允许应用程序(包括存储)在它们的内存空间之间直接做数据传输。
2019年,NVIDIA 69亿美金收购了一家以色列的公司,Mellanox。虽然贵,但是很值。收购Mellanox之后,老黄把其中Mellanox产品线中一个不起眼的可编程的网卡系列bluefield改名为DPU。