RSS-feed bekijken

apa

Storage (HDD)

Dit artikel waarderen
by
apa
, 21 juli 2009 at 20:55 (882 Bekeken)
Harddisk:
Een harde schijf is een magnetisch opslagmedium. Dat betekent dat data opgeslagen wordt in elektrisch geladen deeltjes (elektronen). Deze deeltjes kan je vergelijken met magneten: ze hebben een noord- en zuidpool. Het verschil tussen een 0 en een 1 wordt gemaakt door de oriëntatie van een magnetisch deeltje om te keren.

Als je een harde schijf ontleedt, dan merk je dat die bestaat uit 2 belangrijke delen:
  1. 1 of meer ronde schijven (die we platters noemen) die boven elkaar geplaatst en in het midden vastgemaakt zijn. Het is op deze platters dat de magnetische deeltjes zich bevinden.
  2. 1 lees- & schrijfkop per beschreven platter-oppervlak die over het platter-oppervlak zweeft en voorbij de rand van de platter vastgehecht is aan een bewegingsmotor.

Van zodra de schijf onder stroom komt, beginnen de platters rond hun middelpunt te draaien (we zeggen dat de schijf opspint). Het centrale bevestigingspunt van de platters is onderaan immers aangesloten op een roterende elektromotor. De rotatiesnelheid van de schijven wordt gemeten in aantal rotaties per minuut (rpm). De rotatiesnelheid wordt verhoogd tot deze een bepaald punt bereikt. Die uiteindelijke rotatiesnelheid is afhankelijk van de technologie van de schijf. In desktop-schijven is dit vaak 7200rpm. In notebooks vindt je nog veel 5400rpm schijven en soms 7200rpm schijven. De befaamde Raptor-schijven van Western Digital halen een snelheid van 10000rpm. Professionele schijven halen snelheden van 15000rpm (en soms zelfs meer).

Zoals je wel zult weten, stoten gelijke magneetpolen elkaar af terwijl tegengestelde polen elkaar aantrekken. Het is op datzelfde principe dat gesteund wordt om data weg te schrijven naar en te lezen van een platter. De lees- en schrijfkop bestaat uit een elektrische geleider.
Als de kop zich in leesmodus bevindt en boven een magneetje van de platter bevindt, dan ontstaat een kleine elektrische puls in de kop (dankzij een effect dat elektromagnetische inductie heet). Afhankelijk van de pool van het plattermagneetje die het dichtst bij de leeskop staat zullen de elektronen in de leeskop aangetrokken worden naar het uiteinde van de leeskop dan wel afgestoten worden van dat uiteinde. Op basis hiervan wordt bepaald of de uitgelezen data een 0 dan wel een 1 voorstelt.

Een schijf wordt ingedeeld in concentrische cirkels (een enkele doorlopende lijn die begint in het midden van de schijf en in steeds groter wordende cirkels doorloopt tot de buitenkant van de platter (vergelijk het met de vorm van een slakkenhuis)). Het aantal concentrische cirkels wordt aangeduid door het aantal cylinders of tracks van de schijf.
Een platter wordt in stukken verdeeld door een aantal rechte lijnen die diametraal over de platter getrokken werden. De taartdelen die zo ontstaan noemen we sectoren.
Data wordt op een bepaalde locatie op een schijf weggeschreven. Om deze data later te kunnen ophalen, werd iedere locatie op de schijf voorgesteld door een "adres".

Oude PC's gebruikten adressen die bestonden uit het nummer van de lees- en schrijfkop, het nummer van de cilinder en het nummer van de sector waar de data werd opgeslagen. Deze adresseringstechniek wordt aangeduid als Cylinder-Head-Sector (CHS). Om technische redenen moest ieder tracksegment tussen 2 sector-grenzen een vaste hoeveelheid data bevatten (er werd gekozen voor 512 bytes). Door deze beperking waren CHS schijven beperkt in capaciteit tot 512 MB. Een ander nadeel was dat veel capaciteit verloren ging: de track-segmenten aan de buitenrand van de platter zijn immers langer dan deze dichter bij het middelpunt van de platter... Maar omdat ieder adres een vaste hoeveelheid data bevatte, mocht deze extra capaciteit niet benut worden.

