Denna artikel kommer fokusera på en av de viktigaste delarna i alla datorsystem, oavsett om det är slutanvändar-PC, en server, en storage-array eller i alla typer av molnlösningar: den klassiska hårddisken.
En hårddisk har i sig ett antal olika fysiska komponenter såsom skivor, läs- och skrivarmar m.m., men vi kommer här att belysa den “minsta” beståndsdelen där data kan lagras: en sektor.
En “sektor” är den minsta läs- och skrivbara enheten på en hårddisk. Dess storlek har i över 30 år varit 512 byte. Detta innebär att det aldrig går att varken läsa eller skriva i mindre stycken än 512 byte.
Hårddisken själv lagrar endast 1:or och 0:or och saknar i sig all förståelse för VAD den lagrar. Ett operativsystem kommer därför att placera ett logiskt filsystem där den skapar en “karta” över logiska filers koppling till de fysiska disksektorerna.
All tillgänglig yta på en hårddisk kommer dock inte kunna användas för att lagra “nyttodata”, d.v.s. de filer och liknande som vi placerar där. Det krävs av olika skäl en del extra “overhead”.
En modern hårddisk kan innehålla många miljoner enskilda sektorer. För att kunna hitta en viss sektor som efterfrågas krävs därför en adressering som lagras strax intill själva datat. Adressen ligger tillsammans med ett “tomrum” (Gap) samt ett “startfält” (Sync). Dessa tre fält tar upp 15 byte.
Omedelbart efter själva användardatat på 512 byte följer ett 50 byte långt fält som kallas ECC: Error Correction Code. Detta fält används för att möjliggöra att båda upptäcka samt i många fall reparera fel som uppkommit på diskytan.
När data skrivs av operativsystemet till en viss disksektor så kommer hårddisken själv att räkna ut och infoga ett ECC-värde. När sektorn nästa gång blir läst kommer hårddisken automatiskt att även läsa ECC-fältet och kontrollera huruvida datat är korrekt eller inte. Om något är fel så finns även möjlighet att – trots korruption – räkna ut det korrekta värdet. Möjligheterna till det styrs av hur pass skadat området är.
Man kan tänka på ECC-fältet som en ungefärlig motsvarighet till RAID, fast internt per disksektor.
Då både startfältet (15 byte) och ECC-fältet (50 byte) måste finnas per 512 byte av användardata så uppstår följaktligen en viss “overhead”.
Man kan då räkna ut vilket “effektivitet” vi har på en klassisk disk:
Varje 512 byte av data “kostar” 577 byte (15+512+50) av hårddiskens utrymme. Uträknat i procent blir det en effektivitetsnivå på ungefär 88 procent, (577 / 512), och där ungefär 12 procent av det totala diskutrymmet används till overhead.
I takt med hårddiskars totala lagringskapacitet ökat genom åren så har mängden “overhead”-data i sig vuxit. För exempelvis 2 TB av användarbar yta används omkring 250 GB extra för de omgivande fälten.
OM man däremot skulle kunna utöka storleken på själva datadelen i en sektor skulle kvoten mellan användarbar data och de (i sig helt nödvändiga och viktiga extrafälten) minska.
Då disksektorstorleken på 512 byte varit standard sedan tidigt 80-tal har i praktiken alla kända operativsystem (och annat som direkt accessar en disk) endast haft stöd för att arbeta med den klassiska sektorstorleken.
Under första delen av 2000-talet påbörjades ett arbete mot större disksektorer. Ett antal organisationer och hårddisktillverkare blev år 2010 klara med den nya standarden “Advanced Format” och arbete har sedan pågått sedan dess med att införa dessa hårddisktyper och lösa de olika problem som kringgärdar ett skifte.
En fördjupning av Advanced Format följer i nästa del av denna artikel.