15 grudnia 2025 roku Microsoft ogłosił, że system Windows Server 2025 w końcu wdroży natywnie standard NVMe w swojej architekturze pamięci masowej. Pamięć masowa NVMe jest jednak popularnym formatem pamięci masowej na serwerach, stacjach roboczych klasy korporacyjnej i komputerach konsumenckich od wielu lat, a kompatybilność z systemami operacyjnymi jest wbudowana od czasów systemu Windows Server 2012 R2 i Windows 8.1. W związku z tym, ogłoszenie o „natywnej” obsłudze NVMe może wydawać się nieistotne, a nawet nieciekawe, ale zapewniamy, że kryje się za tym coś więcej, niż się wydaje na pierwszy rzut oka.
Co w ogóle oznacza „natywny NVMe”?
W poprzednich wersjach stosów pamięci masowej systemu Windows dla użytkowników indywidualnych i serwerów polecenia służące do odczytu i zapisu danych, niezależnie od protokołów sprzętowych, były zawsze tłumaczone na polecenia SCSI. Standard Small Computer System Interface (SCSI) pochodzi z początku lat 1980. XX wieku i został opracowany w celu łączenia urządzeń peryferyjnych i dysków twardych z komputerami (Storage Networking Industry Association, Dakota Północna). Stanowi on podstawę wielu nowoczesnych protokołów pamięci masowej wykorzystywanych w różnych obciążeniach, w tym protokołów sieciowych, takich jak iSCSI (Internet Small Computer System Interface) i FCP (Fibre Channel Protocol), a także lokalnych interfejsów pamięci masowej, takich jak SAS (Serial Attached SCSI) i UASP (USB Attached SCSI).
Stara droga
Konwertując różne protokoły na polecenia SCSI, Microsoft ujednolicił polecenia pamięci masowej na wyższych poziomach systemu operacyjnego. Mimo to, poświęcił wiele usprawnień skalowalności i wydajności, które oferują nowoczesne architektury pamięci masowej. Stara ścieżka dla operacji wejścia/wyjścia wyglądała następująco:
- Operacje odczytu i zapisu odbywają się w górnym stosie pamięci masowej na poziomie systemu plików.
- Polecenia przekazywane są do sterownika Disk.sys.
- Disk.sys tłumaczy ogólne polecenia pamięci masowej na polecenia SCSI.
- Storport odbiera polecenia SCSI i wysyła je do odpowiedniego sterownika Miniport (np. StorAHCI.sys w przypadku dysków SATA).
- Odpowiedni sterownik Miniport komunikuje się bezpośrednio z urządzeniem pamięci masowej, tłumacząc je ponownie na odpowiedni format poleceń pamięci masowej.
Inne konwencje SCSI, takie jak LUN (Logical Unit Numbers) służące do identyfikacji partycji danych na urządzeniu pamięci masowej, zostały przeniesione do stosu pamięci masowej Windows, chociaż nowsze koncepcje, takie jak przestrzenie nazw NVMe, istniały już od dłuższego czasu (Hands, Worley i Lakhveer Kaur, nd).
Nowy standard
Najnowsza architektura pamięci masowej firmy Microsoft dla systemu Windows Server 2025 udostępnia nowe funkcje w Storport i zastępuje Disk.sys systemem NVMeDisk.sys, zapewniając skalowalną, przyjazną dla przyszłości, wysoce wydajną infrastrukturę.
- Operacje odczytu i zapisu odbywają się w górnym stosie pamięci masowej na poziomie systemu plików.
- Polecenia są przekazywane bezpośrednio z pliku NVMeDisk.sys do nowego kodu StorMQ w Storport.
- StorMQ generuje odpowiednie polecenia NVMe (lub innego typu pamięci masowej) dla każdej operacji odczytu i zapisu i wysyła je bezpośrednio do sprzętu.
(Grafika z prezentacji Scotta Lee na konferencji SNIA Developer Conference z 16 września 2025 r.)
Ten nowy standard operacji dyskowych w systemie Windows Server 2025 eliminuje warstwę translacji i w pełni integruje się z kolejkami poleceń pamięci masowej na urządzeniach NVMe, RAID i HBA. Usprawnienie systemu pamięci masowej Windows oferuje również dodatkowe korzyści, takie jak mniejsze wykorzystanie zasobów procesora dzięki wyeliminowaniu zbędnej translacji poleceń pamięci masowej oraz lepsze wykorzystanie procesorów logicznych. Nowa architektura wykorzystuje inne specyfikacje NVMe, takie jak przestrzenie nazw NVMe i obsługa technologii plug-and-play. Umożliwia ona tworzenie sterowników Miniport pamięci masowej specyficznych dla danego dostawcy lub typu urządzenia i „podłączanie” ich do systemu Windows w celu zapewnienia większej kompatybilności i wydajności z nowymi klasami urządzeń pamięci masowej (Lee, SNIA SDC 2025 – Storage Multi-Queue on Windows, 2025).
Gotowy do testu?
W swojej prezentacji na konferencji SNIA Developer Conference, która odbyła się 16 września 2025 roku, Scott Lee ujawnił, że Microsoft ściśle współpracuje z dostawcami w celu opracowania nowych sterowników dla urządzeń takich jak karty RAID i kontrolery HBA. Sugeruje to, że ulepszenia StorMQ pojawią się wkrótce lub mogą być już dostępne na wielu urządzeniach pamięci masowej. Funkcja została ogłoszona jako powszechnie dostępna w grudniu ubiegłego roku, ale nowy stos pamięci masowej jest włączany tylko na zasadzie opt-in, co wymaga dodania klucza rejestru. Instrukcje dotyczące włączania tej funkcji można znaleźć w artykule Microsoftu dotyczącym natywnej obsługi NVMe.
Ostrzeżenie: Nieprawidłowa modyfikacja rejestru może spowodować poważne problemy, dlatego należy najpierw przetestować tę funkcję na serwerze niekrytycznym. Kilku użytkowników, którzy włączyli tę funkcję, zgłosiło problemy z dyskami NVMe z włączoną deduplikacją. Chociaż oficjalna poprawka od firmy Microsoft pojawi się wkrótce, robisz to na własne ryzyko!
Testowanie natywnego interfejsu NVMe w systemie Windows Server 2025
Nasza platforma testowa do oceny natywnego NVMe w systemie Windows Server 2025 (kompilacja systemu operacyjnego 26100.32370) składała się z serwera z dwoma gniazdami SP5, wyposażonego w dwa 128-rdzeniowe procesory AMD EPYC 9754. Oprócz procesorów wielordzeniowych zastosowano równie imponujące 768 GB pamięci DDR5 o przepustowości 4800 MT/s.
Uwaga: Według Yasha Shekara z Microsoftu tymczasowa poprawa niezwiązana z natywnym interfejsem NVMe została już wydana dla systemu Windows Server 2025 i mogła zapewnić dodatkową poprawę w przypadku stosu pamięci masowej innego niż natywny, zmniejszając potencjalną różnicę między wynikami.
Aby ocenić potencjał nowego stosu pamięci masowej, użyliśmy piętnastu dysków SSD Solidigm P5316 NVMe o pojemności 30.72 TB z interfejsem PCIe 4.0 w konfiguracji JBOD. Należy zauważyć, że dysk Solidigm P5316 ma rozmiar jednostki pośredniej wynoszący 64 kilobajty, co oznacza, że wyniki zapisu dla mniejszych rozmiarów (takich jak testy 4K) są często gorsze od oczekiwanych. Biorąc pod uwagę tę większą jednostkę pośrednią, przeprowadziliśmy testy porównawcze FIO z testami odczytu i zapisu dla losowych bloków 4K, losowych i sekwencyjnych 64K oraz sekwencyjnych 128K, aby porównać ogólną prędkość dla bloków o różnych rozmiarach. Monitorowaliśmy również użycie procesora podczas testów, aby zweryfikować zapewnienia Microsoftu o wyższej wydajności.
Najważniejsze
- Znacznie zwiększona przepustowość losowego odczytu 4K i 64K oraz IOPS
- Niższe opóźnienie losowego odczytu 4K i 64K
- Znaczne zmniejszenie wykorzystania procesora podczas sekwencyjnych odczytów i zapisów w blokach o różnych rozmiarach
| metryczny | Losowe 4K | Losowe 64K | Sekwencyjny 64K | Sekwencyjny 128K | ||||
|---|---|---|---|---|---|---|---|---|
| Nie-rodzimy | Tubylec | Nie-rodzimy | Tubylec | Nie-rodzimy | Tubylec | Nie-rodzimy | Tubylec | |
| Czytaj | ||||||||
| Przepustowość (GiB/s) | 6.1 | 10.058 | 74.291 | 91.165 | 35.596 | 35.623 | 86.791 | 92.562 |
| IOPS | 1,598,959 | 2,636,516 | 1,217,176 | 1,493,637 | 583,192 | 583,638 | 710,978 | 758,252 |
| Średnie opóźnienie (ms) | 0.169 | 0.104 | 0.239 | 0.207 | 0.809 | 0.812 | 0.613 | 0.608 |
| Całkowite użycie procesora (%) | 72.67 | 74.22 | 68.44 | 65.11 | 44.89 | 37.11 | 61.56 | 49.56 |
| metryczny | Losowe 4K | Losowe 64K | Sekwencyjny 64K | Sekwencyjny 128K | ||||
|---|---|---|---|---|---|---|---|---|
| Nie-rodzimy | Tubylec | Nie-rodzimy | Tubylec | Nie-rodzimy | Tubylec | Nie-rodzimy | Tubylec | |
| Pisać | ||||||||
| Przepustowość (GiB/s) | 1.803 | 1.756 | 7.654 | 7.655 | 44.67 | 50.087 | 50.477 | 50.079 |
| IOPS | 472,725 | 460,383 | 125,391 | 125,406 | 731,859 | 820,603 | 413,495 | 410,232 |
| Średnie opóźnienie (ms) | 0.992 | 1.028 | 3.814 | 3.816 | 0.399 | 0.558 | 1.022 | 1.149 |
| Całkowite użycie procesora (%) | 26.00 | 20.67 | 12.22 | 9.33 | 70.44 | 57.78 | 58.44 | 47.33 |
Analiza wyników
Zaczynając od losowych testów odczytu 4K i 64K, zaobserwowaliśmy znacznie wyższe prędkości odczytu, z różnicą prawie 4 GiB/s między stosami pamięci natywnej i nienatywnej (odpowiednio) w teście losowego odczytu 4K i wzrostem o prawie 16.9 GiB/s w przypadku losowego odczytu 64K. Zaobserwowaliśmy również przyzwoity wzrost liczby sekwencyjnych operacji odczytu 128K, a nasze testy wykazały wzrost przepustowości o około 5.8 GiB/s.
Co ciekawe, nie zaobserwowaliśmy znaczącego wzrostu przepustowości w naszych testach losowego ani sekwencyjnego zapisu, a jedyną zauważalną różnicą był wzrost o około 5.4 GiB/s w przypadku sekwencyjnych zapisów 64 KB. Większość naszych wyników mieściła się w granicach 100 MiB/s, co sugeruje, że wydajność nowego stosu pamięci masowej jest co najmniej porównywalna z wydajnością starego w przypadkach, w których nie nastąpiła poprawa.
Ponieważ przepustowość jest zazwyczaj skorelowana z opóźnieniem, zaobserwowaliśmy również duże spadki średniego opóźnienia odczytu losowego zarówno dla testów 4K, jak i 64K. Zaobserwowaliśmy spadek o 38.46% w przypadku nienatywnego odczytu losowego 4K, z 0.169 milisekundy do 0.104 milisekundy. Testy odczytu losowego 64K odnotowały mniejszy spadek, wynoszący około 13.39%. Opóźnienie nie zmieniło się drastycznie w przypadku sekwencyjnych operacji odczytu, ale operacje zapisu losowego i sekwencyjnego wykazały wzrost we wszystkich testach, pomimo podobnej lub wyższej przepustowości.
Oprócz wzrostu prędkości odczytu losowego, innym interesującym trendem ujawnionym przez nasze testy FIO był znaczny spadek całkowitego wykorzystania procesora podczas sekwencyjnych operacji odczytu i zapisu 64 KB i 128 KB. Sekwencyjne testy zapisu wykazały najbardziej drastyczne różnice, ze średnim spadkiem o 12.66% wykorzystania procesora dla 64 KB i niemal identycznym spadkiem o 11.11% dla 128 KB. Przeprowadzony przez nas test sekwencyjnego odczytu 128 KB również wykazał odpowiedni spadek wykorzystania o 12%, ale tylko o 7.78% dla sekwencyjnego odczytu 64 KB. Należy wziąć pod uwagę fakt, że przy wystarczająco szybkim procesorze mogą wystąpić sytuacje, w których oba stosy będą mogły osiągnąć pełny potencjał urządzenia pamięci masowej; w związku z tym przepustowość może nie wzrosnąć, ale wykorzystanie zasobów procesora ulegnie zmniejszeniu.
Takeaways
Chociaż wiele naszych wyników mieściło się w granicach rozbieżności między uruchomieniami po włączeniu nowego stosu pamięci masowej, udało nam się potwierdzić wiele twierdzeń Microsoftu, w tym wyższą przepustowość odczytu przy niższych opóźnieniach i zmniejszonym obciążeniu procesora w całym zakresie. Ponieważ jest to dość radykalna zmiana w stosunku do ich stosu pamięci masowej Windows Server, który ma już kilkadziesiąt lat, Microsoft najpierw domyślnie włączy natywny interfejs NVMe w systemie Windows Server vNext. Na szczęście funkcję tę można włączyć w systemie Windows Server 2025 za pomocą szybkiej edycji rejestru lub zasad grupy, co pozwala odważnym administratorom serwerów korzystać z nowego stosu już dziś (po uświadomieniu sobie ryzyka związanego z jego wdrożeniem).
Z niecierpliwością czekamy na włączenie domyślnej obsługi NVMe na platformie Windows Server i liczymy na akceptację ze strony producentów dysków SSD NVMe, kart RAID i kontrolerów HBA, dzięki czemu usprawnienia wprowadzone przez firmę Microsoft powinny osiągnąć jeszcze wyższy poziom!
Referencje
Hands, J., Worley, D. i Lakhveer Kaur. (nd). Przestrzenie nazw NVMe. Pobrano 30 grudnia 2025 r. z NVM Express: https://nvmexpress.org/resource/nvme-namespaces/
Lee, S. (15 września 2025). SNIA SDC 2025 – Storage Multi-Queue w systemie Windows. San Tomas, Kalifornia, Stany Zjednoczone Ameryki: Stowarzyszenie Przemysłu Sieciowego Pamięci Masowych. Pobrano 29 grudnia 2025 r. z https://www.youtube.com/watch?v=dR-DWrmCba0&t
Lee, S. (2025, 16 września). Storage Multi-Queue w systemie Windows: nowy stos dla wydajnego sprzętu pamięci masowej. Pobrano 29 grudnia 2025 r. z konferencji SNIA Developer Conference: https://www.snia.org/sites/default/files/2025-10/SNIA-SDC25-Lee-Storage-Multi-Queue-On-Windows.pdf
Shekar, Y. (2025, 15 grudnia). Zapowiedź natywnego NVMe w systemie Windows Server 2025: Wprowadzanie nowej ery wydajności pamięci masowej. (Microsoft) Źródło: 29 grudnia 2025 r., z serwisu Windows Server News and Best Practices: https://techcommunity.microsoft.com/blog/windowsservernewsandbestpractices/announcing-native-nvme-in-windows-server-2025-ushering-in-a-new-era-of-storage-p/4477353
Stowarzyszenie Przemysłu Sieci Pamięci Masowych (Storage Networking Industry Association). (nd). Co to jest SCSI? Pobrano 30 grudnia 2025 r. ze Stowarzyszenia Przemysłu Sieci Pamięci Masowych: https://www.snia.org/education/what-is-scsi




Amazon