本文摘要:摘要 :本文聚焦电视播出系统云化的关键技术问题中的 ST 2110信号收发环节,对基于云化/虚拟化平台上的高带宽数据包收发、数据包流量整型、多个 IP 流时钟同步、IP 信号在虚拟化/云平台的收发几个关键技术问题进行分析和说明,探索面向数据中心构建电视播出系统的可行
摘要 :本文聚焦电视播出系统云化的关键技术问题中的 ST 2110信号收发环节,对基于云化/虚拟化平台上的高带宽数据包收发、数据包流量整型、多个 IP 流时钟同步、IP 信号在虚拟化/云平台的收发几个关键技术问题进行分析和说明,探索面向数据中心构建电视播出系统的可行方案,希望能够为行业内系统建设提供一点参考思路。
关 键 词 :SMPTE ST 2110SR-IOV DPDK Rivermax
1 引言
“互联网 +”时代,电视台业务越来越向互联网、融媒体和 IP 技术发展,云计算和云平台的建设越来越在技术建设当中占据更大的比重。一方面,为了适配融媒体、互联网需要的弹性,需要进行云平台的建设 ;另一方面,业界也在努力将传统的电视制播业务搬到云上,实现集中维护、降低建设成本等目标。经过全行业内的多年实践,面向融媒体的制作、分发等方面在云上已经具备了不少成功案例。 这 是 因 为 采 用 H.264、H.265 等编解码格式的码流、文件都可以比较好的和软件技术相结合,比较容易部署在云上,并且在公有云和私有云上都有比较成功的实践。但传统电视台内部的制播业务都采用传统的无压缩信号进行生产,这也导致台内相当多的实际业务无法上云,降低了云建设本身在集中维护、降低成本方面的初衷。因此,本文尝试针对云化的关键技术问题进行探讨。
2 电视播出系统云化概述
播出系统是电视台生产节目的主要发布形式,也是演播室、非编等生产系统对接的出口系统,所以,播出系统天然就存在文件处理和信号处理两个部分的应用。其中,文件化应用采用的非实时处理模式在传统播出系统中主要通过 x86 通用服务器完成迁移、转码、技审等自动化工作流程,这部分应用采用云服务上的虚拟化主机,可以做到完全替代物理机。
但对于播出的信号应用部分,目前业内主要还是采用同轴电缆和 SDI传送信号,只有部分电视台实现了部分通道或频道的 IP 化。在这些已经建设的 IP 播出系统中,主要采用广 电 专 业 硬 件 设 备 完 成 ST 2110 和ST 2022-7 信 号 的 发 送 接 收。 比 如,Imagine、Grass Valley、Evertz 等公司的 IPG 类设备和 Matrox 公司的硬件信号 I/O 卡,都采用这种方案。但同时,我们也看到,主流视音频厂商也大量采用 x86 通用服务器平台部署专业视音频设备,如哈雷公司的 IP 播出视频服务器、罗德施瓦茨公司的 IP 信号多画面等。这说明,采用通用计算机技术是具备解决实时信号的基本计算能力条件的,只要解决了信号的 I/O问题,就具备了将信号设备部署在云环境下的基本条件。
3 关键技术问题
电视播出系统采用通用设备实现IP 信号的收发,在解决了 IP ST 2110无压缩信号的封装后,还要解决以下四个方面的问题。(1)无压缩视音频数据的高带宽吞吐要求。(2)ST 2110 数据包收发能够平稳有序的流量整型。(3)ST 2110 信号涉及的多个组播流精确同步问题。(4)虚拟化主机收发 ST 2110 的IP 信号问题。
3.1 高带宽 I/OST 2110 无压缩
IP 信号的特点之一是大量的带宽需求。通 过 SDI 传 输 视 音 频 信 号 时,1080i50 信 号 需 要 1.485Gbps,4KUHD 需 要 12Gbps。 通 过 IP 传 输 视音频信号时所需要的网络带宽因为 ST2110 采用视频、音频、辅助数据分离的方式,可以采用三路组播流来实现信号传输,同时去掉了视频中的冗余数据,相比 SDI 的带宽略少,能节约30% 的带宽,1080i50 视频数据需要1.1Gbps 左右,4K UHD 需要 8.7Gbps左右。相比 IPTV 系统中传输的不到10Mbps 的码流,其传输的数据要求高出很多,如此大的数据量需要专用板卡或者具有瞬间进行大量报文转发的网卡才能支撑。基 于 通 用 设 备 实 现 发 送, 除 了要具备发送高带宽码流的能力,还要保证发送码流的延迟在可接受范围内,即低延迟需求。传统方式遵循计算机 OSI 七层模型标准,要跨越应用层、表示层、会话层、传输层、网络层、数据链路层、物理层才能将数据包发送出去。
首先,应用程序创建 Socket 并绑定端口,对数据进行 UDP、RTP、IP 层协议封装,将数据送到操作系统的 Kernel 层进行TCP/IP 传输,然后再调用网卡硬件,完成发送流程。在这个过程中,应用程序、Socket、驱动程序到网卡内部都存在缓存队列,这个对 IP 信号发送的及时性以及数据的 I/O 吞吐性能会造成很大的影响。为了扩大数据吞吐能力,需要引入内核旁路模式。该方案可以直接跳过操作系统的 Kernel 层,让应用程序直接和硬件网卡建立通信,这样省去了中间环节,减少了 Kernel层两个缓存队列,可以有效提高数据I/O 吞吐能力,并降低延迟。
3.2 数据包流量整型
对 于 专 用 的 视 音 频 板 卡, 可 以使用板卡的逻辑处理控制数据包流量和速度,且不会过多占用主机宝贵的 CPU 资源。对于上层应用软件来说,只需要把封装好的数据传输给板卡,板卡就可以有序发送数据包,并且保证发包不会出现乱序,发包间隔也符合下游设备要求。对于通用设备来说,数据包只能通过网卡送出,而网卡通常都不具备自主缓存发送数据包的能力,这样,数据包的发送就需要主机的 CPU 高度参与,控制好每个发送数据包的间隔,以使数据包发送符合一定的规范。比如,ST 2110-21标准中提出了网络兼容模型和虚拟接收缓存两个数据包发送和接收的模型。作为一款优化加速软件,NVIDIARivermax 符 合 SMPTE ST 2110-21规范要求,并通过了 JT-NM 测试计划,能够与市场上多个广播电视设备和软件供应商进行集成和互联互通。软件在 NVIDIA ConnectX-5 及之后的网卡配合运行,仅需要较低的 CPU使用率,就可以支持在通用设备上实现高清、4K UHD 视频流的收发。
该软件支持物理机、VMware ESXI 和Linux OpenStack 虚拟化,可以使系统平滑上云。3.3 多个 IP 流信号同步如果基于通用设备发送 ST 2110IP 信号,那么该服务器就需要作为一个 IP 设备同步并锁定到 PTP 时钟上。SMPTE ST 2059-2 是针对广电IP 视音频传输特性而制定的一套标准,它在 IEEE 1588 协议的基础上定义了 ST 2059 Profile。PTP4L 是关于1588v2 PTP 协议栈的开源代码,这个代码实现了各种 ITU 规定的 Profile,也可以配置成广电所需要的 ST 2059Profile。为保证主机被 PTP 同步,当检测到 PTP 主钟,且 PTP 主钟和被检测设备之间的相位差在 1000ns 之内,即认为设备锁定。锁定后的主机应用程序在收发 ST 2110 信号时,可以为发送流设置具有高精度的时间戳,接收流可以依据 RTP 数据包中的时间戳同步视频、音频、辅助数据中不同的IP 流进行时间上的对齐,同时也能够根据主机自身的 PTP 时钟计算出 IP 流信号与主机的时钟偏差。
3.4 虚拟化主机收发 IP 信号系统
云化的关键指标是要能够虚拟化,由此才能获得云化系统所带来的动态分配、冗余负载等高级功能。而专用的视音频板卡不支持虚拟化,需要引入 NVIDIA Rivermax 才可以实现在虚拟化环境下收发 ST 2110、ST 2022-6信号。Rivermax 使用的虚拟化基于SR-IOV 技术,其可以将一块物理网卡虚拟成多个虚拟网卡,并支持将虚拟网卡(VF)直通到虚拟机中,这样虚拟机可以基于 VF 进行信号的 I/O 操作,虚拟机与操作虚拟网卡的访问就如同访问物理机网卡一样,没有延迟消耗。
基于此,虚拟主机就可以实现 PTP 时钟同步、ST 2110 信号收发。如图 3所示,SR-IOV 技术也可以实现一块物理网卡做成多块虚拟网卡,分配给不同的虚拟机,达到网卡带宽资源的充分利用,并能够实现不同类应用程序的隔离。SR-IOV 技术通过创建不同虚拟功能的方式,一个物理网卡可以虚拟出多个网卡,分配给虚拟机的就是独立网卡,实现虚拟机直接跟硬件网卡通信,这样可以不再经过软件交换机,减少了 Hypervisor 层的地址转换。硬 件 方 面, 支 持 包 括 芯 片 组 对SR-IOV 设 备 的 识 别,BIOS 为 SRIOV分配足够的资源。
此外,需要开启 VT-d 支 持。Intel VT-d 是 Intel虚拟化技术的一部分,主要针对的是I/O 子系统。它的实现主要是通过在硬件上引入重定向单元,该硬件重定向单元用于对 I/O 子系统的 DMA 操作和中断传递进行重定向,从而辅助VMM 实现 I/O 子系统的虚拟化。软 件 方 面, 虚 拟 化 操 作 系 统 层的虚机管理器将驱动管理权限交给Domain 0,Domain 0 操作系统支持SR-IOV 功能。Domain 0 通过物理功能(PF)驱动发现设备的 SR-IOV 功能后将包括发送、接收队列在内的物理资源依据 VF 数目划分成多个子集,然后 PF 驱动将这些资源子集抽象成设备,即系统中所见的虚拟功能(VF)设 备。 创 建 VF 设 备 后,Domain 0可将 VF 设备以 Passthrough(PCI/PCIe)方式分配给虚拟机。SR-IOV 的软件架构可以分成 PF、VF、控制面板以及 PF 和 VF 间的通信机制四个部分。
(1)PF(物理功能)是 Domain 0中负责管理 SR-IOV 设备的特殊驱动,其主要功能是为特权 Domain 0 提供设备访问功能和全局贡献资源配置的功能。虚拟机所有影响设备状态的操作均需通过通信机制向 PF 发出请求完成。(2)VF(虚拟功能)是轻量级的PCIe 功能,其功能包含向虚拟机操作系统提供接口、数据的发送及接收功能、与 PF 进行通信完成全局相关操作三个方面。由于 VF 的资源仅是设备资源的子集,因此,VF 驱动能够访问的资源有限,对其他资源的访问要求通过 PF 完成。
(3)控制面板同 PF 一样位于特权 Domain 0 中,其主要功能是负责生成 PCIe 配置空间并将 VF 抽象成PCIe 设备,同时向用户提供 VF 分配、回收等接口。(4)通信机制指一旦在 PF 中启用 SR-IOV,就可以通过 PF 的总线、设备和功能编号(路由 ID)访问各个VF 的 PCI 配置空间。每个 VF 都具有一个 PCI 内存空间,用于映射其寄存器集。VF 设备驱动程序对寄存器集进行操作以启用其功能,并且显示为实际存在的 PCI 设备。创建 VF 后,可以直接将其指定给 I/O 来宾域或各个应用程序。此功能使得虚拟功能可以共享物理设备,并在没有 CPU 和虚拟机管理程序软件开销的情况下执行 I/O。
相对于软件模拟 I/O 虚拟化,首先,SR-IOV 可 以 从 虚 拟 机 环 境 直接 访 问 硬 件, 降 低 了 I/O 延 迟 和 对CPU 的占用,获得了接近原生的 I/O性能,虚拟机直接使用虚拟文件系统,没有了虚拟机管理器的陷入处理 ;其次,数据更加安全,每个 VF 专属于一个 IOMMU Group,共享 IOMMUGroup 的设备不能分配给不同的虚拟机,而每个 IOMMU Group 又有独立的内存。相对于设备直接分配,SR-IOV不存在一个 PCIe 设备只能给一个虚拟机的尴尬,允许在 I/O 来宾域之间高效 共 享 PCIe 设 备,SR-IOV 下 多 个虚拟机可通过独占虚拟设备的方式共享一个 PCIe 设备。而设备直接分配需要将宿主机 Host 中的物理 PCIe 设备直接分配给客户机 Guest 使用,虚拟机独占这个 PCIe 设备。与此同时,SR-IOV 也存在使用虚拟设备的虚拟机不能在线迁移的缺点,并且需要注意 PCIe 的访问控制服务等特性。
4 结语
基于通用设备实现 ST 2110 的 IP信号收发是电视播出系统云化的基本能力组件,目前,NVIDIA Rivermax技术已经能够做到与第三方广电设备的信号格式兼容,作为云或虚拟化系统的基础资源。在测试和实践过程中,我们发现,在系统冗余切换过程中,因为 SR-IOV 技术特性,从虚拟机迁移到另外一台物理主机后,需要对 SR-IOV 虚拟网卡与目标设备的物理网卡进行一次关联映射。未来,随着 DPDK 技术的发展,可以做到更好地控制流量整型,更完美地实现虚拟机在物理机间的热迁移,更加充分地使用云计算自身的动态分配所带来的红利。
作者:昆明广播电视台 方嘉珂 杨剑霖
转载请注明来自发表学术论文网:http://www.fbxslw.com/wslw/30157.html