發表文章

目前顯示的是 12月, 2020的文章

Single Root I/O Virtualization (SR-IOV) 介紹

圖片
在虛擬化技術中, 最一開始的技術從硬碟開始, 之後是 CPU 與記憶體的虛擬化, 最後則慢慢走向網路以及各種周邊裝置虛擬化, 其中, 在網路虛擬化的部分, 一開始以軟體方案 (OpenVSwitch) 為主, 此類方法依賴 Host Machine 上的程式進行資料的轉傳, 限制了 Virtual Machine 上的網路的效能. 為了增進其他裝置 (CPU, 記憶體, 硬碟) 的虛擬化程度, Intel 提出了 SR-IOV (Single Root I/O Virtualization) 的機制, 目標是透過對 PCIe 介面的虛擬化, 使一個裝置可以服務多個虛擬機, 其中, SR 代表只有一個 Host Machine, 也就是一般家用電腦狀況, 相對應的有所謂的 MR-IOV (Multi-Root I/O Virtualization), MR-IOV 適用於刀鋒伺服器 (Blade Server) 架構, 在此架構下, 多張刀鋒伺服器共享同一機櫃之 IO 支援 (如對外網路), 因此會出現多台 Host Machine (Multi-Root) 對單一 IO 裝置的存取需求. 考慮到 MR-IOV 可視為 SR-IOV 的延伸, 我們著重介紹 SR-IOV 的部分,  在 SR-IOV 中, 將原本提供 Physical Function (PF),  切割成多個 Virtual Function (VF), 而每個 VF 對應到不同的虛擬網卡, 其框架可以以下圖表示: 來自:  https://www.marvell.com/content/dam/marvell/en/public-collateral/ethernet-adaptersandcontrollers/marvell-ethernet-adapters-fastlinq-concurrent-nic-partitioning-sr-iov-technology-brief-2018-07.pdf 由上圖中可以發現, SR-IOV 需要裝置本身的支援 (PF和VF的功能提供), 以及虛擬層 (hypervisor) 的支援, 其中, PF 可以視為原本裝置的 driver 支援, 負責和 hpervisor 進行溝通, 當虛擬機生成後, 就直接透過 VF 進行溝通, 直接操作裝置, 我們

LTE筆記: 5G Time Sensitive Communications ~ NTP 協定

圖片
在5G工業物聯網的應用中, 其中一項重要的應用就是低延遲網路, 低延遲網路可用於智慧工廠中, 特別是對於精密控制的工業機台, 在 3GPP 的架構中, 這些應用屬於工業 4.0 的範疇, 並將需要精密時間同步的工業物聯網服務稱為 Time Sensitive Communications (TSC), https://www.3gpp.org/news-events/2122-tsn_v_lan 其中, 用以支持精密同步的通訊協定為 802.1AS. 802.1AS 繼承自 IEEE 1588v2, 也稱為 PTP (Precision Time Protocol), PTP 的基本同步架構沿襲自 NTP (Network Time Protocol), 但考量了大型網路的複雜度, 對於網路中介裝置 (Bridge 或 Switch), 加入修正的機制, 以及對時鐘 (Grand Master, GM) 的選擇機制, 主要目標在於服務無法以 GPS 對時, 但需要比 NTP 更精確同步的場域, 其同步精確度的設計為 500 ns (七個網路節點, 時脈飄移小於 1PPM). 考慮到 802.1AS 是源自於 NTP 的設計, 我們在此篇文章中, 先介紹 NTP 的對時設計,  在 NTP 的基本想法中, 透過兩裝置封包交換, 計算兩者的通訊延遲, 並透過此延遲時間的估算 (下圖的 \delta), 用以同步兩個裝置的時間, 來自:  https://en.wikipedia.org/wiki/Network_Time_Protocol 在NTP中, 假設兩個裝置互相傳送封包 (上行/下行) 的延遲一致, 因此 \delta = ((t3-t2)+(t1-t0)) = 65 (ms) \delta 代表的是藍色部分的漂移時間 (propagation time), 其值除以二就代表著封包從 Server 到 Client 所需的單向漂移時間, 因此, Client 可以參考從 Server 送出的參考時間, 加上單向漂移時間, 用以作為本地校正的時間數值. 在 NTP 的架構下, 兩點之間的時間同步不成問題, 因為在同一個區網下, 同一網路媒介下, 上行和下行的時間差異不大, 但對於一個大型網路而言, 則會有以下兩個問題: 當有多個裝置想當 Server 時, 應以誰