Etablert 2008 · Digital utgave · 19 juni 2026

SMB IT Journal

IT-ressursen for små bedrifter

Norsk
Lagring

Sammenligning av SAN og NAS

En av de største forvirringene jeg har sett de siste årene er den mellom NAS og SAN. Å forstå hva hvert av dem er vil langt på vei bidra til å forstå hvor de er nyttige og hensiktsmessige.

Vår første oppgave er å fjerne markedsføringsbetegnelsene og gå over til de tekniske. NAS står for Network Attached Storage, men betyr ikke nøyaktig det, og SAN står for Storage Area Network, men brukes generelt for å referere til en SAN-enhet, ikke selve nettverket. I sin mest korrekte form er et SAN et hvilket som helst nettverk dedikert til lagrings-trafikk, men i den virkelige verden er det ikke slik det normalt brukes. Her er vi for å snakke om NAS- og SAN-enheter og hvordan de sammenligner seg, så vi vil ikke bruke definisjonen som inkluderer nettverket snarere enn enheten. I realiteten er både NAS og SAN markedsføringsbetegnelser og er litt vage i kantene på grunn av det. De er presise nok til å bruke i en normal teknisk samtale, så lenge alle parter vet hva de betyr, men når vi diskuterer betydningen deres bør vi fjerne de kultklingende navnene og holde oss til de mest tekniske beskrivelsene. Begge begrepene, når de brukes via markedsføring, brukes for å antyde at de er en bestemt teknologi som er “appliansifisert”, noe som gjør bruken av begrepene unødvendig komplisert men ikke mer nyttig.

Så vår første oppgave er å definere hva disse to navnene betyr i en enhetskontekst. Begge enhetene er lagringsservere, enkelt og greit, bare to forskjellige måter å eksponere den lagringen til omverdenen på.

Den enkleste av de to er SAN, som egentlig er en blokklagrings-enhet. Enhver enhet som eksponerer lagringen sin eksternt som en blokkenhet faller inn i denne kategorien og kan brukes om hverandre basert på hvordan den brukes. Blokklagrings-enhetene er eksterne harddisker, DAS (Direct Attach Storage) og SAN. Alle disse er egentlig det samme. Vi kaller det en ekstern harddisk når vi kobler den til en stasjonær datamaskin. Vi kaller det et DAS når vi kobler det til en server. Vi kaller det et SAN når vi legger til en form for nettverk, generelt en svitsj, mellom enheten og den endelige enheten som bruker lagringen. Det er ingen teknologisk forskjell mellom disse enhetene. Et tradisjonelt SAN kan kobles direkte til en stasjonær datamaskin og brukes som en ekstern harddisk. En ekstern harddisk kan kobles til en svitsj og brukes av flere enheter på et nettverk. Grensesnittet mellom lagringsenheten og systemet som bruker den er blokken. Vanlige protokoller for blokklagring inkluderer iSCSI, Fibre Channel, SAS, eSATA, USB, Thunderbolt, IEEE1394 (aka Firewire), Fibre Channel over Ethernet (FCoE) og ATA over Ethernet (AoE). En enhet som kobler til en blokklagringsenhet vil alltid se lagringen presentert som en diskstasjon, ikke noe mer.

Et NAS, også kjent som en “filer”, er en fillagrings-enhet. Dette betyr at den eksponerer lagringen sin som et nettverksfilsystem. Så en enhet som kobler til denne lagringen ser ikke en diskstasjon, men ser i stedet et monterbart filsystem. Når et NAS ikke er pakket som et applianse, kaller vi det rett og slett en filserver, og nesten alle dataenheter fra stasjonære maskiner til servere har en viss grad av denne funksjonaliteten innebygd. Vanlige protokoller for fillagringsenheter inkluderer NFS, SMB / CIFS og AFP. Det er mange andre, men teknisk sett er det spesielle fillagringsprotokollene som FTP og HTTP som også bør kvalifisere. Som et ekstremt eksempel er en tradisjonell webserver en svært spesialisert form for fillagringsenhet.

Det som skiller blokklagrings- og fillagringsenheter er typen grensesnitt de presenterer til omverdenen, eller, for å tenke på det på en annen måte, hvor inndelingen mellom server-enhet og klient-enhet skjer innenfor lagringsstakken.

Det har blitt svært vanlig i dag for lagringsenheter å inkludere både blokklagring og fillagring fra samme enhet. Systemer som gjør dette kalles unified storage. Med unified storage er om du kan si at den oppfører seg som en blokklagringsenhet eller fillagringsenhet (SAN eller NAS i vanlig parlance) eller begge basert på atferden du konfigurerer for enheten, ikke basert på hva du kjøper. Dette er viktig da det driver hjem poenget om at dette er rent en protokoll- eller grensesnittforskjell, ikke en av størrelse, kapasitet, pålitelighet, ytelse, funksjoner, osv.

