本文摘要:摘要 :本文聚焦電視播出系統云化的關鍵技術問題中的 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.cnzjbx.cn/wslw/30157.html