發表文章

目前顯示的是有「OS」標籤的文章

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 進行溝通, 當虛擬機生成後, 就直接透過 ...

kvm-clock: KVM guest machine 的計時機制

在雲端的架構中, 虛擬機 (virtual machine, or guest machine) 透過hypervisor取得實體機 (physical machine, or host machine) 的硬體資源, 其中, 有根據虛擬化的程度又分為許多不同的虛擬化技術, 像是virtualbox和VMWare的全虛擬化, 虛擬化完整的作業系統, docker或是LXC的container技術, 虛擬機像是一隻程式, 沒有獨立的作業系統, 另外, 還有一種辦虛擬化技術, host machine和guest machine共享Linux Kernel, 例如: KVM (Kernel-based Virtual Machine) http://www.linux-kvm.org/page/Main_Page 在本篇文章中, 我們將討論KVM架構下, host machine和guest machine之間的同步關係.