Een professioneel virtualisatielab met drie Proxmox-nodes

Production is a terrible place to learn.

Wanneer je werkt aan infrastructuurarchitectuur, kom je regelmatig voor keuzes te staan die je eerst wilt kunnen testen.

Een nieuwe virtualisatieconfiguratie. Een andere storagearchitectuur. Nieuwe VLAN-segmentatie. Een firewallregel. High Availability. Een back-upstrategie. Of een securitymaatregel.

Daarvoor gebruik ik een professioneel virtualisatielab met drie Proxmox VE-nodes.

Het lab geeft mij een gecontroleerde omgeving waarin ik infrastructuurarchitecturen kan bouwen, configuraties kan testen, fouten kan veroorzaken en storingsscenario’s kan reproduceren. Daardoor kan ik technische aannames in de praktijk onderzoeken voordat ze onderdeel worden van een productieomgeving.

Waarom heb je als Infrastructure Architect een virtualisatielab nodig?

Een infrastructuurontwerp bestaat uit aannames.

Op papier kan een architectuur logisch lijken. In de praktijk beïnvloeden systemen elkaar voortdurend.

Een virtuele machine draait op storage. Die storage gebruikt een netwerk. Het netwerk wordt gesegmenteerd met VLAN’s. Applicaties gebruiken DNS. Authenticatie is afhankelijk van identity services. Monitoring moet afwijkingen detecteren. Back-ups moeten beschikbaar zijn wanneer een systeem uitvalt.

Een wijziging op één plaats kan daardoor gevolgen hebben op verschillende andere plaatsen.

Een virtualisatielab maakt het mogelijk om die afhankelijkheden zelf te onderzoeken.

Dat is voor mij de belangrijkste functie van het lab: technische keuzes eerst praktisch kunnen testen voordat ze productie-impact krijgen.

Waarom drie Proxmox-nodes?

Mijn lab bestaat uit drie fysieke servers met Proxmox VE.

Een Proxmox VE-cluster gebruikt quorum om een consistente clusterstatus te behouden. Iedere node heeft standaard één stem. Voor een cluster dat HA moet ondersteunen, adviseert Proxmox minimaal drie nodes voor een betrouwbaar quorum. Met drie nodes blijft bij het uitvallen van één node een meerderheid van twee stemmen over.

Voor een lab maakt dat een groot verschil.

Met één virtualisatieserver kan ik virtuele machines en containers draaien. Met drie nodes kan ik daarnaast onderzoeken wat er gebeurt wanneer meerdere fysieke systemen samenwerken.

Ik kan bijvoorbeeld testen:

  • clustercommunicatie
  • live migration
  • High Availability
  • node failures
  • netwerkredundantie
  • storageproblemen
  • onderhoud van individuele nodes
  • herstel na een storing

Proxmox VE ondersteunt migratie van virtuele machines tussen nodes. Bij HA kunnen guests na een node failure opnieuw worden gestart op een andere beschikbare node, op voorwaarde dat de benodigde resources beschikbaar zijn.

Dat zijn eigenschappen die je veel beter begrijpt wanneer je ze zelf uitvoert en test.

De hardware is onderdeel van het experiment

De drie nodes zijn gebouwd met:

  • Inter-Tech 2U-2404L storagechassis
  • Intel Core i5-12500-processoren
  • Gigabyte B760M D3HP-moederborden

Het doel van het lab is geen datacenter nabouwen.

De waarde zit in de combinatie van de componenten en de mogelijkheid om realistische infrastructuurscenario’s te onderzoeken.

Daarom bestaat het lab uit verschillende lagen.

Compute

De drie Proxmox-nodes leveren de rekenkracht voor virtuele machines en containers.

Storage

Naast lokale storage gebruik ik storagecomponenten zoals NFS en LINSTOR/DRBD.

Daarmee kan ik verschillende storagearchitecturen onderzoeken en de gevolgen ervan voor virtualisatie en beschikbaarheid testen.

Network

Verschillende functies krijgen hun eigen netwerksegment.

Dat maakt het mogelijk om netwerkarchitecturen te testen die ook in bedrijfsomgevingen voorkomen.

Security

Firewalling, DNS-filtering, netwerksegmentatie en remote access maken deel uit van dezelfde omgeving.

Services

Bovenop de virtualisatielaag draaien verschillende infrastructuur- en applicatieservices.

Het resultaat is een compacte omgeving waarin verschillende infrastructuurlagen daadwerkelijk met elkaar samenwerken.

VLAN-segmentatie maakt het lab realistischer

Een belangrijk onderdeel van het lab is netwerksegmentatie.

De omgeving gebruikt verschillende VLAN’s voor specifieke functies:

VLANFunctie
10Management
20Servers
30VoIP
40Office / clients
50Streaming / video
60Security / camera’s
70Bezoekers en IoT

Deze indeling maakt het mogelijk om verkeer tussen verschillende systemen bewust te controleren.

De managementomgeving hoeft bijvoorbeeld geen onderdeel te zijn van hetzelfde netwerk als gewone clients. VoIP-apparaten kunnen worden gescheiden van gebruikerssystemen. Camera’s en IoT-apparaten kunnen worden geïsoleerd van servers en beheerinterfaces.

Ook de communicatie tussen de Proxmox-nodes verdient aandacht.

Proxmox gebruikt Corosync voor clustercommunicatie. De documentatie benadrukt dat deze communicatie een betrouwbare verbinding met lage latency nodig heeft. Proxmox adviseert daarom om clustercommunicatie bij voorkeur over een dedicated netwerk te laten lopen en congestie door bijvoorbeeld storage- of back-upverkeer te vermijden.

Dat soort details leer je vooral wanneer je ze zelf moet configureren en troubleshooten.

Storage is een architectuurkeuze

Virtualisatie wordt vaak bekeken vanuit CPU en geheugen.

Storage bepaalt echter voor een belangrijk deel wat je met een cluster kunt doen.

Wanneer een virtuele machine naar een andere node moet worden gemigreerd, moet die node toegang hebben tot de benodigde virtuele disks. Proxmox ondersteunt daarvoor verschillende storagearchitecturen, waaronder NFS en andere gedeelde storageoplossingen. Bij shared storage kunnen meerdere nodes dezelfde VM-disks benaderen, wat live migration eenvoudiger maakt.

In mijn lab gebruik ik onder meer NFS en LINSTOR/DRBD.

Daardoor kan ik verschillende storageconcepten onderzoeken.

Wat gebeurt er wanneer storage traag wordt?

Wat gebeurt er wanneer een storageverbinding wegvalt?

Welke impact heeft storage op een migratie?

Welke storagearchitectuur past bij een bepaalde workload?

Dat zijn architectuurvragen die je met een theoretisch diagram maar gedeeltelijk kunt beantwoorden.

Realistische workloads maken het lab waardevol

Een virtualisatielab heeft voor mij vooral waarde wanneer er echte workloads op draaien.

Daarom bevat mijn omgeving verschillende services:

  • Univention Corporate Server voor authentication en SSO
  • Univention Corporate Server voor file storage
  • Plex Media Server voor video en audio
  • Plex Media Server voor image hosting
  • Seafile voor cloud storage
  • HAProxy als load balancer en reverse proxy
  • PowerDNS en Unbound voor publieke en interne DNS
  • Proxmox Mail Gateway en iRedMail voor mail
  • 3CX voor VoIP
  • HestiaCP en CloudPanel voor webhosting
  • Pangolin voor zero-trust remote access
  • Zabbix voor monitoring
  • OpenProject voor projectmanagement
  • OPNsense als firewall

Daardoor ontstaat een omgeving waarin systemen afhankelijk zijn van elkaar.

Een DNS-probleem kan zich voordoen als een applicatieprobleem.

Een netwerkprobleem kan eruitzien als een storageprobleem.

Een firewallregel kan ervoor zorgen dat een service lokaal werkt, maar vanaf een andere locatie niet bereikbaar is.

Precies daarom is zo’n omgeving interessant voor troubleshooting.

Security testen zonder productie te gebruiken

Security is een tweede belangrijke reden om een eigen lab te onderhouden.

Firewallregels kunnen worden getest. VLAN’s kunnen worden aangepast. DNS-filtering kan worden onderzocht. Remote access kan worden gewijzigd. Een nieuwe securityoplossing kan worden geïnstalleerd en bewust verkeerd worden geconfigureerd.

Ook VoIP is daarvoor een interessant voorbeeld.

Een publiek bereikbare 3CX-installatie kan te maken krijgen met geautomatiseerde SIP-scans en ongewenste registratiepogingen. In mijn omgeving heb ik daarom onder meer gewerkt met blacklist-functionaliteit en firewallregels om ongewenst verkeer aan de bron te beperken.

Een lab geeft mij de mogelijkheid om zulke maatregelen te testen zonder een productieomgeving als proefopstelling te gebruiken.

High Availability moet je testen

High Availability ziet er op een architectuurdiagram eenvoudig uit.

Node 1 valt uit.

De virtuele machine wordt opnieuw gestart op node 2.

In de praktijk zijn daarvoor verschillende voorwaarden nodig.

Is het cluster quorum gezond?

Is de clustercommunicatie beschikbaar?

Is de VM-disk beschikbaar op de andere node?

Zijn de benodigde resources beschikbaar?

Kan de VM op de andere node starten?

Wat gebeurt er met een service die afhankelijk is van een andere VM?

Proxmox beschrijft dat HA-guests na het falen van een node op een andere beschikbare node kunnen worden hersteld wanneer de benodigde resources beschikbaar zijn. Voor VM-disks betekent dit in veel configuraties dat de disks via shared storage beschikbaar moeten zijn.

In een lab kan je zulke scenario’s gecontroleerd uitvoeren.

Een node uitschakelen.

Een netwerkverbinding onderbreken.

Een storagepad testen.

Een virtuele machine migreren.

Daarna controleren wat er werkelijk gebeurt.

Die ervaring geeft informatie die een configuratiehandleiding alleen niet kan geven.

Een lab is ook een plaats om fouten te maken

Een van de grootste voordelen van een lab is de vrijheid om fouten te maken.

Ik kan een configuratie wijzigen en vervolgens onderzoeken wat er misgaat.

Ik kan een service verkeerd configureren.

Ik kan een netwerksegment aanpassen.

Ik kan een storageconfiguratie testen.

Daarna kan ik terugkeren naar een vorige toestand en opnieuw beginnen.

Dat sluit aan bij mijn manier van werken als Infrastructure Architect:

bouwen, testen, troubleshooten en verbeteren.

Een professionele infrastructuurarchitectuur ontstaat voor mij door praktische ervaring te combineren met kennis van bedrijfsprocessen, documentatie, projectmanagement en technologie.

Wat levert zo’n lab op voor klanten?

De technische kant van het lab is interessant.

De belangrijkste waarde zit voor mij echter in de beslissingen die ermee kunnen worden ondersteund.

Een testomgeving helpt om:

  • implementatierisico’s vooraf te onderzoeken
  • configuraties te valideren
  • technische afhankelijkheden zichtbaar te maken
  • troubleshootingscenario’s te reproduceren
  • securitymaatregelen te testen
  • storage- en virtualisatiekeuzes te vergelijken
  • documentatie te verbeteren
  • praktische ervaring met nieuwe technologie op te bouwen

Dat sluit rechtstreeks aan bij mijn visie op infrastructuurarchitectuur.

Technologie moet een bedrijfsdoel ondersteunen.

Een infrastructuurarchitect moet daarom kunnen beoordelen welke oplossing past bij de vereisten, risico’s en kosten van een organisatie.

Voor een Belgische KMO kan dat bijvoorbeeld betekenen dat eerst wordt onderzocht welke infrastructuur werkelijk nodig is voordat een nieuwe server, cloudoplossing, storageomgeving of securityplatform wordt gekozen.

Een virtualisatielab hoeft geen datacenter te zijn

Een professioneel virtualisatielab hoeft geen datacenter te zijn.

Mijn drie-node Proxmox-omgeving is relatief compact, maar bevat wel de belangrijkste elementen waarmee ik moderne infrastructuurarchitectuur in de praktijk kan onderzoeken:

  • compute
  • virtualisatie
  • storage
  • netwerken
  • VLAN’s
  • security
  • monitoring
  • applicaties

Voor mij is het lab daarom geen verzameling servers die toevallig thuis staan.

Het is een technische simulatieomgeving.

Een plaats waar ik architecturen kan testen voordat ze productie worden.

Een plaats waar ik kan onderzoeken waarom iets werkt.

Een plaats waar ik kan ontdekken waarom iets faalt.

En vooral een plaats waar ik technische kennis kan vertalen naar betere infrastructuurbeslissingen.

Production is a terrible place to learn.

Daarom leer ik liever eerst in mijn lab.

ICT consultant bij  | Personal Website

Ik ben een Systems Integrator en Infrastructure Architect met meer dan 28 jaar professionele ervaring. Mijn mening is mijn eigen mening en de visie van Peritus Consult, niet de mening van mijn werkgever Lab9 Pro.

Similar Posts