SAN versus NAS: wat is het praktische verschil
Kort antwoord
Een SAN levert storage op blockniveau: ruwe volumes die er voor de server uitzien als lokale schijven, waardoor het eigen besturingssysteem van de server het bestandssysteem formatteert en beheert. Een NAS deelt storage juist op bestandsniveau, zodat meerdere clients tegelijk dezelfde bestanden en mappen kunnen lezen en beschrijven, terwijl de NAS zelf het bestandssysteem beheert. Kies een SAN wanneer één server directe, snelle toegang tot zijn eigen volume nodig heeft. Kies een NAS wanneer meerdere servers of gebruikers dezelfde bestanden moeten delen.
Twee verschillende lagen van storage
SAN en NAS zetten beide storage op het netwerk in plaats van in de serverbehuizing zelf, maar ze geven die storage door op een ander niveau. Dat is het hele verschil.
Een Storage Area Network (SAN) levert ruwe blockvolumes over een netwerkprotocol, meestal iSCSI of Fibre Channel. Vanuit het oogpunt van de server ziet een SAN-volume er precies uit als een lokale schijf: het verschijnt ongeformatteerd, en het eigen besturingssysteem van de server partitioneert het, zet er een bestandssysteem op en beheert het verder, net zoals bij een interne schijf. De SAN zelf weet niet welke bestanden op het volume staan. Hij levert alleen blocks.
Network Attached Storage (NAS) werkt een niveau hoger. Het deelt storage op bestandsniveau, via protocollen zoals NFS of SMB, en het NAS-apparaat of -platform beheert het bestandssysteem zelf. Clients maken verbinding met een share en zien direct mappen en bestanden, geen ruw te formatteren schijf. Omdat de NAS het bestandssysteem beheert, kunnen meerdere clients tegelijk verbinding maken met dezelfde share en elkaars wijzigingen zien, iets wat een enkel SAN-volume doorgaans niet biedt zonder extra clustersoftware erbovenop.
Waarom het verschil in de praktijk telt
De praktische gevolgen volgen rechtstreeks uit die gelaagdheid.
Een blockvolume dat vanaf een SAN wordt aangekoppeld, gedraagt zich als een schijf die bij één server hoort. Die server krijgt directe toegang op laag niveau, precies wat workloads zoals databases willen: consistente, voorspelbare prestaties zonder de overhead van een gedeeld bestandssysteem die in de weg zit. Twee servers die tegelijk hetzelfde SAN-volume aankoppelen, zonder cluster-aware software om ze te coördineren, beschadigen doorgaans data in plaats van ze veilig te delen. Daarom wordt een SAN-volume normaal gesproken behandeld als eigendom van één server tegelijk.
Een NAS-share is daarentegen precies gebouwd voor de situatie waar een SAN-volume moeite mee heeft: meerdere servers, of meerdere mensen, die dezelfde bestanden nodig hebben. Teamshares, content die meerdere applicatieservers allemaal moeten lezen, en samenwerkingsprocessen zijn de natuurlijke fit, omdat het eigen bestandssysteembeheer van de NAS juist is wat gelijktijdige toegang veilig maakt. Het nadeel is dat een gedeelde bestandssysteemlaag, en het netwerkbestandsprotocol daarbovenop, overhead toevoegt die een ruw blockvolume niet met zich meedraagt. Daardoor haalt een NAS doorgaans niet de piekprestaties op laag niveau van een SAN-volume voor één veeleisende workload.
Een praktische vuistregel
| Situatie | Betere fit | Waarom |
|---|---|---|
| Database of een andere veeleisende workload die bij één server hoort | SAN | Directe blocktoegang op laag niveau, zonder overhead van een gedeeld bestandssysteem |
| Bestanden die meerdere servers of gebruikers tegelijk moeten benaderen | NAS | De NAS beheert het bestandssysteem, waardoor gelijktijdige toegang van nature veilig is |
| Virtual machine-schijven | SAN | Elke VM-schijf is doorgaans een blockvolume dat op een gegeven moment bij één host hoort |
| Teamshares, gedeelde contentmappen, samenwerkingsmappen | NAS | Delen op bestandsniveau met veel clients tegelijk is precies waar NAS voor bedoeld is |
Twijfel je nog welke bij jouw situatie past, vraag jezelf dan af wie of wat de data tegelijkertijd moet openen. Eén server, op zijn eigen volume: SAN. Meerdere servers of mensen, dezelfde bestanden: NAS.