⚙️ Jak skonfigurować SR-IOV (Single Root I/O Virtualization)?
Główna fraza: wirtualizacja
🧩 Wprowadzenie do SR-IOV
Wirtualizacja zmieniła sposób zarządzania infrastrukturą IT, zwiększając elastyczność i efektywność wykorzystania zasobów. Wśród zaawansowanych technologii wspierających wydajność środowisk wirtualnych znajduje się SR-IOV (Single Root I/O Virtualization).
SR-IOV umożliwia bezpośrednie przypisanie wirtualnych funkcji (Virtual Functions – VF) urządzenia PCIe (najczęściej karty sieciowej) do maszyn wirtualnych, omijając warstwę hypervisora. Dzięki temu znacząco redukuje się opóźnienia i poprawia przepustowość sieci.

🎯 Zastosowanie SR-IOV
🔹 Środowiska o wysokiej wydajności (HPC, Big Data)
🔹 Wirtualizacja sieci w centrach danych
🔹 Serwery wrażliwe na opóźnienia (np. VoIP, transmisje wideo)
🔹 Kontenery i maszyny wirtualne o dużych wymaganiach sieciowych
✅ Wymagania wstępne
Aby skonfigurować SR-IOV, potrzebujesz:
- 🖥️ Serwera z procesorem i płytą główną obsługującą SR-IOV
- 🌐 Karty sieciowej (NIC) z obsługą SR-IOV
- ⚙️ Systemu operacyjnego i hypervisora z obsługą SR-IOV (np. VMware ESXi, Proxmox, Hyper-V, KVM)
- 🧬 Włączonej w BIOS/UEFI opcji SR-IOV oraz VT-d / AMD-Vi
🔧 Konfiguracja SR-IOV krok po kroku
🟨 Krok 1: Włącz SR-IOV w BIOS/UEFI
- Uruchom serwer i wejdź do BIOS/UEFI
- Przejdź do ustawień zaawansowanych
- Włącz:
- Intel VT-d (lub AMD IOMMU)
- SR-IOV
- Zapisz zmiany i uruchom ponownie
🟦 Krok 2: Sprawdzenie obsługi SR-IOV w systemie Linux
lspci | grep -i ethernet
lspci -vvv | grep -i sriov
Aby sprawdzić liczbę dostępnych funkcji VF (Virtual Functions):
cat /sys/class/net/<interface>/device/sriov_totalvfs
🟥 Krok 3: Włączenie VF na interfejsie
echo 4 > /sys/class/net/<interface>/device/sriov_numvfs
To polecenie utworzy 4 VF (możesz zmienić liczbę).
🟩 Krok 4: Konfiguracja hypervisora
KVM (libvirt)
W pliku XML maszyny wirtualnej dodaj sekcję:
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x03' slot='0x10' function='0x1'/>
</source>
</hostdev>
Następnie zrestartuj maszynę.
Proxmox
- Zidentyfikuj urządzenie VF:
lspci | grep Virtual
- Dodaj do VM w
vm.conf:
hostpci0: 03:10.1,pcie=1
VMware ESXi
- Włącz SR-IOV w ustawieniach NIC
- Przypisz VF do maszyny wirtualnej w ustawieniach sieci VM
- Włącz „DirectPath I/O” dla wybranych urządzeń
📊 Zalety SR-IOV
| Funkcja | Korzyść |
|---|---|
| Bezpośredni dostęp do sprzętu | Niższe opóźnienia i wyższa wydajność |
| Izolacja zasobów | Lepsze bezpieczeństwo i deterministyczność |
| Mniejsze obciążenie CPU | Zmniejsza rolę hypervisora w przetwarzaniu I/O |
⚠️ Uwagi i ograniczenia
- SR-IOV ogranicza mobilność VM (np. vMotion w VMware)
- Wymaga dokładnej zgodności sprzętu i sterowników
- Nie wszystkie systemy wspierają zarządzanie SR-IOV z GUI
🧠 Praktyczny przykład
Załóżmy, że masz serwer z kartą Intel X520 z obsługą SR-IOV. Chcesz przydzielić 2 VF do dwóch maszyn:
- W BIOS włączasz SR-IOV i VT-d
- W systemie uruchamiasz:
echo 2 > /sys/class/net/eth0/device/sriov_numvfs
- VF pojawiają się jako:
0000:03:10.1
0000:03:10.2
- Przydzielasz je odpowiednio do maszyn wirtualnych w pliku konfiguracyjnym hypervisora.
🧩 Podsumowanie
Konfiguracja SR-IOV jest nieco bardziej zaawansowana, ale przynosi ogromne korzyści w kontekście wydajności i minimalizacji opóźnień. Jeśli Twoje środowisko opiera się na wysokoprzepustowej komunikacji sieciowej lub niskim czasie odpowiedzi, warto rozważyć tę technologię w ramach strategii wirtualizacji.






