Stasjonsvisning

Et av de mer vanlige, men likevel vanskeligere grunnleggende konseptene i databehandling i dag er konseptet stasjonsvisning, eller med andre ord noe som ser ut som en harddisk. Dette kan høres enkelt ut, og for det meste er det det, men det kan være vanskelig.
Først, hva er en harddisk. Dette burde være enkelt. Vi mener normalt en tradisjonell roterende Winchester-disk slik de har blitt produsert i tiår i standard tre og en halv tommer samt to og en halv tommer formfaktorer. De inneholder plater som roterer, et lese/skrivehode som beveger seg frem og tilbake, og de kobles til ved hjelp av noe som ATA- eller SCSI-kontakter. De fleste av oss kan ta opp en harddisk med hendene og være sikre på at vi har en harddisk. Dette kaller vi den fysiske manifestasjonen av stasjonen.
For datamaskinen ser den derimot ikke kabinettet til stasjonen eller kontaktene. Datamaskinen må se gjennom sin elektronikk og “se” stasjonen digitalt. Dette er svært, svært forskjellig fra hvordan mennesker ser på den fysiske stasjonen. For datamaskinen fremstår en harddisk som en ATA-, SCSI- eller Fibre Channel-enhet på det mest grunnleggende fysiske nivået, og abstraheres generelt til et høyere nivå som en blokkenhet. Dette er det vi ville kalle en logisk visning, snarere enn en fysisk. For våre formål her vil vi tenke på alle disse stasjonsgrensenittene som blokkenheter. De er forskjellige, men bare litt og ikke på en måte som er avgjørende for diskusjonen. Det som er viktig er at det finnes et standardgrensesnitt eller et sett av nært beslektede grensesnitt som datamaskinen ser som en harddisk.
En annen måte å tenke på den logiske stasjonsvisningen her er at alt som ser ut som en harddisk for datamaskinen, er noe som datamaskinen kan formatere med et filsystem. Filsystemer er ikke stasjoner i seg selv, men krever en stasjon å plasseres på.
Konseptet om grensesnittet er det viktigste her. For datamaskinen er det “alt som implementerer et harddiskgrensesnitt” som virkelig ses som en harddisk. Dette er både et enkelt og et kraftig konsept.
Det er på grunn av bruken av et standardgrensesnitt at vi var i stand til å ta flashminne, koble det til en diskkontroller som ville presentere det over et standardprotokoll (både SATA- og SAS-implementeringer av ATA og SCSI er vanlige for dette i dag) og lage SSD-er som ser ut og oppfører seg nøyaktig som tradisjonelle Winchester-stasjoner for datamaskinen, men som ikke har noe fysisk til felles med dem. De kan eller kan ikke komme i en kjent fysisk formfaktor, men de mangler definitivt plater og et lese/skrivehode. Ser vi på virkemåten til en tradisjonell harddisk og en moderne SSD, ville vi ikke gjettet at de deler et formål.
Dette konseptet gjelder mange enheter. Åpenbart fungerer SD-kort og USB-minnepinner på samme måte. Men viktigere er dette hvordan partisjoner på toppen av harddisker fungerer. Partisjoneringssystemet bruker konseptet om stasjonsvisningsgrensesnitt på den ene siden for å kunne brukes på en enhet, og på den andre siden presenterer det et stasjonsvisningsgrensesnitt til hva enn som ønsker å bruke det; normalt et filsystem. Denne ideen om noe som bruker stasjonsvisningsgrensesnittet på begge sider er svært viktig. Ved å gjøre dette får vi en ensartet og universell byggeklossystem for å lage komplekse lagringssystemer!
Vi ser dette konseptet om “stasjon inn; stasjon ut” i mange tilfeller. Sannsynligvis er det best kjente RAID. Et RAID-system tar en rekke harddisker, anvender en av en rekke algoritmer for å få diskene til å fungere som et team, og presenterer dem deretter som en enkelt stasjonsvisning til neste system opp i “stakken.” Denne innkapslingen er det som gir RAID sin kraft: systemer lenger opp i stakken som ser på et RAID-array ser bokstavelig talt en harddisk. De ser ikke arrayen av stasjoner, de vet ikke hva som er under RAID-en. De ser bare den resulterende stasjonen (eller stasjonene) som RAID-systemet presenterer.
Fordi et RAID-system tar et vilkårlig antall stasjoner og presenterer dem som en standardstasjon, har vi den teoretiske evnen til å lagdele RAID så mange ganger vi vil. Selvfølgelig ville dette være ekstremt upraktisk å gjøre i stor grad. Men det er gjennom dette konseptet at nestede RAID-arrayer er mulige. For eksempel, hvis vi hadde mange fysiske harddisker delt inn i par og hvert par i et RAID 1-array. Hvert av de resulterende arrayene presenteres som en enkelt stasjon. Hver av disse resulterende logiske stasjonene kan kombineres i et annet RAID-array, for eksempel RAID 0. Å gjøre dette er hvordan RAID 10 er bygget. Videre kunne vi ta en rekke RAID 10-arrayer, presentere dem alle til et annet RAID-system som legger dem i RAID 0 igjen og få RAID 100 og så videre på ubestemt tid.
På samme måte bruker det logiske volumlaget den samme typen innkapsling som RAID for å utføre sin magi. Logiske volumbehandlere, som LVM på Linux og Dynamic Disks på Windows, sitter på toppen av logiske disker og gir et lag der du kan gjøre kraftig administrasjon som fleksibelt å utvide enheter eller aktivere øyeblikksbilder, og deretter presentere logiske disker (dvs. stasjonsvisningsgrensesnitt) til neste lag i stakken.
På grunn av den ensartede naturen til stasjonsvisninger kan stakken skje i hvilken som helst rekkefølge. En logisk volumbehandler kan sitte på toppen av RAID, eller RAID kan sitte på toppen av en logisk volumbehandler, og selvfølgelig kan du hoppe over den ene eller den andre eller begge!
Konseptet med stasjonsvisninger eller logiske harddisker er kraftig i sin enkelhet og gir oss stort potensial for å tilpasse lagringssystemer slik vi trenger å lage dem.
Selvfølgelig er det andre bruksområder for det logiske stasjonskonseptet også. Et av de mest populære og minst forståtte er SAN. Et SAN er ingenting mer enn en enhet som tar én eller flere fysiske disker og presenterer dem som logiske stasjoner (denne presentasjonen av en logisk stasjon fra et SAN kalles en LUN) over nettverket. Dette er, bokstavelig talt, alt et SAN er. De fleste SAN-er vil inkorporere et RAID-lag og sannsynligvis et logisk volumbehandlerlag før de presenterer de endelige LUN-ene, eller diskvisningene, til nettverket, men det er ikke nødvendig for å være et SAN.
Dette betyr selvfølgelig at flere SAN-LUN-er kan kombineres i et enkelt RAID eller kontrolleres via et logisk volumlag. Og selvfølgelig betyr det at en SAN-LUN, en fysisk harddisk, et RAID-array, et logisk volum, en partisjon… alle kan formateres med et filsystem ettersom de alle er forskjellige måter å oppnå det samme resultatet på. De oppfører seg alle identisk. De deler alle stasjonsvisningsgrensesnittet.
For å gi et eksempel fra den virkelige verden på hvordan du ofte ville se alle disse delene komme sammen, vil vi undersøke en av de mest vanlige “lagringsstakkene” du vil finne i bedriftsrommet. Selvfølgelig er det mange måter å bygge en lagringsstakk på, så ikke bli overrasket om din er annerledes. Nederst i stakken er det nesten alltid fysiske harddisker, som kan inkludere solid state-stasjoner. Disse er plassert fysisk inne i et SAN. Før de forlater SAN-et vil stakken sannsynligvis inkludere det faktiske lagringslaget for stasjonene, deretter et RAID-lag som kombinerer disse stasjonene til en enkelt enhet. Deretter et logisk volumlag for å tillate funksjoner som vekst og øyeblikksbilder. Så er det det fysiske skillet mellom SAN-et og serveren som presenteres som LUN-en. LUN-en har deretter en logisk volumbehandler anvendt på den på server-/operativsystemsiden av demarkasjonspunktet. Deretter på toppen av den LUN-en er et filsystem som er vårt siste trinn, ettersom filsystemet ikke fortsetter å presentere et stasjonsvisningsgrensesnitt, men et filgrensesnitt, i stedet.
Å forstå stasjonsvisning, eller logiske stasjoner, og hvordan disse lar komponenter grensesnitte med hverandre for å bygge komplekse lagringsundersystemer, er et kritisk byggeklosselement for IT-forståelse og er bredt anvendelig for et stort antall IT-aktiviteter.
