本文摘要:摘要 :本文聚焦電視播出系統(tǒng)云化的關(guān)鍵技術(shù)問題中的 ST 2110信號收發(fā)環(huán)節(jié),對基于云化/虛擬化平臺上的高帶寬數(shù)據(jù)包收發(fā)、數(shù)據(jù)包流量整型、多個 IP 流時鐘同步、IP 信號在虛擬化/云平臺的收發(fā)幾個關(guān)鍵技術(shù)問題進(jìn)行分析和說明,探索面向數(shù)據(jù)中心構(gòu)建電視播出系統(tǒng)的可行
摘要 :本文聚焦電視播出系統(tǒng)云化的關(guān)鍵技術(shù)問題中的 ST 2110信號收發(fā)環(huán)節(jié),對基于云化/虛擬化平臺上的高帶寬數(shù)據(jù)包收發(fā)、數(shù)據(jù)包流量整型、多個 IP 流時鐘同步、IP 信號在虛擬化/云平臺的收發(fā)幾個關(guān)鍵技術(shù)問題進(jìn)行分析和說明,探索面向數(shù)據(jù)中心構(gòu)建電視播出系統(tǒng)的可行方案,希望能夠為行業(yè)內(nèi)系統(tǒng)建設(shè)提供一點(diǎn)參考思路。
關(guān) 鍵 詞 :SMPTE ST 2110SR-IOV DPDK Rivermax
1 引言
“互聯(lián)網(wǎng) +”時代,電視臺業(yè)務(wù)越來越向互聯(lián)網(wǎng)、融媒體和 IP 技術(shù)發(fā)展,云計算和云平臺的建設(shè)越來越在技術(shù)建設(shè)當(dāng)中占據(jù)更大的比重。一方面,為了適配融媒體、互聯(lián)網(wǎng)需要的彈性,需要進(jìn)行云平臺的建設(shè) ;另一方面,業(yè)界也在努力將傳統(tǒng)的電視制播業(yè)務(wù)搬到云上,實現(xiàn)集中維護(hù)、降低建設(shè)成本等目標(biāo)。經(jīng)過全行業(yè)內(nèi)的多年實踐,面向融媒體的制作、分發(fā)等方面在云上已經(jīng)具備了不少成功案例。 這 是 因 為 采 用 H.264、H.265 等編解碼格式的碼流、文件都可以比較好的和軟件技術(shù)相結(jié)合,比較容易部署在云上,并且在公有云和私有云上都有比較成功的實踐。但傳統(tǒng)電視臺內(nèi)部的制播業(yè)務(wù)都采用傳統(tǒng)的無壓縮信號進(jìn)行生產(chǎn),這也導(dǎo)致臺內(nèi)相當(dāng)多的實際業(yè)務(wù)無法上云,降低了云建設(shè)本身在集中維護(hù)、降低成本方面的初衷。因此,本文嘗試針對云化的關(guān)鍵技術(shù)問題進(jìn)行探討。
2 電視播出系統(tǒng)云化概述
播出系統(tǒng)是電視臺生產(chǎn)節(jié)目的主要發(fā)布形式,也是演播室、非編等生產(chǎn)系統(tǒng)對接的出口系統(tǒng),所以,播出系統(tǒng)天然就存在文件處理和信號處理兩個部分的應(yīng)用。其中,文件化應(yīng)用采用的非實時處理模式在傳統(tǒng)播出系統(tǒng)中主要通過 x86 通用服務(wù)器完成遷移、轉(zhuǎn)碼、技審等自動化工作流程,這部分應(yīng)用采用云服務(wù)上的虛擬化主機(jī),可以做到完全替代物理機(jī)。
但對于播出的信號應(yīng)用部分,目前業(yè)內(nèi)主要還是采用同軸電纜和 SDI傳送信號,只有部分電視臺實現(xiàn)了部分通道或頻道的 IP 化。在這些已經(jīng)建設(shè)的 IP 播出系統(tǒng)中,主要采用廣 電 專 業(yè) 硬 件 設(shè) 備 完 成 ST 2110 和ST 2022-7 信 號 的 發(fā) 送 接 收。 比 如,Imagine、Grass Valley、Evertz 等公司的 IPG 類設(shè)備和 Matrox 公司的硬件信號 I/O 卡,都采用這種方案。但同時,我們也看到,主流視音頻廠商也大量采用 x86 通用服務(wù)器平臺部署專業(yè)視音頻設(shè)備,如哈雷公司的 IP 播出視頻服務(wù)器、羅德施瓦茨公司的 IP 信號多畫面等。這說明,采用通用計算機(jī)技術(shù)是具備解決實時信號的基本計算能力條件的,只要解決了信號的 I/O問題,就具備了將信號設(shè)備部署在云環(huán)境下的基本條件。
3 關(guān)鍵技術(shù)問題
電視播出系統(tǒng)采用通用設(shè)備實現(xiàn)IP 信號的收發(fā),在解決了 IP ST 2110無壓縮信號的封裝后,還要解決以下四個方面的問題。(1)無壓縮視音頻數(shù)據(jù)的高帶寬吞吐要求。(2)ST 2110 數(shù)據(jù)包收發(fā)能夠平穩(wěn)有序的流量整型。(3)ST 2110 信號涉及的多個組播流精確同步問題。(4)虛擬化主機(jī)收發(fā) ST 2110 的IP 信號問題。
3.1 高帶寬 I/OST 2110 無壓縮
IP 信號的特點(diǎn)之一是大量的帶寬需求。通 過 SDI 傳 輸 視 音 頻 信 號 時,1080i50 信 號 需 要 1.485Gbps,4KUHD 需 要 12Gbps。 通 過 IP 傳 輸 視音頻信號時所需要的網(wǎng)絡(luò)帶寬因為 ST2110 采用視頻、音頻、輔助數(shù)據(jù)分離的方式,可以采用三路組播流來實現(xiàn)信號傳輸,同時去掉了視頻中的冗余數(shù)據(jù),相比 SDI 的帶寬略少,能節(jié)約30% 的帶寬,1080i50 視頻數(shù)據(jù)需要1.1Gbps 左右,4K UHD 需要 8.7Gbps左右。相比 IPTV 系統(tǒng)中傳輸?shù)牟坏?0Mbps 的碼流,其傳輸?shù)臄?shù)據(jù)要求高出很多,如此大的數(shù)據(jù)量需要專用板卡或者具有瞬間進(jìn)行大量報文轉(zhuǎn)發(fā)的網(wǎng)卡才能支撐; 于 通 用 設(shè) 備 實 現(xiàn) 發(fā) 送, 除 了要具備發(fā)送高帶寬碼流的能力,還要保證發(fā)送碼流的延遲在可接受范圍內(nèi),即低延遲需求。傳統(tǒng)方式遵循計算機(jī) OSI 七層模型標(biāo)準(zhǔn),要跨越應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層才能將數(shù)據(jù)包發(fā)送出去。
首先,應(yīng)用程序創(chuàng)建 Socket 并綁定端口,對數(shù)據(jù)進(jìn)行 UDP、RTP、IP 層協(xié)議封裝,將數(shù)據(jù)送到操作系統(tǒng)的 Kernel 層進(jìn)行TCP/IP 傳輸,然后再調(diào)用網(wǎng)卡硬件,完成發(fā)送流程。在這個過程中,應(yīng)用程序、Socket、驅(qū)動程序到網(wǎng)卡內(nèi)部都存在緩存隊列,這個對 IP 信號發(fā)送的及時性以及數(shù)據(jù)的 I/O 吞吐性能會造成很大的影響。為了擴(kuò)大數(shù)據(jù)吞吐能力,需要引入內(nèi)核旁路模式。該方案可以直接跳過操作系統(tǒng)的 Kernel 層,讓應(yīng)用程序直接和硬件網(wǎng)卡建立通信,這樣省去了中間環(huán)節(jié),減少了 Kernel層兩個緩存隊列,可以有效提高數(shù)據(jù)I/O 吞吐能力,并降低延遲。
3.2 數(shù)據(jù)包流量整型
對 于 專 用 的 視 音 頻 板 卡, 可 以使用板卡的邏輯處理控制數(shù)據(jù)包流量和速度,且不會過多占用主機(jī)寶貴的 CPU 資源。對于上層應(yīng)用軟件來說,只需要把封裝好的數(shù)據(jù)傳輸給板卡,板卡就可以有序發(fā)送數(shù)據(jù)包,并且保證發(fā)包不會出現(xiàn)亂序,發(fā)包間隔也符合下游設(shè)備要求。對于通用設(shè)備來說,數(shù)據(jù)包只能通過網(wǎng)卡送出,而網(wǎng)卡通常都不具備自主緩存發(fā)送數(shù)據(jù)包的能力,這樣,數(shù)據(jù)包的發(fā)送就需要主機(jī)的 CPU 高度參與,控制好每個發(fā)送數(shù)據(jù)包的間隔,以使數(shù)據(jù)包發(fā)送符合一定的規(guī)范。比如,ST 2110-21標(biāo)準(zhǔn)中提出了網(wǎng)絡(luò)兼容模型和虛擬接收緩存兩個數(shù)據(jù)包發(fā)送和接收的模型。作為一款優(yōu)化加速軟件,NVIDIARivermax 符 合 SMPTE ST 2110-21規(guī)范要求,并通過了 JT-NM 測試計劃,能夠與市場上多個廣播電視設(shè)備和軟件供應(yīng)商進(jìn)行集成和互聯(lián)互通。軟件在 NVIDIA ConnectX-5 及之后的網(wǎng)卡配合運(yùn)行,僅需要較低的 CPU使用率,就可以支持在通用設(shè)備上實現(xiàn)高清、4K UHD 視頻流的收發(fā)。
該軟件支持物理機(jī)、VMware ESXI 和Linux OpenStack 虛擬化,可以使系統(tǒng)平滑上云。3.3 多個 IP 流信號同步如果基于通用設(shè)備發(fā)送 ST 2110IP 信號,那么該服務(wù)器就需要作為一個 IP 設(shè)備同步并鎖定到 PTP 時鐘上。SMPTE ST 2059-2 是針對廣電IP 視音頻傳輸特性而制定的一套標(biāo)準(zhǔn),它在 IEEE 1588 協(xié)議的基礎(chǔ)上定義了 ST 2059 Profile。PTP4L 是關(guān)于1588v2 PTP 協(xié)議棧的開源代碼,這個代碼實現(xiàn)了各種 ITU 規(guī)定的 Profile,也可以配置成廣電所需要的 ST 2059Profile。為保證主機(jī)被 PTP 同步,當(dāng)檢測到 PTP 主鐘,且 PTP 主鐘和被檢測設(shè)備之間的相位差在 1000ns 之內(nèi),即認(rèn)為設(shè)備鎖定。鎖定后的主機(jī)應(yīng)用程序在收發(fā) ST 2110 信號時,可以為發(fā)送流設(shè)置具有高精度的時間戳,接收流可以依據(jù) RTP 數(shù)據(jù)包中的時間戳同步視頻、音頻、輔助數(shù)據(jù)中不同的IP 流進(jìn)行時間上的對齊,同時也能夠根據(jù)主機(jī)自身的 PTP 時鐘計算出 IP 流信號與主機(jī)的時鐘偏差。
3.4 虛擬化主機(jī)收發(fā) IP 信號系統(tǒng)
云化的關(guān)鍵指標(biāo)是要能夠虛擬化,由此才能獲得云化系統(tǒng)所帶來的動態(tài)分配、冗余負(fù)載等高級功能。而專用的視音頻板卡不支持虛擬化,需要引入 NVIDIA Rivermax 才可以實現(xiàn)在虛擬化環(huán)境下收發(fā) ST 2110、ST 2022-6信號。Rivermax 使用的虛擬化基于SR-IOV 技術(shù),其可以將一塊物理網(wǎng)卡虛擬成多個虛擬網(wǎng)卡,并支持將虛擬網(wǎng)卡(VF)直通到虛擬機(jī)中,這樣虛擬機(jī)可以基于 VF 進(jìn)行信號的 I/O 操作,虛擬機(jī)與操作虛擬網(wǎng)卡的訪問就如同訪問物理機(jī)網(wǎng)卡一樣,沒有延遲消耗。
基于此,虛擬主機(jī)就可以實現(xiàn) PTP 時鐘同步、ST 2110 信號收發(fā)。如圖 3所示,SR-IOV 技術(shù)也可以實現(xiàn)一塊物理網(wǎng)卡做成多塊虛擬網(wǎng)卡,分配給不同的虛擬機(jī),達(dá)到網(wǎng)卡帶寬資源的充分利用,并能夠?qū)崿F(xiàn)不同類應(yīng)用程序的隔離。SR-IOV 技術(shù)通過創(chuàng)建不同虛擬功能的方式,一個物理網(wǎng)卡可以虛擬出多個網(wǎng)卡,分配給虛擬機(jī)的就是獨(dú)立網(wǎng)卡,實現(xiàn)虛擬機(jī)直接跟硬件網(wǎng)卡通信,這樣可以不再經(jīng)過軟件交換機(jī),減少了 Hypervisor 層的地址轉(zhuǎn)換。硬 件 方 面, 支 持 包 括 芯 片 組 對SR-IOV 設(shè) 備 的 識 別,BIOS 為 SRIOV分配足夠的資源。
此外,需要開啟 VT-d 支 持。Intel VT-d 是 Intel虛擬化技術(shù)的一部分,主要針對的是I/O 子系統(tǒng)。它的實現(xiàn)主要是通過在硬件上引入重定向單元,該硬件重定向單元用于對 I/O 子系統(tǒng)的 DMA 操作和中斷傳遞進(jìn)行重定向,從而輔助VMM 實現(xiàn) I/O 子系統(tǒng)的虛擬化。軟 件 方 面, 虛 擬 化 操 作 系 統(tǒng) 層的虛機(jī)管理器將驅(qū)動管理權(quán)限交給Domain 0,Domain 0 操作系統(tǒng)支持SR-IOV 功能。Domain 0 通過物理功能(PF)驅(qū)動發(fā)現(xiàn)設(shè)備的 SR-IOV 功能后將包括發(fā)送、接收隊列在內(nèi)的物理資源依據(jù) VF 數(shù)目劃分成多個子集,然后 PF 驅(qū)動將這些資源子集抽象成設(shè)備,即系統(tǒng)中所見的虛擬功能(VF)設(shè) 備。 創(chuàng) 建 VF 設(shè) 備 后,Domain 0可將 VF 設(shè)備以 Passthrough(PCI/PCIe)方式分配給虛擬機(jī)。SR-IOV 的軟件架構(gòu)可以分成 PF、VF、控制面板以及 PF 和 VF 間的通信機(jī)制四個部分。
(1)PF(物理功能)是 Domain 0中負(fù)責(zé)管理 SR-IOV 設(shè)備的特殊驅(qū)動,其主要功能是為特權(quán) Domain 0 提供設(shè)備訪問功能和全局貢獻(xiàn)資源配置的功能。虛擬機(jī)所有影響設(shè)備狀態(tài)的操作均需通過通信機(jī)制向 PF 發(fā)出請求完成。(2)VF(虛擬功能)是輕量級的PCIe 功能,其功能包含向虛擬機(jī)操作系統(tǒng)提供接口、數(shù)據(jù)的發(fā)送及接收功能、與 PF 進(jìn)行通信完成全局相關(guān)操作三個方面。由于 VF 的資源僅是設(shè)備資源的子集,因此,VF 驅(qū)動能夠訪問的資源有限,對其他資源的訪問要求通過 PF 完成。
(3)控制面板同 PF 一樣位于特權(quán) Domain 0 中,其主要功能是負(fù)責(zé)生成 PCIe 配置空間并將 VF 抽象成PCIe 設(shè)備,同時向用戶提供 VF 分配、回收等接口。(4)通信機(jī)制指一旦在 PF 中啟用 SR-IOV,就可以通過 PF 的總線、設(shè)備和功能編號(路由 ID)訪問各個VF 的 PCI 配置空間。每個 VF 都具有一個 PCI 內(nèi)存空間,用于映射其寄存器集。VF 設(shè)備驅(qū)動程序?qū)拇嫫骷M(jìn)行操作以啟用其功能,并且顯示為實際存在的 PCI 設(shè)備。創(chuàng)建 VF 后,可以直接將其指定給 I/O 來賓域或各個應(yīng)用程序。此功能使得虛擬功能可以共享物理設(shè)備,并在沒有 CPU 和虛擬機(jī)管理程序軟件開銷的情況下執(zhí)行 I/O。
相對于軟件模擬 I/O 虛擬化,首先,SR-IOV 可 以 從 虛 擬 機(jī) 環(huán) 境 直接 訪 問 硬 件, 降 低 了 I/O 延 遲 和 對CPU 的占用,獲得了接近原生的 I/O性能,虛擬機(jī)直接使用虛擬文件系統(tǒng),沒有了虛擬機(jī)管理器的陷入處理 ;其次,數(shù)據(jù)更加安全,每個 VF 專屬于一個 IOMMU Group,共享 IOMMUGroup 的設(shè)備不能分配給不同的虛擬機(jī),而每個 IOMMU Group 又有獨(dú)立的內(nèi)存。相對于設(shè)備直接分配,SR-IOV不存在一個 PCIe 設(shè)備只能給一個虛擬機(jī)的尷尬,允許在 I/O 來賓域之間高效 共 享 PCIe 設(shè) 備,SR-IOV 下 多 個虛擬機(jī)可通過獨(dú)占虛擬設(shè)備的方式共享一個 PCIe 設(shè)備。而設(shè)備直接分配需要將宿主機(jī) Host 中的物理 PCIe 設(shè)備直接分配給客戶機(jī) Guest 使用,虛擬機(jī)獨(dú)占這個 PCIe 設(shè)備。與此同時,SR-IOV 也存在使用虛擬設(shè)備的虛擬機(jī)不能在線遷移的缺點(diǎn),并且需要注意 PCIe 的訪問控制服務(wù)等特性。
4 結(jié)語
基于通用設(shè)備實現(xiàn) ST 2110 的 IP信號收發(fā)是電視播出系統(tǒng)云化的基本能力組件,目前,NVIDIA Rivermax技術(shù)已經(jīng)能夠做到與第三方廣電設(shè)備的信號格式兼容,作為云或虛擬化系統(tǒng)的基礎(chǔ)資源。在測試和實踐過程中,我們發(fā)現(xiàn),在系統(tǒng)冗余切換過程中,因為 SR-IOV 技術(shù)特性,從虛擬機(jī)遷移到另外一臺物理主機(jī)后,需要對 SR-IOV 虛擬網(wǎng)卡與目標(biāo)設(shè)備的物理網(wǎng)卡進(jìn)行一次關(guān)聯(lián)映射。未來,隨著 DPDK 技術(shù)的發(fā)展,可以做到更好地控制流量整型,更完美地實現(xiàn)虛擬機(jī)在物理機(jī)間的熱遷移,更加充分地使用云計算自身的動態(tài)分配所帶來的紅利。
作者:昆明廣播電視臺 方嘉珂 楊劍霖
轉(zhuǎn)載請注明來自發(fā)表學(xué)術(shù)論文網(wǎng):http:///wslw/30157.html