Begge typer enheter har muligheten, men ikke kravet, om å tilby utvidede funksjoner under “demarkasjonspunktet” der de overlater lagringen til omverdenen. Begge kan, eller kan ikke, tilby RAID, logisk volumbehandling, overvåking, osv. Fillagring (NAS) kan også tilby filsystemfunksjoner som Windows NTFS ACLer.

Den viktigste fordelen med blokklagring er at systemene som kobler til den gis muligheten til å manipulere lagringssystemet som om det var en tradisjonell diskstasjon. Dette betyr at RAID og logisk volumbehandling, som kanskje allerede er gjort i “svarte boksen” til lagringsenheten, nå kan gjøres igjen, om ønskelig, på et høyere nivå. Klientenhetene er ikke klar over hvilken type enhet de ser, bare at den fremstår som en diskstasjon. Så du kan velge å stole på den (anta at den har RAID på et tilstrekkelig nivå, for eksempel) eller du kan kombinere flere blokklagringsenheter til RAID akkurat som om de var vanlige, lokale disker. Dette er svært uvanlig, men er et interessant alternativ, og det finnes produkter som er designet for å brukes på denne måten.

Mer vanlig er logisk volumbehandling som Linux LVM, Solaris ZFS eller Windows Dynamic Disks som legges på toppen av den eksponerte blokklagringen fra enheten, og deretter, på toppen av det, ville et filsystem bli brukt. Dette er viktig å huske: med blokklagringsenheter er filsystemet opprettet og administrert av klientenheten, ikke av lagringsenheten. Lagringsenheten er lykkelig uvitende om hvordan blokklagringen den presenterer brukes og lar sluttbrukeren bruke den på den måten de ønsker med total kontroll. Dette strekker seg til og med til det punktet at du kan kjede blokklagringsenheter sammen med en som gir lagring til den neste som kombineres, kanskje, til RAID-grupper – blokklagringsenheter kan lagres i lag, mer eller mindre, på ubestemt tid.

Alternativt inneholder en fillagringsenhet all blokk-delen av lagringen, så enhver mulighet for RAID, logisk volumbehandling og overvåking må håndteres av fillagringsenheten. Deretter, på toppen av blokklagringen, legges et filsystem. Vanligvis ville dette være Linux' EXT4, FreeBSD og Solaris' ZFS, Windows NTFS, men andre filsystemer som WAFL, XFS, JFS, BtrFS, UFS og mer er absolutt mulig. På dette filsystemet vil data lagres. For å deretter dele disse dataene med omverdenen brukes et nettverksfilsystem (også kjent som et distribuert filsystem) som gir et filsystemgrensesnitt som er nettverksaktivt – NFS, SMB og AFP er de vanligste, men som i enhver protokollfamilie finnes det mange spesialtilfeller og eksotiske muligheter.

En ekstern enhet som ønsker å bruke lagring på fillagringsenheten ville se den over nettverket på samme måte som den ville se et lokalt filsystem og er i stand til å montere det på en identisk måte. Dette gjør fillagring spesielt enkelt og åpenbart for sluttkonsumenter å bruke da det er svært naturlig i alle aspekter. Vi bruker nettverksfilsystemer hver dag for normal stasjonær databehandling. Når vi “tilordner en stasjon” i Windows, for eksempel, bruker vi et nettverksfilsystem.

En kritisk differensiering mellom blokklagring og fillagring som må skilles mellom er at, mens begge potensielt kan sitte på et nettverk og tillate flere klientmaskiner å koble til dem, er det bare fillagringsenheter som har muligheten til å megle den tilgangen. Dette er svært viktig og kan ikke overses.

Blokklagring fremstår som en diskstasjon. Hvis du rett og slett kobler en diskstasjon til to eller flere datamaskiner samtidig, kan du forestille deg hva som vil skje – hver vil ikke vite noe om de andre og vil ikke være klar over nye filer som opprettes, andre som endres, og systemene vil raskt begynne å overskrive hverandre. Hvis filsystemet ditt er skrivebeskyttet på alle noder, er dette ikke et problem. Men hvis noe system skriver eller endrer dataene, vil de andre ha problemer. Dette resulterer generelt i datakorrupsjon svært raskt, typisk i løpet av minutter. For å se dette i ekstremt eksempel, forestill deg å ha to eller tre klientsystemer som alle tror at de har eksklusiv tilgang til en diskstasjon og at de alle defragmenterer den samtidig. Alle data på stasjonen vil bli rykket i løpet av sekunder.

