NTFS vs. ReFS w Windows Server 2016 (i dyski "fixed")

Jakiś czas temu napisałem Wam o tym Czym jest ReFS i czy zastąpi NTFS. Był to post, który miał zrobić wprowadzenie do tego co dziś chciałbym Wam przekazać.

Pisałem wtedy, że chciałbym Wam pokazać jak drastycznie ReFS może przyspieszyć pewne operacje, które z NTFS mogą trwać ponad 20 minut, a z ReFS i Windows Server 2016 TP3 trwają teraz... sekundę :)

Dyski wirtualne

Jeśli korzystacie z wirtualizacji to na 100% wykorzystujecie dyski wirtualne. Pozwalają one przechowywać dane w znormalizowanym formacie i wykorzystywać te dane w maszynach wirtualnych (choć nie tylko!)

I zapewne wiecie też, że dyski wirtualne mają kilka formatów - stałe, dynamiczne czy pass-through. O typach dysków, ich wadach i zaletach pisałem posta ("Typy dysków w maszynach wirtualnych") jeszcze w 2008 roku i bardzo zachęcam do jego przeczytania.

Dziś natomiast chciałbym Wam pokazać co robi ReFS z dyskami fixed.

Fixed Disks i ReFS

Dyski typu fixed-size używają tyle fizycznie miejsca na dysku maszyny hosta, ile określimy przy jego tworzeniu. Czyli jeśli stworzymy dysk o wielkości 100GB to musimy mieć od razu tyle miejsca na fizycznym dysku. Bo po stworzeniu takiego dysku od razu tworzony jest plik VHD(X) o wielkości 100GB.

I w przeciwieństwie do dysków dynamicznych, te nie rozszerzają się – co za tym idzie nie ma problemów z fragmentacją dysku hosta. A dodatkowo ze względu na to, że przed każdym zapisem na dysku nie musi on być w razie potrzeby powiększany – to i wydajność jest generalnie lepsza.

Dyski fixed warto też wykorzystywać jeśli chcemy mieć relatywnie prostą infrastrukturę i wolimy mieć pod kontrolą potencjalnie rozrastające się maszyny.

Dyski fixed w Windows Server 2012

Być może wiecie, że jeśli tworzyliście dysk VHD(X) w Windows Server 2012 R2 to tworzył się on naprawdę długo. Było to bardzo denerwujące dla naszych Klientów, ale jednocześnie mieli oni potrzeby korzystania z tego typu dysków.

Dyski fixed w Windows Server 2016 (z ReFS)

Odpowiedzią jest właśnie Windows Server 2016 z systemem plików ReFS na dyskach. W tej konfiguracji szybkość tworzenia dysków fixed wzrosła dramatycznie.

Test 1: Dysk fixed VHDX o wielkości 100GB

Podczas testów na laptopie Lenovo W510 (Core i7, 16 GB RAM) z drugim dyskiem twardym (500 GB 7200 RPM HD podpięty przez SATA), który był sformatowany i całkowicie pusty - stworzony został stały dysk VHDX o wielkości 100 GB.

Systemem na którym to zrobiono były Windows Server 2016 Technical Preview 3, który zainstalowany był na głównym dysku, więc nie miał wpływu na testowy dysk fizyczny. Sama maszyna nic innego nie robiła i nie miała żadnych obciążeń.

Testy były zrobione przy różnych wielkościach block size (od 4k do 64k dla 2016 z NTFS i 4k i 64k dla 2016 z ReFS). Po każdym teście dysk był formatowany używając nowego rozmiaru bloku i system był restartowany przed kolejny testem.

A oto poniżej wyniki:

Block Size

Windows Server 2016 NTFS

Windows Server 2016 ReFS

4k (default)

18:08

<1 sekundy

8k

18:07

N/A

16k

18:09

N/A

32k

18:03

N/A

64k

18:05

<1 sekundy

To robi naprawdę duże wrażenie - czas tworzenia dysku spadł z około 18 minut do... 1 sekundy!

Test 2: Dysk fixed VHDX o wielkości 400 GB

W tym teście jest dokładnie ten sam sposób działania tylko teraz dla dysku 400 GB. I dla uproszczenia i zaoszczędzenia czasu - test tylko dla block size 4k i 64k.

Block Size

Windows Server 2016 NTFS

Windows Server 2016 ReFS

4k (default)

1:23:27

~1 sekunda

64k

1:23:24

~1 sekunda

Czy trzeba coś więcej dodawać? Zejście z czasem z prawie 1.5 godziny do 1 sekundy to naprawdę ogromna zmiana.

Co z dyskami VHD?

Być może się zastanawiacie co z moimi dyskami VHD, których być może potrzebujecie do kompatybilności z Microsoft Azure? Mam tu bardzo dobrą wiadomość - dyski VHD mają praktycznie takie same możliwości jak VHDX. Ale to możecie sprawdzić już sami :)

Aha - pamiętajcie, że my bardzo mocno sugerujemy wykorzystanie dysków VHDX (a nie VHD) ze względu na ich większą odporność na awarie, wsparcie do 64 TB (per dysk) oraz dużo wydajniejsze działanie przy wykorzystaniu snapshotów. No i oczywiście natywnie wspierają dyski 4k.

Mam nadzieję, że spróbujecie sami wykorzystać ReFS w swojej infrastrukturze :)