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