De problemen met CHS werden opgelost met de komst van een techniek die Zone Bit Recording (ZBR) genoemd werd. Deze techniek bestond erin dat er een vaste data-dichtheid gebruikt werd over de hele platter. Omdat de omtrek van de buitenste tracks groter is dan de omtrek van de tracks dichter bij het middelpunt, wordt er meer data opgeslagen op de buitenste tracks dan op de binnenste tracks. Om de data te kunnen lezen zijn er 2 technieken ontwikkeld:
  1. Een lees- en schrijfkop die de lees- en schrijf-snelheid kan variëren over de platter waardoor de lees- en schrijfsnelheid voor de buitenste tracks hoger is dan voor de binnenste tracks.
  2. Een lees- en schrijfkop die enkel een vaste lees- en schrijf-snelheid ondersteunt en waarbij de rotatiesnelheid van de schijf zodanig varieert dat de hoeveelheid data dat voorbij de lees- en schrijfkop per seconde passeert constant blijft.

Hoewel Apple indertijd de tweede methode even getest heeft voor floppy-disks, komen we nu enkel nog de eerste techniek tegen. Deze eerste techniek geeft je meteen ook de verklaring waarom de doorvoersnelheid van een harde schijf niet constant is: data van de binnste tracks wordt langzamer benaderd dan data van de buitenste tracks.

Logical Block Addressing (LBA) is een techniek die oorspronkelijk door SCSI schijven gebruikt werd voor de adressering. Met deze techniek worden de concentrische cirkels ingedeeld in blokken met een vaste capaciteit. Opeenvolgende blokken krijgen met LBA opeenvolgende nummers toegewezen die de adressen voorstellen. LBA wordt tegenwoordig ook gebruikt voor ATA drives.

Redundant Array of Independent Disks (RAID):
Magnetische schijven hebben een aantal belangrijke beperkingen:
  • Betrouwbaarheid: magnetische schijven bevatten een hele reeks bewegende onderdelen. Bewegende onderdelen zijn onderhevig aan mechanische slijtage en daarom alleen al kunnen magnetische schijven na verloop van (een relatief korte) tijd problemen vertonen.
  • Doorvoersnelheid: het aantal MB dat per seconde kan uitgelezen worden is afhankelijk van de rotatiesnelheid van de schijf en de data-dichtheid op de schijf: hoe hoger beiden, hoe hoger de doorvoersnelheid. De data-dichtheid wordt beperkt door de productietechnologie enerzijds en door de gevoeligheid van de lees-/schrijf-kop anderzijds. Ter vergelijking: de betere harde schijven halen tegenwoordig gemiddelde doorvoersnelheden van zo'n 60 MB/s terwijl RAM geheugen probleemloos 3,2 GB/s haalt. Naast het feit dat de gemiddelde doorvoersnelheid laag is, speelt ook het feit dat de doorvoersnelheid niet constant is over de harde schijf: de doorvoersnelheid aan de buitenrand van de schijf is namelijk hoger dan de doorvoersnelheid in het midden van de schijf. Dit zorgt voor extra variabiliteit en onvoorspelbaarheid van de performance van magnetische schijven.
  • Toegangstijden: magnetische schijven draaien aan een vaste snelheid rond en de gegevens die erop opgeslagen zijn kunnen pas benaderd worden wanneer de plek waar de data staat zich precies onder de lees-/schrijf-kop bevindt. In het slechtste geval moet de hele schijf een volledige omwenteling doen vooralleer kan begonnen worden met de data uit te lezen. Deze vertraging noemt men ook de mechanische vertraging omdat die in hoofdzaak te wijten is aan de fysische bewegingen binnen de schijf. Bij een harde schijf spreekt men van toegangstijden van gemiddeld een 10-tal milliseconden. Ter vergelijking: RAM geheugen werkt met toegangstijden van een 10-tal nanoseconden; RAM heeft m.a.w. een toegangstijd dat 1 miljoen maal korter is dan een magnetische schijf.

RAID is een technologie die oorspronkelijk voor de bedrijfswereld ontwikkeld werd om deze problemen aan te pakken.

De basis van RAID-technologie is het combineren van meerdere onafhankelijke schijven voor het verwerken van storage-opdrachten. Eenvoudig gesteld verdeelt men de opgeslagen data over verschillende harde schijven. De logica is nu dat lees/schrijfopdrachten door meerdere harde schijven tegelijk afgehandeld worden. Omdat iedere schijf nu minder werk moet verrichten, is de opdracht sneller afgehandeld.

