Insights, technology, people and more

Altijd up-to-date met onze laatste artikelen.

@
Van kilobyte naar petabyte; betrouwbare en centrale dataopslag

Van kilobyte naar petabyte; betrouwbare en centrale dataopslag

30 September 2014 door in Hosting

De hoeveelheid informatie op het internet blijft onverminderd groeien en de beschikbaarheid ervan wordt gezien als vanzelfsprekend. Het internet is daarmee vergelijkbaar met de televisie: we verwachten dat de informatie onze kant uit komt als we het apparaat inschakelen. We verwachten dat het altijd werkt.

In tegenstelling tot televisie is internet echter een medium waarbij informatie veel meer twee kanten op stroomt. We ontvangen niet alleen informatie, maar versturen daarnaast iedere dag enorme hoeveelheden data naar het internet om het daar voor langere tijd op te slaan. Zo wordt er iedere seconde een uur aan videomateriaal naar YouTube verzonden en we verwachten dat dit er blijft staan tot we de video verwijderen. Daarmee is YouTube geen uitzondering. De Software as a Service platformen van tegenwoordig, bijvoorbeeld Gmail en Salesforce, zijn volledig afhankelijk van de beschikbaarheid van data.

De noodzaak voor dataredundantie en beschikbaarheid

De behoefte naar beschikbaarheid van diezelfde data groeit. Vroeger was het bijzonder om de harde schijven in een server dubbel uit te voeren in RAID1; tegenwoordig wordt hierover geen seconde meer getwijfeld. We kunnen ondertussen niet meer zonder deze beveiliging; verlies van informatie is onacceptabel. RAID is een veel voorkomende en relatief simpele oplossing voor dataredundantie. We zien echter steeds vaker dat applicatieplatformen beschikbaar worden gemaakt over twee of meerdere, fysiek gescheiden locaties. Het behouden van data is niet meer het enige dat telt; het is ook belangrijk dat de applicatie bereikbaar blijft. RAID is niet geschikt om de data over verschillende fysieke locaties te plaatsen. Daar komt andere technologie bij kijken.

Een applicatie bestaat uit veel componenten. Al deze componenten hebben uiteindelijk een raakvlak met de harde schijf. De data moet namelijk ergens worden opgeslagen. Zo is er bijvoorbeeld het programma zelf, een database en een locatie waar documenten opgeslagen worden. Voor iedere laag is een andere technologie beschikbaar die er voor zorgt dat een applicatie over meerdere locaties bereikbaar wordt. In dit artikel gaan we in op een technologie welke door Cyso veel wordt gebruikt. Deze technologie heet GlusterFS en maakt gegevens beschikbaar over meerdere locaties.

Centrale netwerkopslag met GlusterFS

In RAID worden meerdere fysieke schijven beschikbaar gemaakt alsof het een enkele schijf is. GlusterFS is software die je in staat stelt om verschillende opslagconfiguraties aan te maken waarvan de meeste varianten overeenkomsten hebben met RAID. In tegenstelling tot RAID gebruikt GlusterFS daar echter meerdere servers voor. Deze servers kunnen op zichzelf ook weer gebruik maken van RAID om de data te beschermen.

GlusterFS maakt het mogelijk om op een universele manier gebruik te maken van centrale netwerkopslag en is relatief gemakkelijk te beheren; twee goede redenen waarom wij bij Cyso veelvuldig gebruik maken van GlusterFS.

Bricks en Volumes

GlusterFS is opgebouwd uit bouwstenen die in de Gluster terminologie bricks worden genoemd. Een brick bestaat uit alles wat nodig is voor een normale server: een harde schijf, eventueel een RAID set, logical volume management, een filesysteem als ext4 en een besturingssysteem. Op het besturingssysteem wordt de GlusterFS server geïnstalleerd.

Gluster draait er bovenop
fig 1. Een GlusterFS brick

Meerdere GlusterFS bricks worden samengevoegd in een volume. Het volume is wat bij RAID de array wordt genoemd. Het is een enkel toegangspunt tot waar de data wordt opgeslagen. De server die hier gebruik van maakt ziet niet dat deze redundant is uitgevoerd.

Het GlusterFS volume is daarna op verschillende manieren bereikbaar. De meest gangbare methode is de GlusterFS client. De GlusterFS client is vergelijkbaar met de werking van NFS binnen Linux. De client wordt gebruikt om het volume beschikbaar te maken als een partitie op de server. Wanneer de client verbinding maakt met de GlusterFS server haalt deze de informatie over het volume op. Hierin staat welke bricks aanwezig zijn.

glusterfs-client-nfs
fig 2. GlusterFS client-server architectuur

Striping en Replicatie

De configuratie van het volume bepaalt in welke mate deze redundant is. Gluster is zelf namelijk niet automatisch redundant: net zoals RAID kent ook Gluster een methode om data op te breken in kleine blokken en deze te verdelen over de bricks (striped volumes). Dit komt overeen met RAID0, maar biedt daarmee nog geen redundantie. Maar het is ook mogelijk om een RAID1 configuratie op te zetten door middel van replicated volumes. Deze eigenschappen moeten worden meegegeven aan het volume op het moment dat deze wordt aangemaakt.

gluster-striped-volume
fig 3. Striped Volumes
Gluster
fig 4. Replicated Volumes

Door striped volumes en replicated volumes te combineren en te distribueren zijn nog uitgebreidere replicatie- en synchronisatiemogelijkheden in te stellen.

Wanneer één van de bricks niet bereikbaar is, zal de Gluster client automatisch een andere brick uitkiezen om de data op weg te schrijven. Deze houdt direct bij welke gegevens niet weggeschreven konden worden op de brick waar de storing optrad zodat deze gesynchroniseerd kan worden zodra deze weer beschikbaar is. Dit zorgt er voor dat er geen split-brain situatie ontstaat waarin de ene brick niet meer op de hoogte is van de status van de anderen.

Omgang met Big Data

GlusterFS is een systeem dat de potentie heeft om een enkel volume uit te breiden met honderden bricks en daarmee petabytes aan data beschikbaar te maken. Bij dergelijke hoeveelheden bricks is het belangrijk om snel te kunnen achterhalen waar de data is opgeslagen. Om dit te kunnen doen heeft GlusterFS, overigens net als Ceph , een hashing algoritme ontwikkeld. Op basis van de hash wordt bepaald waar een bestand zich bevindt zodat de client direct verbinding maakt naar de juiste set bricks. Naast dat het een schaalbaar systeem is, biedt het de mogelijkheid om asynchrone synchronisatie te configureren. Hiermee is het bijvoorbeeld mogelijk om disaster recovery op te zetten naar een derde locatie. Gluster noemt dit geo replication.

Performance en toepassing

Iedere high availability oplossing kent vaak hetzelfde nadeel: de snelheid waarmee de data wordt weg geschreven. Dit geldt ook voor Gluster. Wanneer een bestand wordt opgeslagen zal deze op ieder brick uit het volume worden geplaatst. Dit betekent dat de zwakste schakel, samen met wat netwerk overhead, de snelheid zal bepalen. Het gebruik van data op een GlusterFS volume zal nooit zo snel zijn als wanneer je werkt op een lokale harde schijf. Er moet bijvoorbeeld een verbinding gemaakt worden naar Gluster en een netwerkverbinding zal nooit sneller zijn dan wanneer de verbinding binnen de server blijft. Dit betekent dat je goed moet nadenken over welke data wel, maar ook welke data niet, op een Gluster volume wordt opgeslagen. Het is bijvoorbeeld nooit verstandig om de applicatie, caching of logbestanden op Gluster te plaatsen aangezien dit de performance van de applicatie negatief kan beïnvloeden.


Lees ook: PaaS: de stand anno 2016

Iets voor u?

Ondanks dat het niet voor iedere toepassing even geschikt is, biedt GlusterFS een stabiele, degelijke oplossing waarmee uw data over meerdere locaties redundant beschikbaar gemaakt kan worden. In veel situaties kunnen wij dit voor u verzorgen zonder dat uw applicatie zelf aangepast moet worden.

Dus heeft u op dit moment nog een applicatie die afhankelijk is van enkelvoudige storage en worstelt u nog met de juiste methodiek om uw applicatie en data hoog beschikbaar te maken? Neem dan contact op met één van onze technisch consultants om te kijken of een oplossing met GlusterFS iets voor u zou kunnen zijn.


Altijd up-to-date met onze laatste artikelen.

@

Kwaliteit. Betrouwbaar. Betrokken.
  • 24/7 service support
  • Nederlandse datacenters
  • ISO 27001 gecertificeerd
vmware enterprise service provider