VirtIO
VirtIO 由 Rusty Russell 開(kāi)發(fā),最初是為了支持自己開(kāi)發(fā)的 lguest Hypervisor,其設(shè)計(jì)目標(biāo)是在虛擬化環(huán)境下提供與物理設(shè)備相近的 I/O 功能和性能,并且避免在虛擬機(jī)中安裝額外的驅(qū)動(dòng)程序。基于這一目標(biāo),后來(lái)通過(guò)開(kāi)源的方式將 VirtIO 延伸為一種虛擬化設(shè)備接口標(biāo)準(zhǔn),并廣泛地支持 KVM、QEMU、Xen 和 VMware 等虛擬化解決方案。
為了追求更高的性能和更低的開(kāi)銷(xiāo)表現(xiàn),VirtIO 采用了 Para-virtualizaiton(半虛擬化/準(zhǔn)虛擬化)技術(shù)路線,本質(zhì)區(qū)別于性能低下的 Full-virtualizaiton(e.g. QEMU I/O Emulation)。這也意味著使用 VirtIO 的 GuestOS 需要經(jīng)過(guò)一定的代碼修改(安裝非原生的 Device Driver),這也是為什么需要將 VirtIO 定位于 “虛擬化設(shè)備接口標(biāo)準(zhǔn)“ 的原因,其整體的集成架構(gòu)需要由 Front-end(GuestOS Kernel Device Driver)和 Back-end(VMM Provider)共同遵守統(tǒng)一的傳輸協(xié)議。
在應(yīng)用 VirtIO 的場(chǎng)景中,除了 GuestOS 需要安裝額外的 VirtIO Front-end Device Driver 這一點(diǎn)不足之外(通常在制作 QCOW2 鏡像時(shí)會(huì)安裝好),相對(duì)地帶來(lái)了下列諸多好處:
高性能:VirtIO 省去了 Full-virtualizaiton 模式下的 Traps(操作捕獲)環(huán)節(jié),GuestOS 通過(guò) VirtIO Interfaces 可以直接與 Hypervisor 中的 Device Emulation 進(jìn)行交互。
低開(kāi)銷(xiāo):VirtIO 優(yōu)化了 CPU 在內(nèi)核態(tài)和用戶態(tài)之間頻繁切換,以及 CPU 在 VM Exit 和 VM Entry 之間頻繁陷入陷出所帶來(lái)的性能開(kāi)銷(xiāo)。
標(biāo)準(zhǔn)化:VirtIO 實(shí)現(xiàn)了統(tǒng)一的虛擬設(shè)備接口標(biāo)準(zhǔn),可以應(yīng)用在多種虛擬化解決方案中。
VirtIO 虛擬設(shè)備接口標(biāo)準(zhǔn)
為了抑制 Para-virtualizaiton 所具有的跨平臺(tái)兼容性缺點(diǎn),VirtIO 明智地走上了開(kāi)源之路,通過(guò)構(gòu)建標(biāo)準(zhǔn)而統(tǒng)一的生態(tài)來(lái)爭(zhēng)取最小化的兼容性排斥問(wèn)題,反而讓其逆轉(zhuǎn)成為了一種優(yōu)勢(shì)。
在 VirtIO 提出的虛擬化設(shè)備接口標(biāo)準(zhǔn)中,包括多個(gè)子系統(tǒng),每個(gè)子系統(tǒng)都定義了一組虛擬設(shè)備類(lèi)型和協(xié)議。例如:
VirtIO-Block(塊設(shè)備):提供虛擬磁盤(pán)設(shè)備的接口。
VirtIO-Net(網(wǎng)絡(luò)設(shè)備):提供虛擬網(wǎng)絡(luò)設(shè)備的接口。
VirtIO-Serial(串口設(shè)備):提供虛擬串口設(shè)備的接口。
VirtIO-Memory(內(nèi)存設(shè)備):提供虛擬內(nèi)存設(shè)備的接口。
VirtIO-Input(輸入設(shè)備):提供虛擬輸入設(shè)備的接口。
此外還有 VirtIO-SCSI、VirtIO-NVMe、VirtIO-GPU、VirtIO-FS、VirtIO-VSock 等等虛擬設(shè)備類(lèi)型和協(xié)議。
VirtIO 的前后端分層架構(gòu)
VirtIO 虛擬設(shè)備接口標(biāo)準(zhǔn)的分層軟件架構(gòu)如下圖所示:
Front-end:是一組通用的,安裝在 GuestOS Kernel 中的 VirtIO Device Driver,通過(guò) Hyper-call 的方式對(duì) Back-end 進(jìn)行調(diào)用。
Back-end:是一組 Hypervisor 專(zhuān)用的,運(yùn)行在 VMM 中的設(shè)備模擬程序,提供了 Hyper-call 調(diào)用接口。
Transport:是一組標(biāo)準(zhǔn)的傳輸層接口,基于環(huán)形隊(duì)列的方式來(lái)批量處理 I/O 請(qǐng)求。
VirtIO 的數(shù)控路徑分離架構(gòu)
VirtIO 還定義了 “控制路徑” 和 “數(shù)據(jù)路徑” 的分離架構(gòu),兩者的側(cè)重各有不同,控制平面追求盡可能的靈活以兼容不用的設(shè)備和廠商,而數(shù)據(jù)平面則追求更高的轉(zhuǎn)發(fā)效率以快速的交換數(shù)據(jù)包。
控制路徑:控制建立或刪除 Front-end 和 Back-end 之間的數(shù)據(jù)路徑,提供可管理的靈活性。
數(shù)據(jù)路徑:在 Front-end 和 Back-end 之間進(jìn)行數(shù)據(jù)傳輸,追求性能。
對(duì)應(yīng)地,VirtIO 標(biāo)準(zhǔn)也可以分為兩個(gè)部分:
VirtIO Spec:定義了如何在 Front-end 和 Back-end 之間構(gòu)建控制路徑和數(shù)據(jù)路徑的標(biāo)準(zhǔn),例如:數(shù)據(jù)路徑規(guī)定采用環(huán)形隊(duì)列緩沖區(qū)布局。
Vhost Protocol:定義了如何降數(shù)據(jù)路徑的高性能實(shí)現(xiàn)標(biāo)準(zhǔn),例如:基于 Kernel、DPDK、SmartNIC Offloading 的實(shí)現(xiàn)方式。
以 QEMU 為例,其根據(jù) VirtIO Spec 實(shí)現(xiàn)了控制路徑,而數(shù)據(jù)路徑則可以 Bypass QEMU,使用 vhost-net、vhost-user 等實(shí)現(xiàn)。
VirtIO Networking
VirtIO Networking 是一種高功能、高性能、可擴(kuò)展的虛擬化網(wǎng)絡(luò)設(shè)備,支持多種網(wǎng)絡(luò)功能和虛擬網(wǎng)絡(luò)技術(shù),并可以通過(guò)多種實(shí)現(xiàn)方式進(jìn)行部署。
網(wǎng)絡(luò)功能:MAC 地址、流量限制、流量過(guò)濾、多隊(duì)列收發(fā)等;
虛擬網(wǎng)絡(luò)技術(shù):VLAN、GRE、VXLAN 等;
多種實(shí)現(xiàn)方式:Kernel、DPDK、硬件網(wǎng)卡等。
virtio-net Driver 和 virtio-net Device(由 QEMU 模擬的后端)
virtio-net 是 VirtIO Networking 的默認(rèn)實(shí)現(xiàn)。其中,F(xiàn)ront-end 是 virtio-net Driver(虛擬網(wǎng)卡驅(qū)動(dòng)程序);Back-end 是由 QEMU 軟件模擬的 virtio-net Device。
QEMU 會(huì)在 VM 啟動(dòng)時(shí),為 VM 創(chuàng)建好相應(yīng)的 virtio-net Device(虛擬設(shè)備),并在 VM 啟動(dòng)后,通過(guò)在 GuestOS Kernel 中安裝的 virtio-net Driver 來(lái) Probe(探知)到該 virtio-net Device。
virtio-net Driver 和 virtio-net Device 的軟件架構(gòu)如下圖所示,我們需要關(guān)注 3 個(gè)方面:
Control Plane:virtio-net Driver 和 virtio-net Device 之間使用了 PCI 傳輸協(xié)議,如下圖中藍(lán)線部分。
Data Plane:virtio-net Driver 和 virtio-net Device 之間使用了 Virtqueues 和 Vrings,如下圖中紅虛線部分。而 virtio-net Device 和 Kernel Network Stack 之間使用了 Tap 虛擬網(wǎng)卡設(shè)備,作為 User space(QEMU)和 Kernel space(Network Stack)之間的數(shù)據(jù)傳輸通道,如下圖中紅實(shí)線部分。
Notification:作為 virtio-net Driver、virtio-net Device 和 KVM 之間交互方式,用于實(shí)現(xiàn) “vCPU 硬中斷“ 的功能。
其中值得細(xì)究的就是 virtio-net Driver 和 virtio-net Device 之間的 Transport(傳輸層)實(shí)現(xiàn)。virtio-net Transport 采用了非常類(lèi)似于物理網(wǎng)卡設(shè)備(NIC Rx/Tx Queues 和 Kernel Rx/Tx Rings)的設(shè)計(jì)思路。
Front-end 和 Back-end 之間存在 2 個(gè) Virtqueues,對(duì)應(yīng)到 NIC 的 Rx/Tx Queues。Virtqueues 的底層利用了 IPC 共享內(nèi)存技術(shù),在 HostOS 和 GuestOS 之間建立直接的傳輸通道,繞開(kāi)了 VMM 的低效處理。
Receive Queue:是一塊 Buffer 內(nèi)存空間,存放具體的由 Back-end 發(fā)送到 Front-end 數(shù)據(jù)。
Send Queue:是一塊 Buffer 內(nèi)存空間,存放具體的由 Front-end 發(fā)送到 Back-end 數(shù)據(jù)。
同時(shí),每個(gè) Virtqueue 都具有 2 個(gè) Vrings,對(duì)應(yīng)到 Kernel 的 Rx/Tx Rings:
Available Ring:存放 Front-end 向 Back-end 發(fā)送的 Queue 中可用的 Buffer 內(nèi)存地址。
Used Ring:存放 Back-end 向 Front-end 發(fā)送的 Queue 中已使用的 Buffer 內(nèi)存地址。
當(dāng)然,F(xiàn)ront-end 和 Back-end 之間還需要一種雙向通知機(jī)制,對(duì)應(yīng)到 NIC 和 CPU 之間的硬中斷信號(hào):
Available Buffer Notification:Front-end 使用此信號(hào)通知 Back-end 存在待處理的緩沖區(qū)。
Used Buffer Notification:Back-end 使用此信號(hào)標(biāo)志已完成處理某些緩沖區(qū)。
具體的,當(dāng) GuestOS 發(fā)送數(shù)據(jù)時(shí),F(xiàn)ront-end 將數(shù)據(jù)填充到 Send Queue 內(nèi)存空間,然后將地址記錄到 Available Ring,并在適當(dāng)?shù)臅r(shí)候向 Back-end 發(fā)送 Available Buffer Notification;QEMU 接收到通知后,從 Available Ring 中獲取到數(shù)據(jù)的數(shù)據(jù),完成數(shù)據(jù)接收,然后記錄 New Buffer Head Index 到 Used Ring,并在適當(dāng)?shù)臅r(shí)候向 Front-end 發(fā)送一個(gè) Used Buffer Notification。Front-end 接收到通知后釋放對(duì)應(yīng)的 Send Queue 內(nèi)存空間,Available Ring 指針指向下一位。
當(dāng) GuestOS 接收數(shù)據(jù)時(shí),F(xiàn)ront-end 首先分配好 NULL 的 Receive Queue 內(nèi)存空間,然后將地址記錄到 Available Ring,并在適當(dāng)?shù)臅r(shí)候向 Back-end 發(fā)送 Available Buffer Notification;QEMU 接收到通知后,從 Available Ring 中獲取到數(shù)據(jù)填充入口地址,完成數(shù)據(jù)填充,然后記錄 New Buffer Head Index 到 Used Ring,并在適當(dāng)?shù)臅r(shí)候向 Front-end 發(fā)送一個(gè) Used Buffer Notification。Front-end 接收到通知后從 Receive Queue 中讀取數(shù)據(jù),Available Ring 指針指向下一位。
值得注意的是,在 PCI Passthrough 場(chǎng)景中,可以使用 virtio-pci(更多的是使用 VFIO)。雖然此時(shí)依舊會(huì)沿用了 Available/Used buffer notification 這一控制面的雙向通知機(jī)制,但實(shí)際的數(shù)據(jù)面,則是由 DMA 和專(zhuān)用隊(duì)列來(lái)完成的,具有更高的性能。這體現(xiàn)了數(shù)控分離帶來(lái)的好處。
綜上所述,下述流程圖總結(jié)了 2 個(gè)關(guān)鍵流程:
virtio-net Device 初始化流程:包括 Device discovery 和 Device configuration。對(duì)于 virtio-net Driver 而言,virtio-net Device 就是一個(gè) PCI 設(shè)備,遵守標(biāo)準(zhǔn)的 PCI 設(shè)備初始化流程,并且 Driver 和 Device 使用 PCI 協(xié)議進(jìn)行通信。
virtio-net Driver 發(fā)包流程:
當(dāng) virtio-net Driver 發(fā)送數(shù)據(jù)包時(shí),將數(shù)據(jù)包放入 Send Queue,將數(shù)據(jù)包的訪問(wèn)地址放入 Available Ring,觸發(fā)一次 Available Buffer Notification 到 KVM,然后 VM Exit,由 QEMU 接管 CPU,執(zhí)行 I/O 控制邏輯,將此數(shù)據(jù)包傳遞到 virtio-net Device,然后 virtio-net Device 降數(shù)據(jù)包通過(guò) Tap 設(shè)備傳入 Kernel Network Stack;
完成后,QEMU 將 New Buffer Head Index 放入到 Used Ring 中,同時(shí) virtio-net Device 發(fā)出一個(gè) vIRQ 中斷注入到 KVM,然后 KVM 發(fā)出一個(gè) Used Buffer Notification 到 virtio-net Driver,此時(shí) virtio-net Driver 就會(huì)從 Used Ring 中取出 Buffer Head Index;
至此一次發(fā)送操作就完成了。
另外,由于 Tap 設(shè)備支持 Tx/Rx 多隊(duì)列,所以實(shí)際上也會(huì)存在 N 個(gè) Virtqueues Peer 進(jìn)行一一映射。
vhost-net(由 Kernel 提供的后端)
由 QEMU 模擬的 virtio-net Device 顯然性能不佳,具有頻繁的模式和上下文切換、低效的數(shù)據(jù)拷貝、線程間同步等性能問(wèn)題。于是,VirtIO 社區(qū)在 Kernel 中實(shí)現(xiàn)了一個(gè)新的 vhost-net 后端,以解決上述問(wèn)題。
更低的延遲(latency):比普通 virtio-net 低 10%。
更高的吞吐量(throughput):比普通 virtio-net 高 8 倍,達(dá)到 7~8 Gigabits/Sec。
vhost-net 的核心思想就是將 Data Path Bypass QEMU,定義了一種新的 Data Path 傳輸方式,使得 GuestOS virtio-net Driver 和 HostOS Kernel vhost-net 可以直接通信。如下圖所示:
Control Plane:virtio-net Driver 和 virtio-net Device 之間使用了 PCI 傳輸協(xié)議,virtio-net Device 和 vhost-net 之間使用 ioctl() 接口,如下圖中藍(lán)線部分。
Data Plane:virtio-net Driver 和 vhost-net 直通,如下圖中虛線部分。而 vhost-net 和 Kernel Network Stack 之間使用了 Tap 虛擬網(wǎng)卡設(shè)備連接,如下圖中紅實(shí)線部分。
Notification:作為 virtio-net Driver、vhost-net 和 KVM 之間交互方式,用于實(shí)現(xiàn) “vCPU 硬中斷“ 的功能。
vhost-net 的本質(zhì)是一個(gè) HostOS Kernel Module,實(shí)現(xiàn)了 vhost-net Protocol 標(biāo)準(zhǔn),當(dāng) Kernel 加載 vhost-net 后,會(huì)暴露一個(gè)設(shè)備接口文件 /dev/vhost-net。
當(dāng) QEMU 在 vhost-net 模式下啟動(dòng)時(shí),QEMU(virtio-net Device)首先會(huì) open() 該文件,并通過(guò) ioctl() 與 vhost-net 進(jìn)行交互,繼而完成 vhost-net 實(shí)例的 Setup(初始化)。初始化的核心是建立 virtio-net Driver 和 vhost-net 之間的 Data Path 以及 Notification,包括:
Hypervisor Memory Layout(虛擬化內(nèi)存布局):用于 Data Path 傳輸,讓 vhost-net 可以在 KVM 的內(nèi)存空間中找到特定 VM 的 Virtqueues 和 Vrings 的地址空間。
ioeventfd 和 irqfd(文件描述符):用于 Notification 傳輸,讓 vhost-net 和 KVM 之間可以在 Kernel space 中完成 Notification 的直接交互,不再需要通過(guò) User space 中的 QEMU。
同時(shí),在 vhost-net 實(shí)例初始化的過(guò)程中,vhost-net 會(huì)創(chuàng)建一個(gè) Kernel Thread(vhost worker thread),名為 vhost-$pid(pid 是 QEMU 進(jìn)程 PID),QEMU 進(jìn)程就和 vhost-net 實(shí)例以此建立了聯(lián)系。vhost worker thread 用于處理 I/O Event(異步 I/O 模式),包括:
使用 ioeventfd 輪詢(xún) Tap 事件和 Notify 事件,并轉(zhuǎn)發(fā)數(shù)據(jù)。
使用 irqfd 允許 vhost-net/KVM 通過(guò)對(duì)其進(jìn)行寫(xiě)入來(lái)將 vCPU 的 vIRQ 注入到 virtio-net Driver。
綜上,在 vhost-net 實(shí)例初始化完成之后,virtio-net Device 將不再負(fù)責(zé)數(shù)據(jù)包的處理(對(duì) Virtqueues 和 Vrings 的讀/寫(xiě)操作),取而代之的是 vhost-net。vhost-net 可以直接訪問(wèn) VM 的 Virtqueues 和 Vrings 內(nèi)存空間,也可以通過(guò) KVM 與 virtio-net Driver 進(jìn)行 Notification 交互。
最后需要注意的是,vhost-net 在某些應(yīng)用場(chǎng)景中的性能未必就會(huì)比 virtio-net Device 更好。例如:從 HostOS 傳輸?shù)?GuestOS 的 UDP 流量,如果 GuestOS 接受 UDP 數(shù)據(jù)包的速度比 HostOS 發(fā)送的速度要慢,在這種情況下使用 vhost-net 將會(huì)導(dǎo)致 GuestOS UDP Socket Receive Buffer 更容易溢出,導(dǎo)致丟包,繼而使得 GuestOS 的整體性能出現(xiàn)下降。此時(shí)使用慢速的 virtio-net,讓 HostOS 和 GuestOS 之間的傳輸速度稍微慢一點(diǎn),反而會(huì)提高整體的性能。
可見(jiàn),在虛擬機(jī)場(chǎng)景中,全鏈路的性能均衡需要給予更加全面的考慮。
vhost-user(由 DPDK 實(shí)現(xiàn)的用戶態(tài)后端)
vhost-user 是一個(gè)基于 DPDK vhost-user Library 開(kāi)發(fā)的后端,運(yùn)行在 User space,應(yīng)用了 DPDK 所提供的 CPU 親和性,大頁(yè)內(nèi)存,輪詢(xún)模式驅(qū)動(dòng)等數(shù)據(jù)面轉(zhuǎn)發(fā)加速技術(shù)。
區(qū)別于 vhost-net Protocol,vhost-user Library 實(shí)現(xiàn)了一種新的 vhost-user Protocol,兩者間最大的區(qū)別體現(xiàn)在通信信道的實(shí)現(xiàn)方式上。
vhost-net:使用 /dev/vhost-net 字符設(shè)備和 ioctl() 實(shí)現(xiàn)了 User Process(QEMU)和 Kernel(vhost-net)之間的 Control Plane 通信信道。
vhost-user:使用 Unix Socket 實(shí)現(xiàn)了 User Process(QEMU 和 DPDK App)之間的 Control Plane 通信信道。
QEMU 通過(guò) Unix Socket 來(lái)完成對(duì) vhost-user 的 Data Plane 配置,包括:
特性協(xié)商配置:QEMU(virtio-net Device)與 vhost-user 協(xié)商兩者間功能特性的交集,確認(rèn)哪些功能特性是有效的。
內(nèi)存區(qū)域配置:vhost-user 使用 mmap() 來(lái)映射分配給 QEMU 的內(nèi)存區(qū)域,建立兩者間的直接數(shù)據(jù)傳輸通道。
Virtqueues/Vrings 配置:QEMU 將 Virtqueues/Vrings 的數(shù)量和訪問(wèn)地址發(fā)送給 vhost-user,以便 vhost-user 訪問(wèn)。
Notification 配置:vhost-user 仍然使用 ioeventfd 和 irqfd 來(lái)完成和 KVM 之間的通知交互。
目前最常見(jiàn)的 vhost-user DPDK App 就是 OVS-DPDK,除了支持 vhost-user Back-end 之外,還支持 virtio-pmd Front-end。在追求極致性能的 vhost-user / virtio-pmd 架構(gòu)中,HostOS User space 和 GuestOS User space 都運(yùn)行著 DPDK。
用戶可以自由選擇創(chuàng)建 vhost-user 類(lèi)型的 vSwitch Port(對(duì)應(yīng)一個(gè) vhost-user 實(shí)例)。如下圖所示。
HW vDPA(使用硬件加速的后端)
目前性能最好的 Data Plane 無(wú)疑是 SR-IOV VF Passthrough,但原生的 SR-IOV 缺少控制面邏輯,在實(shí)際使用中多有不便。
HW vDPA(Hardware vhost Data Path Acceleration,硬件 vhost 數(shù)據(jù)面加速)就是一種使用 SR-IOV VF 來(lái)充當(dāng) Data Plane、使用 vDPA Framework 來(lái)充當(dāng)控制面的軟硬件融合加速技術(shù),能夠同時(shí)兼具軟件的可管理性、靈活性以及硬件的高性能。同時(shí)也解決了 VF Passthrough 虛擬機(jī)不支持熱遷移的難題。
NOTE:SW vDPA(e.g. vDPA on OVS-DPDK)不在本文討論范圍中。
下圖中展示了 OVS-DPDK 和 HW vDPA 的性能對(duì)比。
目前 vDPA Framework 的底層實(shí)現(xiàn)方式還尚未統(tǒng)一,從 QEMU 的角度來(lái)看,主要有 2 種方式:
適應(yīng)性更好的 vhost-user + vDPA Driver:在 DPDK vhost-user Library 的基礎(chǔ)之上,再實(shí)現(xiàn)一個(gè) vDPA Driver 適配層。由 vDPA Driver 完成與 HW Device(e.g. SmartNIC、DPU)之間的交互。從下圖中可以看到 QEMU 與 HW 的 Control Plane 通過(guò) vDPA driver 進(jìn)行傳遞,并配置好 HW 與 VM 之間的 Passthrough Data Plane。目前 Mellanox MLX5 和 Intel IFC 對(duì)應(yīng)的 vDPA Driver 都已經(jīng)合入到 DPDK 和 Kernel 社區(qū)。(注:IOMMU/VFIO 實(shí)現(xiàn)原理請(qǐng)瀏覽《虛擬化技術(shù) — 硬件輔助的虛擬化技術(shù)》。)
架構(gòu)更合理的 vhost-vdpa:實(shí)現(xiàn)一種新的 vhost-vdpa Protocol,QEMU 通過(guò) ioctl() 調(diào)用 Kernel 中的 vDPA Module,再由 vDPA Module 通過(guò) vDPA Driver 完成與 HW Device 之間的交互。
目前,隨著 SmartNIC / DPU 的快速發(fā)展,一種結(jié)合了 SW vDPA 和 HW vDPA 特性的 HW vDPA on OVS-DPDK 方案也逐漸成熟中,其實(shí)現(xiàn)會(huì)更加復(fù)雜、但功能也更加完備。值得期待。
審核編輯:劉清
-
SCSI接口
+關(guān)注
關(guān)注
0文章
19瀏覽量
10695 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
966瀏覽量
29383 -
VLAN技術(shù)
+關(guān)注
關(guān)注
0文章
45瀏覽量
6584 -
VMM
+關(guān)注
關(guān)注
0文章
11瀏覽量
10226 -
qemu
+關(guān)注
關(guān)注
0文章
57瀏覽量
5679
原文標(biāo)題:詳解:VirtIO Networking 虛擬網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)架構(gòu)
文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
linux設(shè)備中virtio組織關(guān)系及設(shè)備初始化調(diào)用流程

