mboost-dp1

Western Digital Corp.

Harddiske skifter til 4096 byte sektorer

- Via Anandtech - , redigeret af Emil

Harddiske har i lang tid haft en sektorstørrelse på 512 bytes, hvilket gav mening for de forholdsvis små diske og filer, man brugte tidligere, da det gav en fornuftig ydelse, samtidigt med at man ikke spildte for meget plads, da de fleste filer var over 512 bytes.

Lagerkapaciteten for harddiske er nu vokset så meget, at sektorstørrelsen på 512 bytes mere er et problem end en fordel. Det skyldes, at der for hver sektor gemmes ECC-data, som naturligvis optager noget af den brugbare diskplads. Ved at bruge en større sektorstørrelse øges størrelsen af ECC-data per sektor, men antallet af sektorer reduceres markant, hvilket længe opvejer den øgede mængde ECC-data per sektor.

Harddiskproducenterne er kommet frem til en ny sektorstørrelse på 4 KiB, som kaldes for Advanced Format. Eftersom de fleste filsystemer i dag bruger en standard clusterstørrelse på 4 KiB, så passer dette fint overens med en fysisk sektorstørrelse på 4 KiB. Idéen er ikke ny, da den første gang var fremme i 1998.

Alle nyere operativsystemer understøtter 4 KiB sektorer, det største problem er p.t., at mange stadig bruger Windows XP, som ikke understøtter Advanced Format.

Western Digital kommer med de første Advanced Format-diske inden for kort tid i deres Caviar Green serie. Resten af harddiskproducenterne forventes at følge med inden for kort tid.





Gå til bund
Gravatar #1 - FritzFarlig
2. jan. 2010 07:16
Det giver vel også et performanceløft i form at færre læsninger/skrivninger til disk?

Bare skod med et system som et af vores der lægger små logfiler på 39 bytes. Faktisk størrelse 68MB, størrelse på disk 2GB
Gravatar #2 - on_dope
2. jan. 2010 08:31
Det er god nyhed.. så kan vi også få udskiftet XP til noget bedre som Ubuntu/Mint eller (sigh) 7
Gravatar #3 - Jakob Jakobsen
2. jan. 2010 08:55
Jeg synes nyheden lyder lidt mærkelig.
Der det ikke bare understøttelsen på sektorer der er under 4KB der bliver fjernet på dem?
Jeg har i hvert flad kørt med 64KB clusterstørrelse på alle mine harddiske, undtagen systemdrev, som netop kører med 4KB clusterstørrelse.
Gravatar #4 - mathiass
2. jan. 2010 09:17
FritzFarlig (1) skrev:
Det giver vel også et performanceløft i form at færre læsninger/skrivninger til disk?

Bare skod med et system som et af vores der lægger små logfiler på 39 bytes. Faktisk størrelse 68MB, størrelse på disk 2GB
Nyheden er lidt misvisende på det her punkt. Som sådan har sektorstørrelsen intet med fil-størrelse at gøre. Filer og mapper findes ikke i harddiskens verden, det er noget operativsystemet håndterer. Det vil sige at man kun kan skrive i klumper af 4 KB, men det betyder ikke at man ikke kan lægge 100 filer á 39 bytes på de 4 KB, OS'et skal bare i princippet skrive alle 4 KB og dermed alle 100 filers data-indhold på én gang. Det er ikke nødvendigvis et performanceproblem...

Jakob Jakobsen (3) skrev:
Jeg synes nyheden lyder lidt mærkelig.
Der det ikke bare understøttelsen på sektorer der er under 4KB der bliver fjernet på dem?
Jeg har i hvert flad kørt med 64KB clusterstørrelse på alle mine harddiske, undtagen systemdrev, som netop kører med 4KB clusterstørrelse.
Clusterstørrelse har intet som helst med sektorstørrelse at gøre. Clusterstørrelse er et begreb man arbejder med i fil-systemer. En stor clusterstørrelse har de konsekvenser som #1 også antyder.
Gravatar #5 - FritzFarlig
2. jan. 2010 09:25
mathiass (4) skrev:
Nyheden er lidt misvisende på det her punkt. Som sådan har sektorstørrelsen intet med fil-størrelse at gøre. Filer og mapper findes ikke i harddiskens verden, det er noget operativsystemet håndterer. Det vil sige at man kun kan skrive i klumper af 4 KB, men det betyder ikke at man ikke kan lægge 100 filer á 39 bytes på de 4 KB, OS'et skal bare i princippet skrive alle 4 KB og dermed alle 100 filers data-indhold på én gang. Det er ikke nødvendigvis et performanceproblem...


