Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Nové disky s 4K sektory přinášejí zatím spíše problémy

V poslední době hlásí uživatelé problémy s novými disky, které používají jinou velikost sektorů než je obvyklých 512 bajtů, totiž 4 kB. Některé systémy s takovými disky vůbec nedokáží pracovat, jiné sice práci umožňují, ale uživatel narazí na nepříjemné problémy. Jaká je vlastně jejich příčina?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Trocha historie

První bloková záznamová zařízení měla velikosti bloku pevně dané hardwarem – blok v nich byl tvořen nějakým fyzickým blokem záznamového média, který měl pevně danou kapacitu. Jejich tvůrci volili velikost bloku podle dvou kritérií – buď tak, aby velikost odpovídala nějakému kulatému násobku délky záznamu (pokud šlo o systémy s pevnou délkou, třeba 80 bajtů), nebo tak, že zvolili rozumně efektivní velikost z binární posloupnosti (64, 128, 256, 512, …)

Záznam souboru dat do blokového zařízení totiž probíhá právě po blocích, a velikost bloku tedy zároveň udává granularitu záznamu. Pokud není velikost souboru dělitelná velikostí bloku, zabere poslední část souboru jen část bloku, a jeho zbytek zůstane nevyužitý. Pokud by byly bloky příliš velké, znamenalo by to, že se plýtvá volným místem. Pokud by byly bloky zase příliš malé, nedaly by se rozumně adresovat. Navíc u magnetických mechanik (pásky, disky) nebyly bloky vyznačeny nějak fyzicky (až na výjimky), ale pomocí určitých „služebních sekvencí“ – specifických kódů, které se v datech nevyskytovaly, a které v sobě nesly kromě synchronizačních údajů („zde začíná nový blok“) nebo záznamů pro opravu a detekci chyb (ECC/CRC) i např. informace o čísle bloku. A tyto informace by v případě velmi malých bloků opět zabraly podstatnou část média.

Známý „indexový otvor“ u disků udával pozici prvního sektoru na stopě. Všechny ostatní sektory byly označeny pomocí sekvencí dat, zaznamenaných přímo na disku při tzv. low-level formátování, kdy se zapisovala vždy celá stopa včetně těchto dat. Existovaly i disky, které měly speciální stopu s továrně vytvořeným záznamem o umístění jednotlivých sektorů – např. v podobě krátkých proužků, které byly snímány optoelektronicky.

Hard disk

S příchodem pružného disku (později diskety) se ustálila velikost sektorů na hodnotách 128 až 1024 bajtů. Počítače od Apple používaly např. sektory o velikosti 256 bajtů, u PC byla zvolena velikost 512 bajtů, ale nebylo to žádné dogma. V 90. letech byly poměrně běžné utility, které nabízely zformátování disket na vyšší maximální kapacitu, čehož se dosahovalo mj. i tím, že sektory byly zvětšené na 1024 bajtů (čímž se proti 512b sektorům ušetřila polovina služebních dat) a na stopu jich bylo vněstnáno víc – tehdejší floppy disky nevyužívaly záznamové médium kvůli zvýšení spolehlivosti a technologickým omezením ani zdaleka naplno.

Pevné disky v počítačích PC vyšly z disket nejen co do dělení na sektory, stopy (u disků nazývané válce) a strany (u disků nazývané hlavy), ale zachovaly i velikost sektoru 512 bajtů. Protože tehdy nejpoužívanější souborový systém FAT16 dokázal adresovat bloky v rozsahu 16 bitů (tj. do 65535), nemohly by disky mít větší kapacitu než 32768 kilobajtů. Proto jsou bloky vytvořeny spojením více sektorů do jednoho většího bloku (clusteru), a nejmenší alokační jednotkou je právě cluster.

S velikostí 512 bajtů si pevné disky v PC vystačily zhruba čtvrt století. Problémy s maximální adresovatelnou kapacitou se postupně řešily přechodem z trojrozměrného systému adresace CHS (cylinder-head-sector) na LBA (linear base address), vylepšenými HW řadiči, zvětšením clusteru, přechodem na FAT32 nebo na jiné souborové systémy. Velikost sektoru 512 však zůstávala stejná, a to vedlo mimo jiné i k tomu, že velké množství nízkoúrovňového software používalo (a používá) velikost sektoru 512 byte jako konstantu, ačkoli disky umožňují zjistit velikost sektoru.

Zvětšování kapacity disků

Výrobci pevných disků neustále přicházeli s většími a většími kapacitami disků. Kromě opravdového zvětšení (více ploten, zvýšení hustoty záznamu) používali i marketingové triky. Prvním z těchto triků bylo udávání velikosti v „nenaformátovaném tvaru“ – volné místo na disku bylo po naformátování o něco menší, protože část kapacity zabraly výše zmiňované servisní informace, čísla sektorů, opravné záznamy apod. Ovšem v tiskové zprávě vypadalo větší číslo zkrátka líp.

Hard disk

Prosadil se ale druhý trik, kterým bylo počítání se základem 1000 namísto obvyklého 1024 – výrobce uvedl kapacitu 320 MB a mínil tím 320 000 000 bajtů – což je nějakých 305 megabajtů, když je počítáme tak jak je běžným zvykem. Tlak výrobců záznamových zařízení byl tak silný, že vedl ke zpochybnění používání předpon kilo-, mega- apod., a následně (zhruba okolo roku 2000) k zavedení zkratek jako MiB a TiB (kromě MB a TB), které převzaly původní význam binárních předpon, tudíž 320 MB se mohlo opravdu rovnat 320 milionům, neboli 305 MiB (mebibyte). Na jednu stranu to je logické (proč by někde mělo být kilo- 1000 a někde 1024?), na druhou stranu panuje dnes v předponách v IT neskutečný chaos, kdy programátoři stále používají kilobajt pro 1024 bajtů, stejně tak naprostá většina programů a utilit, a výrobci disků počítají kilo jako 1000.

Já se v textu držím klasické a zažité terminologie, tedy když budu psát o 4kB sektoru, je to sektor o velikosti 4096 bajtů. Pokud je mezi čtenáři někdo, kdo chce používat nové předpony, nechť si všude představí KiB a čte kibibajt. – pozn.aut.

Zvětšíme sektor!

Současná technologie je podstatně vyspělejší, takže výrobci dokážou vyrobit kvalitnější médium, kvalitnější záznamové zařízení i kvalitnější řadiče. Není proto bezpodmínečně nutné, aby byly synchronizační informace na disku tak často. Navíc vzhledem k tomu, že se k disku přistupuje většinou na úrovni celých clusterů, tak někteří výrobci začali vyrábět disky, které mají sektory s velikostí 4 kilobajty (4096 byte, viz jazyková poznámka výše). Spojují tak osm starých sektorů do jednoho, čímž ušetří sedm „služebních oblastí“ a mohou tak opět o něco zvýšit kapacitu – udává se, že se tím ušetří cca 7–11 procent kapacity.

Hard disk

Kromě výhody vyšší možné kapacity přináší zvýšení velikosti sektoru i obrovské problémy u systémů, které s větším sektorem nepočítají, které zkrátka předpokládají, že sektor má 512 bajtů. A problém se netýká jen OS, ale i třeba firmware PC (BIOS) – naprostá většina, ne-li všechny, předpokládají, že disky mají sektor s velikostí 512 bajtů, a tak se k němu chovají, což přináší řadu problémů v nejrůznějších oblastech – od chybné detekce po neschopnost nabootovat. Totéž platí i pro nejrůznější nízkoúrovňové utility pro práci s diskem, od nástrojů pro dělení až po „disk doctory“, a platí to nejen pro svět Windows (kde verze až do XP včetně vůbec nepředpokládaly, že by disk mohl mít jinou velikost sektoru), ale i pro Linux, který je sice pro práci s disky s jinou velikostí sektoru teoreticky připraven, v praxi je tomu ale jinak, a problémy přináší také již výše zmíněné BIOSy či bootloadery.

