經驗告訴我們如果使用SR-IOV(Single-root I/O virtualization,單根I/O虛擬化),Windows Server 2012的網絡會使處理器利用率和網絡延遲降低50%,而且會增加30%的網絡吞吐率。通過網絡性能的優化,可以在不花錢投資網絡基礎設施的情況下,在同樣一臺服務器上支持更多的虛擬機,或在高I/O負載的機器上很好地運行VM。SR-IOV提供的低延遲可以讓對延遲敏感的網絡流量(例如交易型數據或流媒體)有更好的網絡性能。
SR-IOV還支持Live Migration,不過這個功能并不需要遠程端(目標端)對SR-IOV的支持,也就是說你可以將一個在SR-IOV服務器上的虛擬機(VM)移動到另一臺服務器上,不管這臺服務器是不是支持SR-IOV。這允許了組織機構在不需要完整的承諾的基礎上,有組織地、系統地進行實驗和部署SR-IOV平臺。
不過SR-IOV同樣也有一些限制,比方說系統需求。SR-IOV部署并不是自動化的;PCIe卡(NIC)、主板、BIOS和宿主機都需要支持SR-IOV以便虛擬機能使用虛擬化功能(VF)。有些組織機構可能要等到下一次服務器技術更新才能去更新支持SR-IOV的服務器硬件和PCIe卡。
另外一個問題是最大VF支持數。理論上一塊網卡最大的VF支持數量是256個,但是實際的數量要比這個數量少很多,因為網卡本身需要消耗一些基本的資源。記住,SR-IOV只是提供了一種共享PCIe設備的方法——它并沒有增加現有設備的能力——所以如果一個網卡共享過渡,SR-IOV會超負荷工作。舉個例子,一個1Gb網卡實際上能支持達8個VF,而一個10Gb網卡實際上能支持達64個VF。需要高負載的環境可能會讓這個數字減少,所以在把SR-IOV部署到生產環境中前測試共享和評估負載通信的性能是非常重要的。
VM移植可能也會成為一個問題。基本上SR-IOV允許一個VM和PCIe設備進行直接地交互,將一個VM遷移到另一個服務器(即使這個服務器支持Live Migration)上會有問題,除非宿主機可以將負載從SR-IOV服務器上遷移到非SR-IOV服務器上。這也是另一個在部署到生產環境中前需要做好研究的功能。直接交互的負載可能在遷移開始時就出現故障。
最后,要考慮到當SR-IOV部署的時候對外界網絡交換機和流量的影響。記住,一個服務器可能可以完美地識別和管理很多VM,但是使用的交換機端口是沒有辦法去區分這些虛擬機流量的。舉個例子,從一個VF到另一個VF的流量可能在同一個物理口上,不過外部交換機不需要知道流量需要經過這個口。這可能會帶來交換問題或者讓人困惑。確保在SR-IOV部署的時候讓IT網絡架構師也參與進來。
在數據中心服務器虛擬化標準中,現在的焦點轉移到了優化上,技術在進化以至于可以減緩宿主機虛擬化層帶來的任何延遲,同時增強了系統性能到了裸物理機的等級。SR-IOV就是一項PCI-SIG開發和維護的技術,由硬件廠商Intel VT-d和前沿的OS廠家支持的技術。