OK, jeg gik bare ud fra at i dag kan du i fx windows ikke lave en allokeringsstørrelse på mindre end 512byte. Jeg gik ud fra årsagen til dette er sektorstørrelsen på harddisken og man derfor i det nye setup ikke kan formatere med en allokeringsstørrelse på mindre end de 4KB. Og at de større sektorer på harddisken vil mindske IO, da du kan læse/skrive flere data i en enkelt IO operation = mindre overhead
Gravatar #6 - NeedNoName
2. jan. 2010 09:54
FritzFarlig (1) skrev:
Det giver vel også et performanceløft i form at færre læsninger/skrivninger til disk?

Bare skod med et system som et af vores der lægger små logfiler på 39 bytes. Faktisk størrelse 68MB, størrelse på disk 2GB


Kan du ikke fikse det ved at komprimere mappen, som logfilerne ligger i? Således bliver filerne jo betragtet som en enkelt fil og du fjerner de 4096-39 bytes overhead på bekostning af en smule performance. Det burde forholdsvis nemt kunne implementeres til at arbejde sammen med det system der logger, hvis det ikke kan klares i OS'et.
Gravatar #7 - CableCat
2. jan. 2010 09:58
I teorien vil kapaciteten og hastigheden vil stige med 7-11%. Men HD-producenterne næppe vil begynde at sælge 1.1TB diske. Så vis man købe en sådan en ny disk, vil den enten være en lille smule hurtigere, eller meget langsommer. Alt efter hvilket OS man køre.

Den forbedret ECC ser dog interesant ud.
Gravatar #8 - Logifire
2. jan. 2010 10:03
Eftersom de fleste filsystemer i dag bruger en standard clusterstørrelse på 4 KB, så passer dette fint overens med en fysisk sektorstørrelse på 4 KB.


Hvad er clusterstørrelse?
Gravatar #9 - CableCat
2. jan. 2010 10:16
Logifire (8) skrev:
Hvad er clusterstørrelse?


Det er hvor store clusterne der bruges i filsystemet.

Hvis det du ville vide var hvad en cluster er, så se: http://en.wikipedia.org/wiki/Data_cluster
Gravatar #10 - FritzFarlig
2. jan. 2010 10:35
NeedNoName (6) skrev:

Kan du ikke fikse det ved at komprimere mappen, som logfilerne ligger i? Således bliver filerne jo betragtet som en enkelt fil og du fjerner de 4096-39 bytes overhead på bekostning af en smule performance. Det burde forholdsvis nemt kunne implementeres til at arbejde sammen med det system der logger, hvis det ikke kan klares i OS'et.


Filerne lagres kun i komprimeret tilstand. De bliver dekomprimeret ved læsning og det koster i performance. Men du tænker måske på en anden løsning? for det jeg omtaler kræver ikke noget specielt i forhold til de programmer det måtte tilgå en komprimeret fil.
Gravatar #11 - NeedNoName
2. jan. 2010 10:59
#10: Jamen hvis filerne lagres i komprimeret tilstand, så burde du da heller ikke have det voldsomme overhead du snakker om...?
Gravatar #12 - FritzFarlig
2. jan. 2010 11:06
#11: Ja, jeg skiftede vidst lidt emne. Det har du ret i, men det giver bare et ryk nedad i performance som man lige skal overveje i et driftsmiljø. I mit konkrete tilfælde vil performance ikke være noget problem, men det er så små mængder data, det ikke er værd at overveje at komprimere :).
Gravatar #13 - Saxov
2. jan. 2010 11:31
#12,
Pointen i at komprimere dem, er jo at pakke dem sammen i én fil.