Tyto problémy jsou tak zásadní, že by výrobci nedokázali takový disk na trhu vůbec prodat – kdo by si taky koupil disk, který nemůže připojit do svého počítače, protože je s ním nekompatibilní BIOS, bootloader, systém i utility?! Proto výrobci přistoupili k jednoduchému řešení – interně mají sektory velikost 4096 byte, ale navenek jsou přepočítány na 512 byte, vždy jeden fyzický na osm „logických“.

Přepočet sektorů s sebou nese ale jednu významnou komplikaci: pokud vychází pro OS bloky tak, že jsou zarovnány na 4kB, a jejich začátek odpovídá začátku fyzického sektoru, je vše v pořádku. Pokud ale tato podmínka splněná není, musí disk pro každý zápis do 512B sektoru někde uprostřed fyzického 4kB nejprve data přečíst do bufferu, změnit a opět celý sektor zapsat. To v důsledku vede k drastickému poklesu výkonu.

U některých disků hlásili uživatelé problémy, které se nakonec podařilo vyřešit pomocí podrobnějšího nastavení a zarovnání tak, aby data ve filesystému začínala na sektoru, jehož pořadové číslo je dělitelné osmi.

Výhoda? Zatím moc ne…

Změna velikosti sektoru na 4 kB je z hlediska efektivity pozitivním krokem. Disky budou moci mít vyšší kapacitu, a tentokrát bez marketingových triků s názvoslovím nebo s počítáním kapacity včetně nedostupných oblastí. Efektivitu je samosebou nutno brát s rezervou – dnešní souborové systémy samy o sobě nejsou moc šetřivé a malé soubory zaberou na disku stejně desítky kilobajtů.

Systémy ale žily donedávna ve světě, kdy se mohly spolehnout na to, že sektor bude mít 512 B, a programátoři na tuto „jistotu“ leckdy hřešili, od tvůrců BIOSů přes autory OS až po programátory nízkoúrovňových aplikací. Moderní OS (Windows Vista a 7, poslední verze Mac OS X, nové distribuce Linuxu) s takovými disky už počítají. Podpora v BIOSu a v utilitách je jen otázka času. Do té doby budou výrobci vybavovat své disky přepočtem sektorů. Není to žádný zásadní problém, jen je potřeba s tím počítat – tedy alespoň v systémech, v nichž s tím počítat lze.

davame_internetu_obsah
       

Další články k tématu: The 4K Sector – Another Nail in XP's Coffin, 4K-sector drives and Linux.

Foto: agentura SXC

Martin Malý

Martin Malý

Martin Malý je autorem serveru Bloguje, mikroblogu Teidu či služby pro zkracování odkazů Jdem.cz. V současné době vede magazín Zdroják.

Školení: Linux – Zálohování, Vysoká dostupnost, SNMP dohled

Na třídenním školení se naučíte nainstalovat a spravovat systém zálohování, replikace dat a vysoké dostupnosti dat. Dále také pracovat s RAID a LVM poli a nainstalovat a spravovat si vlastní dohledový systém.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,09

Přehled názorů

Uzili jsme si
Jan Friedl 19. 4. 2010 08:40
Nový
└ 
Re: Uzili jsme si
Sten 19. 4. 2010 22:08
Nový
Jsem fascinovan
Ondy 19. 4. 2010 09:06
Nový
├ 
Re: Jsem fascinovan
vandrovnik 19. 4. 2010 09:18
Nový
│
├ 
Re: Jsem fascinovan
Ondy 19. 4. 2010 09:26
Nový
│
│
└ 
Re: Jsem fascinovan
Ash 19. 4. 2010 11:52
Nový
│
└ 
Re: Jsem fascinovan
new world order 2.0 19. 4. 2010 23:13
Nový
├ 
Re: Jsem fascinovan
Nfn 19. 4. 2010 10:20
Nový
│
└ 
Re: Jsem fascinovan
Ondy 19. 4. 2010 10:47
Nový
│
 
