Unexpected.be

Telling stories for a living

Tag: Shared Storage

SAN

Dit is een vervolgpost op een eerdere post – Shared Storage.
SAN – Storage Area Network – is de meest pure vorm van storage die je kan verkrijgen. In de volksmond zegt men “SAN” tegen de shared storage omgeving wanneer men spreekt over een “block-based” storage oplossing. Om uit te leggen wat daarmee bedoeld wordt, spoelen we terug naar onze computer thuis.
Als je een harde schijf in je computer installeert, dan kan je daar op zich weinig mee doen. Die schijf moet geformateerd worden zodat het besturingsysteem (oftewel OS van Operation System) ze herkent als opslagmedium, waarna er een bestandsysteem op gemaakt kan worden (vanaf nu file-system).
Op het moment dat de harde schijf in de computer zit en geformateerd is, is het een “block-device”. Het OS ziet een opslagmedium, maar het kan er niet van lezen of naar schrijven omdat er geen file-system op zit.
Een file-system is praktisch altijd gelinkt aan het OS: Windows gebruikt vandaag NTFS (NT File System en NT verwijst naar Windows NT, het allereerste “professioneel” OS van Microsoft).
Vroeger had je op Windows ook FAT16/32, wat je nog kan tegenkomen als je bv. een USB-stick wil formatteren. Apple gebruikt dan weer MAC OS Extended op hedendaagse systemen. En zo heeft elk OS zijn eigen variant van een file-system, die zo goed als nooit compatibel zijn onderling.
Hieruit kan je concluderen dat een applicatie of zelfs een OS nooit “rechtstreeks” naar een SAN kan schrijven. Er moet eerst een file-system aangemaakt worden alvorens er bestanden weggeschreven / gelezen kunnen worden van de SAN.
De SAN bestaat dus uit X aantal harde schijven + controllers die de intelligentie van het systeem uitmaken. Met die controllers (en de bijhorende management software) gaan we een aantal van die harde schijven bundelen in een groep die ervoor zorgt dat wanneer er een harde schijf stuk gaat, er automatisch een reserve exemplaar in de plaats komt zonder dat er data verloren gaat.
Deze configuratie noemen we een RAID-groep (Redundant Array for Independent Disks) en er bestaan verschillende varianten met elk zijn voor- en nadelen. Op dit moment is dat echter onbelangrijk en ga ik daar niet verder op in.
Nu hebben we dus een RAID-groep met daarin X aantal harde schijven. Op die groep gaan we een “virtuele” harde schijf maken en dat noemen we een Logical Unit (LU). Soms wordt dat ook een LUN (Logical Unit Number) genoemd, maar technisch gezien wordt een LU pas een LUN wanneer ze aangeboden wordt aan een server.
Ook dat maakt weinig uit op dit moment, zo lang het duidelijk is dat we op die “fysische” groep van schijven (RAID-groep) een “virtuele” schijf gemaakt hebben die even groot is als de som van de fysische schijven in de RAID-groep.
Kanttekening:

  • De “virtuele” schijf moet niet even groot zijn als de totale som, maar is maximaal even groot + best practise zegt dat je 1 “virtuele” schijf maakt per RAID-groep (waarom leg ik later wel uit)
  • De “virtuele” schijf is eigenlijk niet gelijk aan de totale som van de fysische schijven in de RAID-groep omdat je 1 of meerdere schijven niet kan gebruiken omdat die er voor zorgen dat je data niet verloren is wanneer er een schijf stuk gaat. Voor nu is dat echter niet belangrijk en gaan we gewoon van een simpele 1-op-1 stelling uit om alles high-level te kaderen

Het is de “virtuele” schijf oftewel LU(N) die we via een storage-netwerk (SAN, remember?) aan de server aanbieden. De server ziet die LU(N) dan alsof er in de server zelf een harde schijf is toegevoegd. Met andere woorden – het OS moet die LU(N) formatteren en er een file-system op plaatsen alvorens de applicaties er iets mee kunnen doen. En dat is in essentie wat een SAN is / doet en waarom we dat een “block-based” storage platform noemen.
Nog interessant om weten: dat “netwerk” waarmee de SAN aan de servers gekoppeld is, is meestal een glasvezel netwerk (FC – Fibre Channel) dat vandaag tot 8Gb/s aankan. Anderzijds is er ook de mogelijkheid om over het IP-protocol te werken en dan spreken we van een iSCSI SAN in plaats van een FC-SAN. iSCSI kan in 1Gb/s of 10Gb/s aangeboden worden.
Typisch zie je iSCSI in kleinere omgevingen of omgevingen waar men al zwaar geïnvesteerd heeft in een IP-netwerk. Een FC-SAN vereist een FC-netwerk met speciale switches, waardoor de kostprijs ook hoger ligt.
Hopelijk is de term SAN als variant van Shared Storage nu duidelijker? Zoals gewoonlijk zijn vragen of feedback welgekomen in de comments hieronder! Next up: NAS oftewel Network Attached Storage.

Shared Storage

Omdat ik hier toch vaak over storage en aanverwanten leuter en soms te horen krijg dat het allemaal nogal “Chinees” is, lijkt het me opportuun om de basisconcepten ervan toe te lichten zodat geïnteresseerden mee kunnen met mijn meer technische blogposts.
Het is niet de bedoeling om een technisch naslagwerk te schrijven, want daar staat het internet al vol van en die bestaande “whitepapers” leggen dat ook beter en meer gedetailleerd uit dan dat ik dat hier zou kunnen / willen.
Neen, het idee is dat ik op deze manier minder technische lezers een blik achter de schermen geef in “mijn wereld”, het inzicht geef dat ze zonder het te weten waarschijnlijk elke dag met zulke systemen in aanraking komen én misschien wel warm maak om er meer over te weten te komen.
Anyway – here goes!
Storage kennen de meeste mensen in de vorm van een harde schijf (als je echt extreem “not into IT” bent, kan je nog aan kasten van IKEA enz denken, maar dat is het dus niet!).
Een harde schijf vinden we terug in elke computer (gemakkelijkheidshalve beschouw ik een SSD oftewel Solid State Drive ook als harde schijf in dit verhaal), al dan niet intern of extern (USB, FireWire, eSATA) en wordt gebruikt om je data te bewaren.
Voor een PC is dat uiteraard prima, maar wat als je nu met verschillende servers (=grotere, snellere computers die applicaties draaien zoals de e-mail software, de databases,…) opgezadeld bent – lees: elke bedrijf dat meer dan 25 werknemers heeft (ok, die 25 is een beetje nattevingerwerk, maar je weet wat ik bedoel).
Op dat niveau werkt men uiteraard niet met externe harde schijven en wil men eigenlijk ook niet werken met interne harde schijven (in de servers welteverstaan) omdat dat de beheerbaarheid, het backup-verhaal, maar zeker en vast ook de performantie (zeer belangrijk) niet ten goede komt.
Om die eerder genoemde tekortkomingen te omzeilen, gebruiken de meeste bedrijven een “shared storage” oplossing. De naam zegt het zelf: een storage oplossing die gedeeld wordt met anderen en met anderen bedoel ik “servers”.
Concreet kan je een shared storage systeem dus beschouwen als een verzameling van harde schijven die via een netwerk toegankelijk zijn voor elke computer / server. Iedere computer bewaart zijn data op die centrale storage, waardoor het beheer van alle data veel makkelijker is. Say hello to my world!
Het performantie verhaal is te verklaren als volgt:

  • Centrale storage oplossingen bevatten controllers (servers die niks anders doen dan data beheren zeg maar) die gebouwd zijn om data zo snel mogelijk te kunnen verwerken. Een “normale” computer heeft veel meer taken dan je data beheren (surfen op internet, muziek afspelen, foto’s bewerken, gamen,…) en is dus eerder in veel goed, maar blinkt in niets uit. Op je computer thuis merk je daar natuurlijk niets van, maar beeld je eens in dat er 100 mensen tegelijkertijd bestanden van en naar je computer zouden kopiëren… En net dat is wat er in bedrijven constant gebeurt (mails die binnenkomen en verstuurd worden, mensen die in databanken updates doen, printers die bladzijden uitspuwen… en ga zo maar door).
  • Centrale storage bevat ook veel meer harde schijven – vanaf nu noemen we dat “spindles”, afkomstig van het werkwoord “spinning” oftewel draaien – en de logica leert ons dat de snelheid waarmee je data gelezen en geschreven kan worden, evenredig is met het aantal spindles waarop de data verspreid wordt. Uiteraard zijn er nog andere factoren die de snelheid beïnvloeden, maar daar kom ik in een latere vervolgblogpost op terug zodat het niet te ingewikkeld wordt.

Shared storage bestaat in verschillende varianten, maar grosso modo kunnen we stellen dat er twee soorten zijn: SAN en NAS. Dezelfde drie letters, maar in omgekeerde volgorde en die volgorde maakt wel degelijk een wereld van verschil.
SAN staat voor “Storage Area Network” terwijl NAS de afkorting is van “Network Attached Storage”. Klinkt gelijkend, maar is het dus helemaal niet.
Waar de verschillen juist liggen, daar kom ik de komende dagen op terug. Het belangrijkste is dat je nu het concept van “shared storage” of centrale opslag zou moeten begrijpen, maar ook beseffen waarom het interessanter is dan decentrale opslag van data.
Feedback, vragen of andere uiteraard welkom in de commentaar!

© 2018 Unexpected.be

Theme by Anders NorenUp ↑