Local storage versus network-attached storage: wat is het echte verschil
Kort antwoord
Local storage staat fysiek op dezelfde host als de server, dus het is snel omdat er geen netwerkstap tussen zit, maar het zit ook vast aan die ene machine. Netwerkopslag, block storage volumes, is los te koppelen en kan tussen servers verhuizen, tegen de prijs van een beetje extra latency door die netwerkstap. Vanuit het besturingssysteem zien beide er identiek uit, een gekoppelde disk is een gekoppelde disk, tot een hostuitval, een migratie of een resize het verschil ineens wel laat voelen.
Zelfde koppelpunt, andere fysieke werkelijkheid
Local (instance) storage zit in, of direct vastgemaakt aan, de fysieke host waar je server op draait. Er zit geen netwerk tussen de disk en de CPU die ervan leest, en precies daarom is local storage snel: elke read en write legt de kortst mogelijke weg af. De keerzijde is dat local storage bij die ene fysieke machine hoort. Als de server op andere hardware wordt heropgebouwd, of de onderliggende host valt uit, dan gaat local storage niet mee. Het blijft achter.
Netwerkopslag maakt de tegenovergestelde keuze. Een block storage volume staat op aparte storage-infrastructuur en bereikt je server via het netwerk, dus elke read en write legt die netwerkstap af, wat latency toevoegt die local storage simpelweg niet heeft. Wat je ervoor terugkrijgt is loskoppelbaarheid: het volume is niet gebonden aan één fysieke host, dus het kan naar een andere server verhuizen, na een heropbouw opnieuw worden gekoppeld, of onafhankelijk van de machine die het gebruikt worden geresized.
Waarom dit mensen op het verkeerde been zet
Vanuit het besturingssysteem verdwijnt het verschil grotendeels. Een gekoppelde disk verschijnt als een gekoppelde disk, of het nu een lokale NVMe-schijf is die aan de host vastzit of een netwerkvolume dat via het netwerk wordt benaderd. Niets in een gewone df -h of Schijfbeheer dwingt je om te zien welke van de twee je bekijkt, en voor dagelijkse reads en writes werken ze allebei gewoon.
Het verschil komt boven water zodra er iets met de onderliggende hardware gebeurt. Een hostuitval die anders zou betekenen dat je een server vanaf een backup moet heropbouwen, is een non-event voor data die op een netwerkvolume staat: koppel het aan een nieuwe host en ga verder. Diezelfde uitval tegen local storage betekent dat de data weg is, tenzij er apart een backup van was gemaakt, want local storage had nergens anders kunnen zijn. Migraties en resizes vertellen hetzelfde verhaal: een server naar andere hardware verplaatsen, of een volume laten groeien voorbij wat de host aan ruimte heeft, is eenvoudig met netwerkopslag en vrijwel onmogelijk met local storage zonder eerst een volledige kopie van de data te maken.
Kiezen tussen de twee
| Factor | Local storage | Netwerkopslag |
|---|---|---|
| Latency | Laagste, geen netwerkstap | Iets hoger, gaat via het netwerk |
| Gebonden aan fysieke host | Ja | Nee, kan worden losgekoppeld en opnieuw gekoppeld |
| Overleeft een hostuitval | Nee, tenzij apart geback-upt | Ja, het volume zelf wordt niet geraakt |
| Beste fit | Latency-gevoelige workloads waarbij de server en zijn data als één geheel behandeld kunnen worden | Alles wat je mogelijk onafhankelijk van de host moet migreren, resizen of herstellen |
Geen van beide opties is universeel de juiste keuze. Snelle, latency-kritische workloads die kunnen leven met een heropbouw vanaf een backup neigen naar local storage. Alles waarbij de data langer moet meegaan dan het specifieke stuk hardware waar het op begon, of waarbij je later verwacht te resizen of te migreren, neigt juist naar netwerkopslag.