e.g. i laver 10 filer af 39 bytes per dag
lageret enkeeltvis, tager de 40 kb (10 x 4 kb)
pakket sammen i en fil, fylder de 4 kb (10 x 39 bytes + overhead < 4 kb)

evt. pak alle logfiler sammen baseret på uge eller måned, eller bare alle logfiler ældre end x dage ned i en fil... så spare i meget plads.
Gravatar #14 - knasknaz
2. jan. 2010 11:43
Jeg skal lige have det skåret ud i pap: Vil disse harddiske slet ikke kunne bruges i et gammelt OS a'la Windows 2000 eller Amiga'er af ældre dato?
Gravatar #15 - NeedNoName
2. jan. 2010 11:43
FritzFarlig (12) skrev:
#11: Ja, jeg skiftede vidst lidt emne. Det har du ret i, men det giver bare et ryk nedad i performance som man lige skal overveje i et driftsmiljø. I mit konkrete tilfælde vil performance ikke være noget problem, men det er så små mængder data, det ikke er værd at overveje at komprimere :).


Saxov (13) skrev:
#12,
Pointen i at komprimere dem, er jo at pakke dem sammen i én fil.

e.g. i laver 10 filer af 39 bytes per dag
lageret enkeeltvis, tager de 40 kb (10 x 4 kb)
pakket sammen i en fil, fylder de 4 kb (10 x 39 bytes + overhead < 4 kb)

evt. pak alle logfiler sammen baseret på uge eller måned, eller bare alle logfiler ældre end x dage ned i en fil... så spare i meget plads.
Ja, det er jo et spørgsmål om performance kontra diskplads og HD'er er så billige, at det nok aldrig ville blive et problem i større skala når der er en større økonomi bag. ;)
Gravatar #16 - angelenglen
2. jan. 2010 11:51
FritzFarlig (1) skrev:
Det giver vel også et performanceløft i form at færre læsninger/skrivninger til disk?

Bare skod med et system som et af vores der lægger små logfiler på 39 bytes. Faktisk størrelse 68MB, størrelse på disk 2GB


Har du overvejet at logge til en database i stedet for?
Det burde løse det problem, og kunne formentligt give et performance-boost oveni.
Gravatar #17 - ThiaZ
2. jan. 2010 12:25
er det så nu man skulle vente med at købe sin eksterne harddisk? :)

Min lager eksterne harddisk er lige brændt af..
Gravatar #18 - blacktiger
2. jan. 2010 12:31
#16 Har du overvejet at man i den virkelige verden som regl ikke selv har skrevet det software ens arbejdsplads bruger, ej heller har man adgang til kildekoden eller en chef der ville gide betale dig 10 timers løn for at spare 2GB diskplads.
Gravatar #19 - FritzFarlig
2. jan. 2010 12:53
#13: så snakker vi ikke komprimering i ordets egentlige forstand, sådan som jeg ser det. Men point taken.

#16: Som #18 så rigtigt bemærker er man ikke altid selv herre over den software man har i et firma :). Så det bestemmer jeg ikke selv i dette tilfælde.
Gravatar #20 - Barnabas
2. jan. 2010 13:03
Angelenglen (16) skrev:
Har du overvejet at logge til en database i stedet for?
Det burde løse det problem, og kunne formentligt give et performance-boost oveni.


IMO så er logging til databaser sjældent et skridt fremad.

Det giver yderligere et niveau af kompleksitet / funktionalitet, der skal være i luften, før du kan skrive din log.

Dvs. i en fejl situation er der større chance for, at du ikke har logget de hændelser, der førte frem til en fejl.

Jeg tror heller ikke du kan logge hurtigere til en db end du kan appende en linje til en fil. Der skal trods alt ikke søges i indexes eller andet, blot indsættes i slutningen af filen.
Gravatar #21 - knasknaz
2. jan. 2010 13:03
Den koder som besluttede at lave en krilliard små logfiler på 39 bytes burde gå en tur i havnen... med cementsokker på.
Gravatar #22 - Clauzii
2. jan. 2010 14:02
#13:
Men filerne skal jo ned på disken i første omgang, så der vil vel blive en del fragmentering der så efterfølgende skal håndteres?