En fillagringsenhet, derimot, har naturlig megling da nettverksfilsystemet håndterer kommunikasjonen for tilgang til det virkelige filsystemet, og filsystemer er av natur naturlig flerbygdere. Så hvis ett system tilknyttet en fillagringsenhet gjør en endring, er alle systemer umiddelbart klar over endringen og vil ikke “trå på hverandres tær.” Selv om de forsøker å gjøre det, megler fillagrings-enhetens filsystem tilgangen og har det siste ord og lar ikke dette skje. Dette gjør deling av data enkelt og transparent for sluttbrukere. (Jeg bruker begrepet “sluttbrukere” her til å inkludere systemadministratorer.)

Dette betyr ikke at det ikke finnes noe middel for å dele lagring fra en blokkenhet, men meglingen av det kan ikke håndteres av blokklagringsenheten selv. Blokklagringsenheter kan gjøres “delbare” ved hjelp av det som er kjent som et klynget filsystem. Disse typene filsystemer oppsto da serverklynger delte lagringsressurser ved å ha to servere tilknyttet med en SCSI-kontroller i begge ender av en enkelt SCSI-kabel og ha de delte stasjonene tilknyttet i midten av kabelen. Det eneste middelet som serverne kunne kommunisere gjennom var gjennom filsystemet selv, og så ble spesielle klyngede filsystemer utviklet som tillot kommunikasjon mellom enhetene, og varslet hverandre om endringer gjort av den andre, gjennom selve filsystemet. Dette fungerer faktisk overraskende bra, men klyngede filsystemer er relativt uvanlige, med Red Hats GFS og Oracles OCFS som noen av de mest kjente i den tradisjonelle serververdenen og VMwares mye nyere VMFS som har blitt svært kjent gjennom sin bruk til virtualiseringslagring. Vanlige brukere, inkludert systemadministratorer, har kanskje ikke tilgang til klyngede filsystemer eller kan ha behov som ikke tillater bruken av dem. Viktig å merke seg er også at meglingen håndteres gjennom tillit, ikke gjennom håndhevelse, som med en fillagringsenhet. Med en fillagringsenhet håndterer selve enheten tilgangsmegling og det er ingen vei rundt det. Med blokklagringsenheter som bruker et klynget filsystem kan enhver enhet som kobler til lagringen ignorere det klyngede filsystemet og rett og slett omgå den passive meglingen – dette er så enkelt at det normalt ville skje ved et uhell. Det kan skje når man monterer filsystemet og angir feil filsystemtype, eller gjennom at en stasjon oppfører seg feil, eller gjennom ondsinnet handling. Så tilgangssikkerhet er avgjørende på nettverksnivå for å beskytte lagring på blokknivå.

Det underliggende konseptet som eksponeres her er at blokklagringsenheter er dumme enheter (tenk glorifisert diskstasjon) og fillagringsenheter er smarte enheter (tenk tradisjonell server). Fillagringsenheter må inneholde en fullt fungerende “datamaskin” med CPU, minne, lagring, filsystem og nettverk. Blokklagringsenheter kan inneholde disse tingene, men trenger det ikke. I sin enkleste form kan blokklagringsenheter være ikke annet enn en diskstasjon med en USB- eller Ethernet-adapter festet til dem. Det er faktisk ikke uvanlig at de er ikke noe mer enn en RAID-kontroller pluss Ethernet- eller Fibre Channel-adaptere for tilkobling.

I begge tilfeller, blokklagringsenheter og fillagringsenheter, kan vi skalere ned til trivielt enkle enheter eller kan skalere opp til massive “stormaskinklasse” ultra-høytilgjengelighetssystemer. Begge kan være enten raske eller trege. Én er ikke bedre eller verre, én er ikke høyere eller lavere, én er ikke mer eller mindre enterprise – de er forskjellige og tjener generelt forskjellige formål. Og det er avanserte funksjoner som begge kan ha eller ikke ha. Utfordringen er å vite hvilken som er riktig for hvilken jobb.

Jeg liker å tenke på blokklagringsprotokoller som en “standard ut”-strøm, mye som på en kommandolinje. Så basisnivået for enhver lagrings-“pipeline” er alltid en blokkenhet, og mange blokkenheter eller transformasjoner kan eksistere med hver som pipes fra en til den andre så lenge utdataene forblir en blokklagringsprotokoll. Vi avslutter bare kjeden når vi legger på et filsystem. På denne måten kan maskinvare-RAID, nettverks-RAID, logisk volumbehandling, osv. brukes i flere kombinasjoner etter behov. Blokklagring er virkelig ikke bare blokker med data, men byggeblokker i lagringssystemer.

Et poeng som er svært interessant er at siden blokklagringsenheter kan kjedes og siden nettverkslagringsenheter må akseptere blokklagring som sin “inndata”, er det faktisk ganske vanlig at en blokklagringsenhet (SAN) brukes som støttelagring for en fillagringsenhet (NAS), spesielt i avanserte systemer. De kan samleve innenfor et enkelt chassi eller de kan samarbeide på nettverket.

Merketnas san

Annonse

SMB IT Journal — the IT resource for small business