Advenced Format – 4kB disky šetří prostor i čas
2. 12. 2015 08:00 Rubrika: Technologie Autor: Jakub Pavlis
Ne, dnes nebudeme mluvit o žádné hypermoderní technologii. Nový formát sektorů disků je relativně stará záležitost, ale moc často se s ní nepotkáme. K čemu tahle technologie vlastně je a co pozdrželo její nástup do praxe.
Od pevných disků (HDD) už toho asi mnoho nečekáme. Technologie magnetického zápisu dat je stará a osvědčená, ale také překonaná. SSD disky jsou rychlejší, tišší, odolnější díky absenci pohyblivých částí a energeticky méně náročné. HDD však stále mají několik vlastností, které je předurčují k dlouhému technologickému životu. Totiž láci a vysoké kapacity, potažmo poměr paměťové jednotky ku ceně. SSD jsou v porovnání drahá a nemohou se rovnat kapacitou.
Výrobci pevných disků tedy mají své odbyty jisté, jednak do levnějších zařízení – základních řad notebooků, jednoduchých desktopů apod., jednak do míst, kde je nejdůležitější kapacita – diskových polí serverů nebo domácích NAS. A přestože se jim trh spíše zmenšuje, nemohou usnout na a stále přináší nové technologie. Jednou z těch nejzajímavějších je formátová ní disků, a to jak pro uživatele, tak pro výrobce disků. Ten, kdo to s ní má složité, totiž stojí mezi nimi – výrobci softwaru. Pro Uživatele i výrobce HDD je to velice levná a účinná metoda, jak zlepšit práci pevného disku s minimálními náklady.
Porovnání vzdálenosti čtecí hlavy HDD od datových ploten s prachovou částicí nebo lidským vlasem
Pevné disky jsou formátovány na jednotlivé stopy, které se skládají ze sektorů (česky též někdy bloků). Historie praví, že velkou část norem v oblasti HDD si neseme ještě z dob floppy disků (disket). A ty čerpaly z ještě starších zařízení. Každopádně na konci 80. let se ustálila jako norma velikost sektoru na logickém binárním násobku, tedy 512 bytech. Dnes existuje vedle tohoto standardu nový formát, totiž v názvu uvedený Advenced Format (AFD) s velikostí sektoru 4kB (ve smyslu kibibyte, tedy 4096 bytů, výrobci HDD mají někdy z marketingových důvodů tendenci uvádět kapacity v prostých násobcích tisíců, kapacita pak vychází větší a mají k tomu i dobrý argument – předpona kilo znamená tisíc, ne tisíc dvacet čtyři) V čem takováhle relativně jednoduchá změna přináší výhody a kde jsou její háčky?
Jeden sektor nenese pouze uživatelská data, musí mít také “servisní“ části. Každý sektor začíná krátkou „mezerou“ (gap), aby čtecí hlava dokázala poznat, kde začíná, následují servisní informace obsahující synchronizační data (sync) a pořadové číslo sektoru – adresu. Na konci každého sektoru je ECC kontrolní součet, který umožňuje při vadě opravit vzniklé chyby. Mezi těmito „servisními“ informacemi leží samotných 512 B uživatelských dat. A zde to už začíná dávat smysl – 4kB blok potřebuje pouze jedny synchro data a jednu adresu tam, kde by jich bylo osm, podařilo se tedy něco ušetřit. Podobné je to i s ECC součtem, 4kB bloky sice používají delší kontrolní součet, ale pořád je kratší, než součet osmi menších ECC. Velmi obecně se uvádí, že pouhým přeformátováním na 4kB sektory lze ušetřit zhruba 7-11 % kapacity disku.
Jeden cluster se skládá ze "servisních" a uživatelských dat
U HDD se také mluví o „rozlišení“ (resolution), které je v jistém slova smyslu stejné, jako třeba u monitorů. Čím vyšší rozlišení, tedy menší „bod“, v našem případě adresovatelná jednotka, tím lepší využití paměťové kapacity. Máte-li data, typicky soubor, menší než jednotka sektoru (ať už to je 512 nebo 4096 B), zapíšou se data do jednoho sektoru, jehož zbytek zůstane prázdný, nevyužitý, ovšem nic jiného už do něj zapsat nelze. U větších objemů dat, která nejsou přesně dělitelná 512 nebo 4096, zůstane takto „nenaplněný tedy pouze poslední z využitých sektorů. Na první pohled by se mohlo zdát, že podobně jako u monitorů bude vyšší rozlišení mnohem lepší, ale v praxi se tak neděje. Jednak malé sektory spotřebují velké množství času na čtecí hlavy na vyhledávání fragmentovaných dat, především však je zřejmé, že moderní aplikace využívají mnohem větší datové objemy, málokdy potkáme soubory o velikosti menší než jsou stovky kB, navíc s raketovým nárůstem kapacit (pokročilé diskety měly kapacitu 1,4 MB, dnešní disky dosahují kolem 8 TB, tedy 8 000 000 MB) přestalo být menší využití celkové kapacity tak důležité, zatímco přístupové doby život uživatele počítače ovlivňují velmi podstatně.
A kde se skrývá háček v této technologii? 512B sektory jsou tak starou normou, že ji řada vývojářů považovala prakticky za nezměnitelnou a nezohlednili její možné změny ve svých programech. Fatální je to především u starších operačních programů, kupříkladu první podporu od Microsoftu pro 4k disky získaly až Windows Vista v Service Packu 1.
Jeden 4k ADF sektor se může skládat z osmi virtuálních 512B sektorů
Pro výrobce bylo důležité udržet zpětnou kompatibilitu, jinak by nedokázali nové disky vůbec začít prodávat. V celé řadě aplikací se tak i ADF 4kB blok tváří jako skupina „klasických“, 512B. Nejobvyklejším problémem bylo, pokud se libovolná aplikace dožadovala 512B bloku dat na 4k disku. Disk musí přečíst celý 4k blok, vybrat z něj potřebných 512 bytů a ty odeslat ke zpracování. Ještě pomalejší je zápis, kdy disk musí opět načíst celý 4k blok do cache, změnit v něm jeden ze sedmi virtuálních 512B oddílů a celý sektor opět zapsat. A sejde- li se v cache více takových požadavků zápisů na různá místa, což není nic neobvyklého, musí se do cache načíst osminásobně velké množství dat, menší cache tedy nemusí stačit a už tu máme obrovské zpomalení.
A aby to nebylo vše, ještě větší potíže nastanou, pokud logické sektory nesedí přesně s fyzickými, což se téměř jistě stávalo u čistých instalacích Windows XP. Těm začínal systémový disk na 63. „virtuálním“ bloku, tedy sedmém z osmi 512b bloků na fyzickém 4kB sektoru. Při čtení i zápisu tak musel disk přečíst 2 fyzické sektory, aby získal celá jeden logický 4k sektor a v něm vybral potřebný 512B blok dat – při každém požadavku na čtení či zápis tedy musel v cache pracovat s 8kB dat. Zpomalení bylo samozřejmě zničující.
Dnešní systémy si obvykle s podobnými věcmi vědí snadno rady, ale buďte opatrní, pokud provozujete starší zařízení nebo spotřebiče se specifickými systémy – například některá NAS práci se 4k disky vzhledem k jednoduchým obslužným OS nepodporují. Sice se u nich nepočítá s takovým počtem požadavků na čtení a zápis, jako když máte systémový HDD přímo v počítači, ale pokud byste disky chtěli třeba vyměnit, může to přinést nečekané komplikace.