Om deze techniek onafhankelijk te maken van software-ondersteuning, wordt een fake harde schijf gesimuleerd door de RAID controller. Om dit te bereiken presenteert de RAID controller een reeks opeenvolgende adressen aan de software (alsof het dus 1 enkele harde schijf betreft). Wanneer de software een bepaalde opdracht stuurt voor een bepaald adres, dan bepaalt de RAID controller op welke harde schijf dat adres zich bevindt en welk fysiek adres op die schijf daarmee overeenkomt. De opdracht wordt vervolgens naar die schijf gestuurd.

Op performance-vlak is RAID interessant omdat software gewoonlijk niet 1 enkel adres opvraagt. In software werken we met vrij grote hoeveelheden data (files). Wanneer een file gelezen wordt, stuurt de software leesopdrachten door naar de RAID controller vragend naar adressen waar die file opgeslagen staat. Als het goed is, komen deze adressen overeen met locaties op verschillende schijven en kunnen deze schijven tegelijk aan de opdracht werken.

Zoals je wellicht wel weet, bestaan er verschillende types RAID. Deze verschillen allemaal in de manier waarop de data verdeeld wordt over de onafhankelijke schijven:
  • RAID 0: hier worden de even adressen opgeslagen op de ene schijf terwijl de oneven adressen op de andere schijven opgeslagen worden. RAID 0 is de performantste en is bovendien eenvoudig te implementeren. Het nadeel ervan is dat het ook de minst betrouwbare is: de kans op een crash is immers verdubbeld t.o.v. single-disk systemen (als 1 schijf crasht, dan ben je de data van beide schijven kwijt: je bent immers niets met enkel de data van de (on)even adressen).
  • RAID 1: hier worden alle adressen op iedere schijf neergeschreven. Dit betekent dat alle schijven alle data bevatten. RAID 1 is de meest betrouwbare (als 1 schijf crasht kan je gewoon verderwerken met de overige schijf) en is de eenvoudigste te implementeren. Het nadeel is dat het wegschrijven van data even traag gaat als bij single-disk systemen (het lezen gaat echter sneller).
  • RAID 5: hier worden de adressen verdeeld over minstens 3 schijven. Op iedere schijf wordt, naast de eigen data, een deel van de capaciteit ingenomen door data van de overige schijven (we noemen dit redundante data). De bedoeling is dat een RAID 5 systeem een crash van 1 schijf kan overleven. De verloren gegane data kan in zo'n systeem gereconstrueerd worden door de redundante data op de andere schijven. RAID 5 is zowel performanter als betrouwbaarder dan een single-disk systeem.

(informatie over de overige RAID types kan je o.m. hier vinden)

Het is erg belangrijk te beseffen dat RAID niet alle problemen van harde schijven oplost. Van de 3 probleemgebieden (betrouwbaarheid, doorvoersnelheid en toegangstijden) worden enkel de 2 eerste verholpen.

Waarom worden de toegangstijden niet verlaagd? Wanneer de RAID controller opdrachten verdeelt over verschillende harde schijven, zullen al die harde schijven hun opdrachten tegelijkertijd beginnen uitvoeren. De toegangstijd is de tijd die nodig is opdat de lees- en schrijfkop zich boven het eerste gevraagde adres begeeft. Als de gemiddelde toegangstijd van iedere schijf gelijk is (neem 10ms als voorbeeld), dan zal het gemiddeld diezelfde tijd duren eer het hele RAID systeem aan de opdracht kan beginnen (het duurt immers gemiddeld 10ms eer de lees- en schrijfkop van de eerste schijf zich op de gewenste positie begeeft).

De doorvoersnelheid wordt wel verhoogd omdat, eens de lees- en schrijfkoppen van de individuele schijven zich op de juiste plaatsen hebben bewogen, de schijven allen tegelijk data beginnen uit te spuwen. Het aantal MB/s van de ene schijf kan je dan optellen bij het aantal MB/s van de andere schijven...

Het betrouwbaarheidsaspect wordt verbeterd zoals vermeld in het overzicht van de RAID types.

Dit artikel werd deels gebaseerd op deze bron.

21 juli 2009 gewijzigd om 21:01 door apa

Categories
Computers , ‎ Hardware

Reacties

Trackback-signaleringen

Totaal aantal trackback-signaleringen 0
Trackback-link: