OpenStack

Wat is OpenStack?

OpenStack is set van open source tools voor het bouwen en beheren van cloud computing platformen, voor zowel public als private clouds. Vaak wordt de software gedeployed als infrastructuur-as-a-service, waarbij de resources via API’s aan de eindgebruiker ter beschikking worden gesteld.

OpenStack

Voorheen was er geen open source oplossing beschikbaar voor het beheren van compute clusters met meer dan 100K-cores. Toch was er een duidelijke behoefte aan een cloud management systeem dat kon schalen en open interfaces kon leveren aan allerlei verschillende bedrijfsonderdelen. In overeenstemming met deze behoeftes lanceerden de ontwikkelaars van NASA en Rackspace gezamenlijk een open-source cloud-software-initiatief, OpenStack.

De belangrijkste OpenStack-componenten

  • Nova – beheerder van computational resources.
  • Swift – cloud storage.
  • Glance – virtual machine images.
  • Horizon – dashboard; regelt de interactie met verschillende OpenStack-services.
  • Neutron  – levert “networking-as-a-service tussen interfaces van devices.
  • Keystone – service verantwoordelijk voor identificatie.
  • Cinder – voorziet in het werken met block storage.
OpenStack

Hieronder zijn de OpenStack-componenten verder uiteengezet.

OpenStack Nova

Nova (Compute) is een belangrijk aspect van OpenStack. Simpel gezegd is het een besturing voor virtuele machines. Nova vervult functies zoals het verwerken en verbinden van requests met een externe omgeving (verzoeken om virtuele machines te creëren), controle over systeembeschikbaarheid, reageert op eventuele softwarefouten en biedt load balancers aan voor de fysieke hardware.

Het geheel bestaat uit acht afzonderlijke componenten:

  • Cloud Controller – verbindt alle componenten met elkaar en monitort hun status.
  • API Server – implementeert een web-interface en verzorgt het beheer van de Cloud Controller.
  • Compute Controller – zorgt voor het starten van virtuele machines en koppelt deze aan de primaire infrastructuur.
  • Object Store – biedt een service voor dataopslag. Dit onderdeel werkt nauw samen met Amazon S3.
  • Auto Manager – is verantwoordelijk voor de juiste uitvoering van autorisatie- en authenticatiediensten.
  • Volume Controller – biedt de mogelijkheid om enkele virtuele devices te verbinden.
  • Network Controller – creëert virtuele netwerken en biedt een interactie van virtuele machines met een extern netwerk en met elkaar aan.
  • Scheduler – is verantwoordelijk voor het opnemen van zowel een nieuwe virtuele machine als de keuze van de computerbesturing.

OpenStack Swift

Swift is volledig gedistribueerd, failsafe en heeft praktisch onbeperkte opslagcapaciteit. Swift is ideaal voor het opslaan van ongestructureerde gegevens die onbeperkt kunnen groeien. De kenmerken van Swift zijn betrouwbaarheid en security.

De opslagcapaciteit omvat de volgende componenten:

  • Proxy Server – combineert alle elementen van het systeem.
  • Object Server –  verantwoordelijk voor de veiligheid van data en gegevens.
  • Container Server – voorziet in een levering van een objects list.
  • Account Server – stuurt lijsten met containers naar de specifieke accounts.

OpenStack Glance

Glance image service omvat het ontdekken, registreren en ophalen van virtual machine images. Glance heeft een RESTful API die het mogelijk maakt om metadata van de VM-image op te vragen en het eigenlijke image op te roepen.

VM-images die via Glance beschikbaar worden gesteld, kunnen op verschillende locaties worden opgeslagen, van eenvoudige bestandssystemen tot object-storage systemen zoals het OpenStack Swift project.

OpenStack

OpenStack Horizon

Horizon is een tool (dashboard) die zorgt voor interactie met verschillende OpenStack-services, zoals Nova, Swift, Keystone, etc. Het maakt het bijvoorbeeld mogelijk om instances uit te voeren, toegang te krijgen tot file storage, netwerkinstellingen (toegangen, IP-adressen) aan te maken, enz.

Horizon hanteert een aantal kernwaarden in het ontwerp van de architectuur:

  • Uitbreidbaar – iederere gebruiker kan een nieuwe component toevoegen als “first-class citizen”.
  • Beheersbaar – De kern van de codebase moet eenvoudig en gemakkelijk navigeerbaar zijn.
  • Consistent – visuele en interactieve modellen worden gehandhaafd gedurende het hele proces.
  • Stabiel – een betrouwbare API met de nadruk op compatibiliteit met de back-end.
  • Gebruiksvriendelijk –  het biedt een prachtige interface waar mensen graag mee werken.

OpenStack Neutron

Neutron is noodzakelijk voor het tot stand brengen van de netwerkverbinding. In de praktijk vertoont het veel overeenkomsten met vSwitch, vCNS en Distributed vSwitch aangezien het vergelijkbare diensten levert in de vCloud omgeving. Het project biedt “networking as a service” aan tussen verschillende interface devices, beheerd door andere OpenStack-diensten zoals Nova.

OpenStack KeyStone

KeyStone is een service verantwoordelijk voor identificatiediensten zoals API-cliënt authentificatie, service discovery en gedistribueerde multi-tenant autorisatie. Dit is mogelijk door het implementeren van de OpenStack Identity API.

OpenStack Cinder

Cinder is een Block Storage service voor het leveren van volumes aan virtuele machines van Nova. Cindra kan extra volume opleveren dat vervolgens wordt toegewezen aan een virtuele machine. Het is belangrijk te weten dat Cinder geen lokale opslag is met een geïnstalleerd besturingssysteem (zoals een C schijf in Windows OS).

Block Storage wordt toegepast door high-performance rate systemen, zoals SQL Server Databases en Exchange. Ze kunnen ook worden ingezet door applicaties met een hoge mate van verandering zoals data requirements.

OpenStack

Enkele doelstellingen van Cinder zijn:

  • Component gebaseerde architectuur – snel nieuwe gedragingen toevoegen.
  • Hoge mate van beschikbaarheid – schaalt naar zeer aanzienlijke workload.
  • Fouttolerant – geïsoleerde processen voorkomen cascadefouten.
  • Herstelbaar – mislukkingen moeten gemakkelijk te identificeren, te debuggen en te corrigeren zijn.
  • Open standaarden – wees een voorbeeld voor een API gestuurde community.

Samenvattend

OpenStack biedt diverse tools waarmee bedrijven een grootschalige visualisatie omgeving kunnen realiseren. Er zijn verschillende manieren om dit platform te gebruiken:

  • Stel je voor dat je een cloudomgeving gebruikt, maar je wenst een eigen cloudservice uit te rollen.
  • Je hebt een geweldig idee voor een startup wat wellicht iets nieuws op de markt brengt. 
  • Computing resources. Je kunt een heleboel resources inzetten op dezelfde taak om een zeer complex probleem parallel aan te vliegen.

OpenStack kan beschouwd worden als een framework dat een efficiënt en dynamisch beheer van virtualisatie, opslag en netwerken van allerlei resources mogelijk maakt met het grootste gemak en flexibiliteit.