LOG-filer har det iøvrigt rigtigt godt på en SSD ;)
Gravatar #23 - FritzFarlig
2. jan. 2010 14:25
#21: my new best friend. En af de tidligere versioner af programmet krævede man skulle være logget ind på "console" før det kørte. Det gør det principielt stadigvæk men har pakket det ind i alwaysup.
Gravatar #24 - angelenglen
2. jan. 2010 14:47
Barnabas (20) skrev:
IMO så er logging til databaser sjældent et skridt fremad.

Det giver yderligere et niveau af kompleksitet / funktionalitet, der skal være i luften, før du kan skrive din log.

Dvs. i en fejl situation er der større chance for, at du ikke har logget de hændelser, der førte frem til en fejl.

Jeg tror heller ikke du kan logge hurtigere til en db end du kan appende en linje til en fil. Der skal trods alt ikke søges i indexes eller andet, blot indsættes i slutningen af filen.

IMO er logning til databaser et skridt fremad.
Det går hurtigere, og det er lettere at finde informationen igen når der er brug for den.
Det er lettere at automatisere overvågning af indholdet i loggen, så der eksempelvis kan sendes mail-alarm ud hvis der logges fejl eller lignende.
Det kan godt være det stiller større krav til vedligeholdelse, men IMO er det klart at foretrække, såfremt det er en mulighed.



FritzFarlig (19) skrev:
#16: Som #18 så rigtigt bemærker er man ikke altid selv herre over den software man har i et firma :). Så det bestemmer jeg ikke selv i dette tilfælde.

Med de få detaljer du stillede til rådighed, var det ikke en mulighed for mig at vide det.
Det var bare et forslag, det kunne jo være det kunne hjælpe.

På mit arbejde har vi også et program der ikke kan andet end at lave en ny logfil hver time, hvilket resulterer i en masse små logfiler.
Her "løste" vi problemer ved at køre et script hver weekend, der samler ugens logfiler i et samlet komprimeret arkiv for hver uge (og sletter ukomprimerede filer efter sig).
Det er dog kun en løsning fordi vi så sjældent har brug for at kigge i de logfiler, faktisk har vi aldrig haft brug for det, men man er jo nødt til at gemme dem alligevel, for man ved jo aldrig...
Gravatar #25 - x3me-brain
2. jan. 2010 17:52
#14
Ifølge artiklen emulerer WD disken 512 byte sektorer, så den vil virke med ældre systemer. Hvis du kigger nærmere på artiklen kan du også se at HD producenterne godt kunne tænke sig at se Win XP og ældre Windows versioner dø ASAP, da de opfører sig meget dårligt med 4kB sektorer. Win XP har en crappy alignment på partitioner den opretter, så WD har både en jumper workaround og en utility der kan realigne partitioner på disken hvis den er så uheldig at være inficeret med Win XP eller ældre.
Gravatar #26 - Taxwars
2. jan. 2010 19:34
Men er 4k så nok - jeg har spekuleret om jeg skulle formattere min 2TB disk med en 8192 cluster size.
Gravatar #27 - mljjlm
2. jan. 2010 21:48
er det vi snakker om her Ydelse mod Plads? eller har jeg misforstået noget? :)
Gravatar #28 - Barnabas
3. jan. 2010 02:20
Angelenglen (24) skrev:
Det går hurtigere, og det er lettere at finde informationen igen når der er brug for den.
Det er lettere at automatisere overvågning af indholdet i loggen, så der eksempelvis kan sendes mail-alarm ud hvis der logges fejl eller lignende.
Det kan godt være det stiller større krav til vedligeholdelse, men IMO er det klart at foretrække, såfremt det er en mulighed.


Hvad præcis mener du med "hurtigere" ? Det er ikke hurtigere at indsætte en række i en database end det er at appende til en fil. Jeg bør måske lige nævne at jeg har en baggrund som oracle udvikler / dba.

Sandsynligvis skal der flere skrivninger til, da du typisk skal opdatere/indsætte i tabel + et eller flere indexes skal modificeres.