virtio I/O通信流程及設(shè)備框架的實(shí)現(xiàn)

外網(wǎng)訪問(wèn)家里的網(wǎng)絡(luò)設(shè)備
各類(lèi)網(wǎng)絡(luò)設(shè)備
Linux常用網(wǎng)絡(luò)設(shè)備
怎么實(shí)現(xiàn)智能網(wǎng)絡(luò)設(shè)備開(kāi)發(fā)中的硬件的設(shè)計(jì)?
StratoVirt 的 virtio-blk 設(shè)備是如何實(shí)現(xiàn)的?
StratoVirt 中的虛擬網(wǎng)卡是如何實(shí)現(xiàn)的?
網(wǎng)絡(luò)設(shè)備監(jiān)管系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
家用網(wǎng)絡(luò)設(shè)備簡(jiǎn)介
系統(tǒng)虛擬化技術(shù)virtio總體設(shè)計(jì)思想

探究I/O虛擬化及Virtio接口技術(shù)(上)

探究I/O虛擬化及Virtio接口技術(shù)(下)

panabit加載virtio網(wǎng)卡驅(qū)動(dòng)
適用于基于FPGA的網(wǎng)絡(luò)設(shè)備的IEEE 1588透明時(shí)鐘架構(gòu)

評(píng)論