└ 
Re: Jsem fascinovan
BobTheBuilder 20. 4. 2010 15:48
Nový
└ 
Re: Nejsem fascinovan
Xjmeno363 19. 4. 2010 10:39
Nový
 
├ 
Re: Nejsem fascinovan
Ondy 19. 4. 2010 11:05
Nový
 
│
└ 
Re: Nejsem fascinovan
Me 19. 4. 2010 11:54
Nový
 
├ 
Re: Nejsem fascinovan
Petr 19. 4. 2010 11:27
Nový
 
│
├ 
Re: Nejsem fascinovan
Joelp . 19. 4. 2010 12:46
Nový
 
│
└ 
Re: Nejsem fascinovan
Miloslav Ponkrác 19. 4. 2010 13:13
Nový
 
└ 
Re: Nejsem fascinovan
Mi. Chal. 19. 4. 2010 20:29
Nový
Zarovnani neni tak jednoduche
Yenya 19. 4. 2010 11:19
Nový
└ 
Re: Zarovnani neni tak jednoduche
Ondy 19. 4. 2010 11:34
Nový
 
└ 
Re: Zarovnani neni tak jednoduche
Izak 20. 4. 2010 10:38
Nový
 
 
└ 
Re: Zarovnani neni tak jednoduche
pcmaker 5. 6. 2011 16:43
Nový
Linux nema zadny problem s disky !!!
Izak 19. 4. 2010 11:29
Nový
└ 
Re: Linux nema zadny problem s disky !!!
Sten 19. 4. 2010 16:58
Nový
Já se v textu držím klasické a zažité terminologie...
randomofamber 19. 4. 2010 15:11
Nový
├ 
Re: Já se v textu držím klasické a zažité terminologie...
msk 19. 4. 2010 15:48
Nový
│
└ 
Re: Já se v textu držím klasické a zažité terminologie...
marwyn 19. 4. 2010 19:33
Nový
│
 
├ 
Re: Já se v textu držím klasické a zažité terminologie...
X-anon 20. 4. 2010 11:47
Nový
│
 
│
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 20. 4. 2010 20:43
Nový
│
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 20. 4. 2010 20:15
Nový
│
 
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Tomáš Kafka 21. 4. 2010 12:43
Nový
│
 
 
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 21. 4. 2010 13:38
Nový
├ 
Re: Já se v textu držím klasické a zažité terminologie...
asdf 19. 4. 2010 15:56
Nový
├ 
Re: Já se v textu držím klasické a zažité terminologie...
JardaP . 19. 4. 2010 18:19
Nový
│
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 20. 4. 2010 20:07
Nový
│
 
├ 
Re: Já se v textu držím klasické a zažité terminologie...
JardaP . 20. 4. 2010 20:40
Nový
│
 
│
├ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 20. 4. 2010 20:58
Nový
│
 
│
│
└ 
Re: Já se v textu držím klasické a zažité terminologie...
JardaP . 20. 4. 2010 21:38
Nový
│
 
│
│
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 20. 4. 2010 23:54
Nový
│
 
│
│
 
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
JardaP . 21. 4. 2010 10:10
Nový
│
 
│
│
 
 
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 21. 4. 2010 11:32
Nový
│
 
│
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 20. 4. 2010 21:10
Nový
│
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
100% Lenin 23. 4. 2010 18:03
Nový
│
 
 
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Sten 23. 4. 2010 18:14
Nový
└ 
Re: Já se v textu držím klasické a zažité terminologie...
Radovan 19. 4. 2010 19:48
Nový
Jak tedy postupovat?
Joska 19. 4. 2010 18:49
Nový
├ 
Re: Jak tedy postupovat?
asdfghj 19. 4. 2010 20:02
Nový
│
└ 
Re: Jak tedy postupovat?
Joska 19. 4. 2010 20:23
Nový
└ 
Re: Jak tedy postupovat?
Izak 20. 4. 2010 10:23
Nový
oooo
Ondra Abel 7. 6. 2010 09:09
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem