Alles wat aar zoal meemaakt

3595Aar’s OpenStack week

posted by on juni 20th, 2016

Introductie.

control-your-cloud
Vandaag is de eerste dag van een z.g. backupperiode, waarin ik oproepbaar ben om een collega te vervangen als dat nodig is. Als dat niet nodig is dan kan ik me naar believen uitleven op een stukje training. En dat is mooi want OpenStack staat al een tijdje op het programma. Dat is echter zo’n omvangrijke pluk software dat het moeilijk is om even in een paar avondjes erbij te leren.

Wat is OpenStack en waar gebruik je het voor? Laat ik eerst de evolutie schetsen van computers waar websites, gegevensbanken en andere belangrijke programma’s op draaien:

  • Eerst had je een gewone server-computer waar alles op paste.
  • Toen werden de programma’s groter en kreeg je één server per programma.
  • De grenzen werden bereikt met enorme servers waar ternauwernood één programma op paste. Als die stuk ging dan waren de rapen gaar.
  • Toen werden programma’s zo slim dat ze op meerdere servers tegelijk konden werken. Heel fijn, want dan kun je verder opschalen en is het niet zo erg als er eentje stuk gaat. De industrie vond dat fijn maar zag ook een nadeel: ze verdienen meer aan één grote server dan aan een boel kleintjes.
  • Vervolgens werd een manier gevonden om één grote server op te delen in een aantal kleinere. Zo kon je maximale flexibiliteit leveren met een beperkt aantal servers. Beheerders echter begonnen problemen te krijgen om dat allemaal nog te overzien. De term cloud werd ervoor bedacht.
  • Tenslotte veranderde het cloud landschap in een enorm aantal kleine tot gigantische data centers over de hele wereld, vol met enorme servers die allemaal opgedeeld zijn in grote aantallen samenwerkende kleintjes. Je kunt nu zelfs een aantal servers in willekeurige werelddelen even aanzetten. Als je daarmee klaar bent dan zet je ze weer uit en stopt je betaling. Hoe beheer je dat? Met OpenStack

Er zijn uiteraard alternatieven voor OpenStack, maar deze is na de start door NASA en Rackspace een wereldstandaard geworden en is volledig Open Source. En daar hou ik dan weer van.

Om niet de hele dag achter een scherm te zitten heb ik het volgende bedacht: een dag wordt opgeknipt in enkele blokken van anderhalf uur, onderbroken door andere activiteiten. Deze blog post is een verslag van het grote OpenStack avontuur 🙂
Waarschuwing: verderop kan het nogal technisch worden… Wegzappen is mogelijk.

Dag 1, blok 1

Hoe vlieg je zoiets als dit eigenlijk aan? Het verstand zegt me om top down te werken: er zijn standaard distributies die alle componenten om een enkele computer gooien waar je op kan inloggen om alle onderdelen te verkennen. Een stemmetje zegt me echter dat ik waarschijnlijk veel te vaak de motorkap wil openen om te zien wat er echt gebeurt.

Het alternatief is om stapje voor stapje onderdelen te installeren en uiteindelijk (hopelijk) iets werkends te krijgen dat ik ook nog begrijp.
Dit knoopje is doorgehakt: ik ga stap voor stap installeren, maar spiek eerst hoe het geheel er uit zou kunnen zien. Bijvoorbeeld met deze introductie op youtube:

Keuzes
Ik ga de instructies van OpenStack zelf volgen en kies daarbij voor de Ubuntu-variant.
Er moet geroeid worden met de riemen die er zijn en zo zal mijn “grote” vaste computer met 16GB geheugen als Compute Node gaan werken (dus niet teveel wijzigingen want deze moet het wel blijven doen). Een wat oudere Sony laptop met 6 GB geheugen wordt Controller Node met zoveel mogelijk basiscomponenten; de optionele componenten blijven nu nog even buiten beeld. Het doel staat zo geformuleerd op de site:

Controller

The controller node runs the Identity service, Image service, management portions of Compute, management portion of Networking, various Networking agents, and the dashboard. It also includes supporting services such as an SQL database, message queue, and NTP.

Optionally, the controller node runs portions of Block Storage, Object Storage, Orchestration, and Telemetry services.

The controller node requires a minimum of two network interfaces.
Compute

The compute node runs the hypervisor portion of Compute that operates instances. By default, Compute uses the KVM hypervisor. The compute node also runs a Networking service agent that connects instances to virtual networks and provides firewalling services to instances via security groups.

You can deploy more than one compute node. Each node requires a minimum of two network interfaces.

De grote computer voldoet aan de eis voor meerdere netwerkkaarten, de laptop niet. Ik kan proberen een USB-netwerkkaartje te regelen maar ga starten met aliases. Zo kunnen eventueel nog meer netwerken gedefinieerd worden.

Zo met al dat geschrijf zit blok 1 er al weer op – tijd voor een bakkie thee en een simpele lunch.

Dag1, blok 2 en 3

Terwijl Debian bezig is te installeren op de laptop is het tijd voor nog meer keuzes.
Als security methode wordt alleen die met wachtwoorden gebruikt. Is hier meer dan voldoende.
Voor networking is de eerste keuze: Provider networks of Self-service networks. Die laatste is interessanter, maar niet van toepassing op het minimale netwerkje dat we gaan gebruiken. Ach, wat extra functionaliteit kan geen kwaad toch? We nemen de tweede.
Vervolgens ben ik een heel tijd-blok kwijtgeraakt aan interne infrastructuurperikelen. Jammer.

/etc/hosts heeft deze uitbreiding gekregen (ipv DNS aan te passen):
# openstack hosts
192.168.17.7 controller
192.168.17.10 compute1

Verder zijn de netwerkzaken in orde!

Dag 1, blok 4

Tijd voor allerlei basisinstallaties op de controller:

  • openstackclient
  • mariadb-server en python bindings
  • mongodb
  • rabbitmq
  • memcached

Dag 2

Nu wordt de Identity service geinstalleerd op de control node.
En daar gaat het fout: de openstack versie op Debian 8 (laptop) en Ubuntu Wily (PC) wijken teveel af van de instructies. Mijn kennis schiet tekort om al die problemen op te lossen.
Dus op de laptop de basis ubuntu 14.04 installeren? Of in het diepe duiken met 16.04?

Het is 16.04 geworden, het interne netwerk heeft een USB-netwerkcontroller gekregen (minder gedoe van met wifi op de server) en alle extras zijn geinstalleerd. Ik ben dus nu waar ik gisteren ook was (maar nu ging het wel een stukkie vlotter). En we zijn bij de tijd:

# openstack --version
openstack 2.3.0

Tijd voor boodschappen, huishouden, de katten, auto en het avondeten.

Dag 3

De Identity service is probleemloos geinstalleerd en geconfigureerd (na een beetje prutsen met key-lengtes en poorten).
Ook de Image service doet het (ook na wat noodzakelijke wijzigingen).
En vervolgens is Compute service geinstalleerd: alle componenten op de laptop en alleen compute op de pc. Dat kostte wat moeite met afhankelijkheden op Ubuntu Wily. Het proces draait maar “compute service list” laat alleen de services op de controller zien…
Tenslotte vandaag ook nog neutron met Self Service Networks. Buitengewoon complex en ik ben blij dat de instructies klopten. Anders had ik echt niet geweten wat te doen…

Dag 4

Tijd om een eerste virtuele machine aan te maken en te starten. De eerste komt simpel aan het “Provider network” = huisnetwerk. Omdat deze ook op de controller node gaat lopen maak ik een kleiner type (flavor) aan die niet teveel geheugen gebruikt.

Dag zoveel

Een paar dagen lang onderbrekingen gehad (o.a. groot onverwacht onderhoud aan de auto en checkups aan mezelf) dus niet erg opgeschoten. De private networks kreeg ik om onduidelijke redenen niet aan de gang en daarom maar voor een provider-network gekozen (wel zo handig in de beperkte setup hier):

$ uname -a
Linux nano01 3.2.0-80-virtual #116-Ubuntu SMP Mon Mar 23 17:28:52 UTC 2015 x86_64 GNU/Linux
$ free
             total         used         free       shared      buffers
Mem:         50760        24060        26700            0         2136
-/+ buffers:              21924        28836
Swap:            0            0            0
$ df -h /
Filesystem                Size      Used Available Use% Mounted on
/dev/vda1                23.2M     19.0M      3.0M  86% /

Oftewel: een eenvoudige VM op basis van het cirros image loopt! M.b.v. de openstack command-line heb ik al een aantal zaken kunnen checken, opnieuw instellen, etc.

Evaluatie

Na nog een paar dagen af en toe wat tijd gevonden te hebben om aan OpenStack te knutselen is de interesse er niet minder op geworden. Wel is het duidelijk dat er veel, veel meer tijd in gestoken moet worden om het zonder gêne op het CV te kunnen bijschrijven – en voorlopig gaat de kennisopbouw van vCentre en vRealize op het werk sneller. Derhalve ben ik niet op korte termijn als deskundige in te vliegen; wellicht wel op deelgebieden maar zeker niet op het geheel.

Wat gaan de vervolgstappen worden:
1) Nu ik een idee heb hoe de basiscomponenten functioneren is het tijd om een keer een distributie te installeren en zien hoe zij de integratie hebben uitgevoerd.
2) Ik vraag me af of het mogelijk is om een control-node als een soort appliance binnenshuis af en toe te starten om externe compute nodes te beheren (Amazon AWS, mijn gehuurde server bij Leaseweb)
3) Via Meetup of andere verbanden OpenStackers ontmoeten om samen een cluster te bouwen en aan de tand te voelen. En als het even kan wat praktijkervaringen te horen!

 

 

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Time limit is exhausted. Please reload CAPTCHA.