Det er nøjagtig lige så let at overvåge en fil automatisk og sende et mail ud. Det kan alle moderne overvågnings systemer.

Hvor logger din applikation, hvis det er forbindelsen fra appserveren til dbserveren, eller dbserveren selv der dør?

Du skal under alle omstændigheder have noget alternativt i luften.
Gravatar #29 - thethufir
3. jan. 2010 02:25
#24 Bare surt hvis man har Logfilerne fra databasen til at ligge i databasen :) Spøg til side!

Nææh.. Syslog-ng og logrotate er lige min kop the.. Der kan du endda forwarde logs til flere servere, samt modtage logfiler fra routere/switches.

Satte et system op hos den ISP jeg arbejdede hos der sørgede for at gemme logfilerne fra alle switches/routers i et bibliotek med mappestruktur for dato/time, og så ellers pakke månedens bibliotek ned i en tar.gz :)
Gravatar #30 - Barnabas
3. jan. 2010 02:58
#24

Helt enig, Syslog er cool og kan både remote logging, file rolling og pakning af de gamle. Som man så stadig kan søge i med zcat og zgrep. Det er cool.

thethufir (29) skrev:
Bare surt hvis man har Logfilerne fra databasen til at ligge i databasen :


Og eks. oracle har også sine logfiler liggende udenfor databasen. Både dem til alm. beskeder og til archive loggen. Hvis de lå i databasen, så ville man have et problem, hvis den datafil de var skrevet til var korrupt til en grad den ikke kunne bruges.

Så ville man mangle alt fra sidste incremental/full backup op til crash tidspunktet. Surt show.
Gravatar #31 - themuss
3. jan. 2010 03:51
Lav et filbaseret-filsystem, det er ikke rocket science.

nu skal jeg se 0m jeg kan spare din arbejdsgiver for 10 timers løn...

noget ala (hvis du sidder med bsd)

dd if=/dev/zero of=/home/filsystem bs=1M count=så meget som du skal bruge

mdconfig -at vnode -f /home/filsystem -u 0/1/2/wherever

newfs -b 39/68 md0/1/2/wherever

mount md0/1/2/whever /mnt/der hvor du vil have din logfiler

Upti-Wupti, done.
Gravatar #32 - Harries
3. jan. 2010 06:56
ang. XP, det er vel bare at putte en driver ind ? de har da driver til diske, størrelsen på dit og dat er vel en del af det..
Gravatar #33 - IceDane
3. jan. 2010 13:13
Det er også bare latterligt lidt at blive begrænset af når man skal skrive en boot sector, de 512 bytes der.
Gravatar #34 - ty
3. jan. 2010 14:17
Det gør jo næsten GPT overflødigt.
Gravatar #35 - thuejk
3. jan. 2010 15:15
FritzFarlig (1) skrev:

Bare skod med et system som et af vores der lægger små logfiler på 39 bytes. Faktisk størrelse 68MB, størrelse på disk 2GB


Then use a file system that supports block suballocation, such as reiserfs or btrfs.
Gravatar #36 - skarum
3. jan. 2010 15:20
Er der nogen tidshorisont på hvor lang tid der går før vi ser dem til salg? Jeg går og planlægger at købe en ny computer, og er det i så fald noget man bør vente på?
Gravatar #37 - x3me-brain
3. jan. 2010 18:01
#36
Anandtech siger "Any day now", men det ser ikke ud til at være det store man vinder på de her 1. generations drev. Pga. Win XP bliver alle de her drev nødt til at holde fast i 512 byte sektor størrelse mod OS, og så mappe internt. De første drev der kommer er WD Green hvor buffer er vokset til 64MB, så hvis du alligevel skulle have en WD Green og mener en 32->64MB buffer increase er værd at vente på, så vent, ellers ikke.
Gravatar #38 - skarum
3. jan. 2010 20:52
#37 Ah, mange tak :) Havde tænkt mig at købe en Seagate Barracuda, så den tror jeg at jeg snupper i mellemtiden. Så kan man jo altid opgradere når sortimentet er lidt bredere. Harddiske koster jo heldigvis ikke alverden i disse dage.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login