4KB sektory na dyskach
Być może słyszeliście o najnowszych planach rozwoju dysków twardych. Mam tutaj na zmianę rozmiaru sektorów na dysku.
Jak pewnie wiecie, sektory są najmniejszą jednostką przestrzeni na dysku twardym. Do tej pory rozmiar pojedynczego sektora wynosił 512 bajtów. Jednak od grudnia 2009 najwięksi producenci dysków (jako pierwszy Western Digital) przeszli na sektory o rozmiarze 4096 bajtów. Na dotychczas kupionych dyskach jeszcze tego nie widać ponieważ firmware dysków, póki co, emuluje każdy 4096 bajtowy sektor na osiem sektorów o starym rozmiarze (tzw. funkcja Advanced Format). Z czasem oczywiście to działanie zostanie zarzucone.
Po co przechodzić na większy rozmiar sektorów? Na dysku, między sektorami, mieszczą się specjalne przestrzenie do przechowywania danych kontrolnych. W każdej takiej przestrzeni mieszczą się dane pozwalające wykrywać i ewentualnie naprawiać (jeśli nie są zbyt poważne) błędy w sektorze. W nowoczesnych dyskach o coraz większej pojemności, gęstość zapisu, czyli ilość sektorów na milimetrze kwadratowym, znacznie wzrosła. Powoduje to coraz częstsze pojawianie się błędów odczytu/zapisu które muszą być natychmiastowo korygowane (jest to możliwe dzięki danym kontrolnym). Zwiększenie rozmiarów sektora pozwoli na zwiększenie również przestrzeni kontrolnej (ale nie aż 8x także przestrzeń ta ulegnie relatywnie zmniejszeniu), a dzięki temu zastosowanie lepszych algorytmów sprawdzających poprawność danych oraz lepszą ich korekcję . Także zysk jest podwójny: po pierwsze relatywne zwiększenie przestrzeni dyskowej, a po drugie poprawienie wydajności operacji na dysku.
Jakkolwiek samo zwiększenie rozmiaru klastra może mieć pozytywne skutki to system operacyjny musi być przygotowany na taką zmianę. Większość popularnych OS’ów, w tym Microsoft Windows XP oraz większość obecnych dystrybucji Linux’a, nie jest jeszcze gotowa na taką zmianę.
Wynika to między innymi z rozmieszczenia partycji na dysku. Nowoczesne systemy plików wykorzystują struktury danych o rozmiarze właśnie 4KB. Po całkowitym przejściu na nowy rozmiar sektorów, będzie się to bardzo dobrze zgrywało. Jednak na razie póki działa tryb emulacji mogą pojawić się problemy wydajnościowe. Wynikają one z faktu, iż tworząc nową partycję można wybrać gdzie będzie się ona zaczynać. Jeśli akurat jej początek trafi się wraz z początkiem fizycznego “większego” sektora to wszystko będzie w porządku. Jednak jeśli akurat początek partycji (a zatem i wszystkie elementy systemu plików) wypadną inaczej względem faktycznego, fizycznego, 4 kilobajtowego sektora to będzie można zaobserwować pogorszenie wydajności, ponieważ czytając/zapisując jeden, 4KB element systemu plików, dysk będzie musiał faktycznie przeczytać/zapisać dwa 4KB sektory dysku i odrzucić niepotrzebne dane.
Więcej informacji na ten temat, instrukcję jak prawidłowo tworzyć partycje na takich dyskach, oraz testy wydajności obrazujące ten problem na różnych systemach plików można znaleźć tutaj.
Jak dla mnie jednym z argumentów za zwiększaniem wielkości sektora przy zwiększaniu pojemności dysków są względy adresowe. Nie przeliczałem, ale wydaje mi się, że w końcu liczba, którą adresujemy ostatni sektor na 5, 10, 20, … TiBowym dysku zwiększy się na tyle, że a) nie zmieści się na szynie adresowej; lub b) zwiększymy długość adresów w celu ominięcia problemu, ale przez to zmniejszy się czas dostępu. Just a thought.
ekhem… głównym powodem przejścia na 4096-bajtowe sektory są dyski SSD (http://en.wikipedia.org/wiki/Solid-state_drive), a konkretnie komenda TRIM (http://en.wikipedia.org/wiki/TRIM):
“SSDs store data in flash memory cells that are grouped into pages, with the pages (typically 4 KiB each)”
@rysiek:
Z tego wynika tylko, że dyski SSD jako zupełnie nowa technologia, jako pierwsze i od razu powstały z większymi sektorami, a HDD po prostu “dostały upgrade” trochę później. Nazwa inna bo w dyskach SSD nie ma sektorów, ale znaczenie to samo – najmniejsza jednostka przestrzeni dyskowej.