IPMI maakt plaats voor Redfish: remote server beheer vernieuwd

Noud van Kruysbergen
0

Inhoudsopgave

De 20 jaar oude IPMI technologie voor beheer op afstand wordt geleidelijk aan uitgefaseerd. De op­volger Redfish zit al in de huidige remote-beheer­-chips en brengt nieuwe functies, hogere veiligheid en meer flexibiliteit. We gaan in op Redfish en geven praktische tips en praktijkvoorbeelden.

D e Intelligent Platform Management Inter­face (IPMI) voor het beheer van servers via een netwerk is verouderd en wordt beschouwd als een veiligheidsrisico. De opvolger Redfish brengt nieuwe functies en een moderne, veilige interface. Redfish maakt niet alleen het configureren en monitoren van klassieke servers mogelijk, maar ook van modulaire servers, verschillende opslagsystemen en netwerk­apparaten.

IPMI vs Redfish remote serverbeheer BMC OOB

Redfish kan ook worden gebruikt om een enkele server op afstand te bedienen, maar eigenlijk is het bedoeld om grote serverfarms te beheren. Daarin wordt elke machine voortdurend ge­observeerd: geautomatiseerde bewakingssystemen lezen de sensorgegevens uit voor bijvoorbeeld tempera­turen, ventilatorsnelheden en energieverbruik, via een apart netwerk voor beheer op afstand. Als er zich fouten opstapelen, duidt dat op een dreigende hardware-uitval – een technicus kan dan actie ondernemen voordat de machine stil komt te staan. De remote-beheerchips op de servermoederborden kunnen ook updates voor het BIOS en andere firmware uitvoeren en het energieverbruik van de cpu beperken als de koeling van een datacenter of het rack zijn grenzen bereikt.

Dergelijke taken worden steeds meer geautomatiseerd: algoritmen nemen steeds vaker routine­matige serverbeheertaken over. Dat komt omdat bij cloud-datacenters slechts een paar beheerders voor duizenden machines moeten zorgen. Dergelijke scenario’s zijn zelfs voor de 2.0-versie van IPMI teveel gevraagd. Dat wordt dan ook niet meer ontwikkeld.

Geschiedenis

Redfish is sinds 2014 in ontwikkeling, en net als IPMI voorheen onder leiding van een open industrie­consortium. Dat is het Scalable Platforms Management Forum van de Desktop Management Task ­Force (DMTF), opgericht in 1992. De exploi­tanten van enorme ‘hyperscale’ datacenters, waaronder Facebook, Google en Microsoft, werken samen aan de open remote-beheerstandaard OpenBMC, waarin vanaf versie 2.7 ook Redfish opgenomen is.

IPMI vs. Redfish

De Redfish-API is ontworpen om een evenwicht te vinden tussen compatibiliteit en flexibiliteit. Hoewel het onderliggende protocol zo zelden mogelijk moet worden gewijzigd, is het datamodel ontworpen voor frequente uitbreidingen. Redfish-toepassingen zullen blijven werken, maar nieuwe servers kunnen ook nieuwe Redfish-functies hebben.

Het belangrijkste voordeel van Redfish ten opzichte van IPMI is de moderne software-inter­face: Redfish maakt gebruik van het veelgebruikte REST-model (REpresentational State Transfer (zie c’t 5/2019). Daarmee kan informatie worden opgevraagd (GET) en verzonden (POST), bijvoorbeeld om een configuratie te wijzigen. Waar mogelijk volgt Redfish de gangbare standaarden, die de ontwikkelaars van clouddiensten kennen en op waarde schatten. Zo worden bijvoorbeeld het JSON-dataformaat en het Open Data Protocol (OData) gebruikt. Met TLS versleutelde HTTPS-verbindingen zorgen voor de beveiliging.

Redfish werkt in sommige opzichten nog steeds net als IPMI: voor beide methoden is een zogenaamde Baseboard Manager Controller (BMC) nodig, die als extra chip op het moederbord zit voor het beheer op afstand en onafhankelijk werkt van de processor. Dat maakt zogenaamd Out-Of-Band-beheer (OOB) mogelijk, zelfs als het serverbesturings­systeem is gecrasht of de machine is uitgeschakeld. Met OOB-toegang kan een server niet alleen ‘hard’ worden herstart, alsof de stroomvoorziening onderbroken werd, maar kan ook de BIOS-set-up worden gewijzigd en kan een besturingssysteem of BIOS-­update op afstand worden geïnstalleerd. Als je dergelijke functies niet nodig hebt, is toegang op afstand tot het besturingssysteem van een server voldoende, bijvoorbeeld via SSH, VNC of Team­Viewer.

BMC ASpeed moederbord Redfish IPMI

De Baseboard Management Controller (BMC) is het hart van Redfish. Hier een ASpeed AST2500 met eigen RAM en een flashchip voor de firmware.

Het beheer op afstand via BMC kan niet op zinvolle wijze achteraf aan bestaande computers worden toegevoegd, want het vereist vergaande hardware-aanpassingen. De BMC wordt via verschillende interfaces verbonden met de chipset en de processors: via PCI Express, via usb, via SMBus en – voor Intel-systemen – ook via PECI. Intel-processoren leveren de gegevens van hun geïntegreerde temperatuursensoren via die interface. Op veel serverboards vervangt de BMC de zogenaamde ­Super-I/O-chip, die bij andere moederborden voor de seriële interfaces zorgt en de snelheid van de ventilatoren regelt. Bovendien hebben veel BMC-chips een eenvoudige grafische 2D-processor die een lokale VGA-poort biedt.

Redfish functies

Net als een IPMI-BMC moet ook de Redfish-firm­ware worden aangepast aan het moederbord in ­kwestie. Er is geen universele Redfish-firmware die kan worden gebruikt om een bestaande BMC te upgraden. In de praktijk kan alleen de desbetreffende fabrikant van het moederbord of de server geschikte BMC-firmware leveren. De fabrikant beslist ook over het concrete scala aan functies. Als je machines van verschillende types, generaties en fabrikanten op een uniforme manier wilt beheren, zul je moeten controleren welke Redfish-resources er voor elk server­type afzonderlijk beschikbaar zijn.

Er zijn al server(mainboard)s met voor Redfish geschikte BMC-firmware. Op veel daarvan kan IPMI 2.0 nog steeds parallel gebruikt worden. BMC’s zijn te vinden in vrijwel alle servers van de grote merkfabrikanten – Dell EMC, HPE, Lenovo, Cisco, Inspur, Huawei, Fujitsu – en op serverboards van Super­micro, Tyan, Gigabyte en Asus. De grote servermerken onderhouden hun geheel eigen systemen voor beheer op afstand, die bijvoorbeeld HPE integrated Lights-Out (iLO) of Dell Remote Access Controller (iDRAC) heten.

De BMC-firmware leest daarbij niet alleen de sensoren uit van het moederbord – cpu-temperatuur, ventilatorsnelheden, bedrijfsspanningen, behuizingsschakelaars – maar ook die van de voedingen (vermogen, ventilator, temperatuur) en het opslagsubsysteem (RAID-controller, backplane-bezetting, ssd-firmwareversies). Dell en HPE bieden elk een vergelijkbare BMC-functionaliteit voor servers van dezelfde generatie. Voor sommige opties moeten echter aparte licentiesleutels aangeschaft worden. Een typische functie waar extra kosten voor gelden is de toegang op afstand tot het grafische bureaublad met de naam RemoteKVM. Maar ook Redfish-functies kosten bij sommige servers en serverboards extra.

Redfish-resources

De Redfish-specificatie beschrijft eerst de basisfuncties van de interface, die een Universally Unique Identifier (UUID) van de server of de BMC-firmware teruggeven, evenals de Redfish-versie en het scala aan functies van de concrete implementatie. Daar begint ook de hiërarchisch gestructureerde functieboom mee. Dus als je een aanvraag (Get-­Request) naar de BMC stuurt volgens het patroon

https://ip-adres/redfish/v1/

antwoordt die met de hierboven beschreven informatie in OData-JSON-formaat. Het Supermicro-­moederbord dat we voor onze experimenten gebruikt hebben, geeft dan bijvoorbeeld aan dat het elf Redfish-resources biedt, waaronder /redfish/v1/Chassis en /redfish/v1/Systems. We hebben die twee er speciaal uitgelicht omdat ze sensor­gegevens – bedrijfstoestand (aan/uit), temperaturen – en hardware-informatie leveren. Dat laatste omvat het cpu-type, de geheugenmodules, de BIOS-versie en het servertypenummer.

Redfish request REST resources Systems Chassis

Een request naar de Redfish-resource /v1/Systems/1/Processors met de REST-tool YARC in de Chrome-browser levert cpu-informatie.

Redfish maakt onderscheid tussen de resources Chassis en Systems. Chassis bundelt de fysieke eigenschappen van de server (zoals temperaturen), Systems de logische (cpu-type, RAM). Modulaire servers kunnen worden beheerd met behulp van een gemeenschappelijke Redfish-BMC, die kan bestaan uit meerdere ‘Chassis’ en ‘Systems’. Om bijvoorbeeld de temperaturen en ventilatorsnelheden van onze testserver uit te kunnen lezen, moet je bij Chassis 1 zijn:

https://ip-adres/redfish/v1/Chassis/1/Thermal

Met Redfish kun je niet alleen data uitlezen, maar ook de configuratie wijzigen met POST-requests, de server in- of uitschakelen en BIOS-opties instellen. Voor updates van het BIOS en de BMC-firmware is de resource /redfish/v1/UpdateService bedoeld. Met /redfish/v1/Managers kun je functies van de BMC zelf aansturen, bijvoorbeeld het gedrag van de ventilatorbediening, maar ook virtuele schijven waarmee een ISO-image met de besturingssysteemset-up kan worden benaderd voor de installatie.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Toekomst van Redfish

Zoals in het begin vermeld, richt Redfish zich op het geautomatiseerd beheer van grote serverfarms – ook van verschillende leveranciers. Algoritmen kunnen bijvoorbeeld de werking van duizenden servers op verschillende locaties optimaliseren door het performancebudget van de machines aan te passen aan de veranderende omstandigheden: beschikbare koelcapaciteit, elektriciteitsprijzen en a­f­spraken over het niveau van de klantenservice (SLA’s). Er zijn enkele Redfish-compatibele opensource tools zoals Ansible, OpenStack Ironic en de Python-bibliotheek Sushy.

Redfish Composability (toegankelijk via /redfish/v1/CompositionService) maakt het bovendien mogelijk om modulaire servers anders te configureren voor veranderende taken. Daarvoor dienen ResourceBlocks in verschillende ResourceZones, die onderling verbonden kunnen worden. Een opslagserver zou bijvoorbeeld bepaalde NVMe-ssd’s kunnen koppelen aan een geselecteerde netwerkpoort. Of je kunt grafische en rekenversnellers die zich centraal in een rack bevinden, via op afstand bedienbare PCI Express-switches aan speci­fieke servers koppelen. Intel werkt daaraan onder de naam Rack Scale Design (RSD).

Redfish resources Intel RSD Rack Scale Design schema

Intels modulaire Rack Scale Design (RSD) maakt het mogelijk om resources van meerdere servers en opslagsystemen op afstand te configureren en aan elkaar te koppelen.

De Redfish-makers werken ook samen met de Storage Networking Industry Association (SNIA) aan de Swordfish-standaard voor het beheer van opslagnetwerken en met de Internet Engineering Task Force (IETF) bij YANG, een specificatie voor het ­configureren van routers en switches. Met ­behulp van Redfish, Swordfish en YANG kan een hyper­visor zoals VMware of een beheersysteem voor (Docker-)containers zoals Kubernetes de benodigde hardwareresources automatisch configureren, bijvoorbeeld aan de hand van profielen.

Met andere woorden: een virtuele machine of een Docker-­container kan met behulp van scripts worden gelanceerd zonder dat er met drie of vier verschillende management­systemen hoeft te worden gewerkt. Onder de vleugels van de Linux Foundation werkt het OpenSDS-­project aan open storage-­automatisering. Tot nu toe is een uitge­breide integratie van Redfish met Swordfish en YANG echter nog toekomstmuziek.

Redfish in de praktijk

Redfish is niet alleen bruikbaar in dure servers. We hebben wat zitten experimenteren met het 225 euro kostende serverboard Supermicro X11SCL-F, dat ook met een goedkope Celeron kan worden gebruikt. De veelgebruikte Aspeed AST2500 dient daarbij als BMC. Net als bij IPMI moet je het beheer op afstand met Redfish eerst activeren en instellen, bijvoorbeeld via de BIOS-set-up van de Supermicro X11SCL-F. Daar stel je een beheerders­wachtwoord in – het onveilige standaard ‘ADMIN’ moet je zeker wijzigen – en kun je kiezen of het beheer op afstand alleen toegankelijk moet zijn via de daarvoor bestemde aparte ethernetpoort of ook via de poort die door het besturingssysteem van de server voor de gebruiksgegevens wordt gebruikt. Voor productief gebruik dien je alleen gebruik te maken van een aparte beheerpoort in een geïsoleerd onderhoudsnetwerk. Veel (gelegenheids)beheerders vergeten dat. Met de zoekmachine shodan.io kun je eenvoudig de Redfish-beheertoegang van enkele honderden servers op internet vinden.

Als het beheer op afstand in de BIOS-set-up geconfigureerd is, vind je daar ook het IPv4-adres waarmee de BMC kan worden bereikt – als je dat niet handmatig instelt, komt het van de DHCP-­server. Redfish werkt ook met IPv6, maar dat is voor deze eerste kennismaking minder belangrijk. Om te controleren of het beheer op afstand in principe werkt, moet je eerst de webinterface van de BMC bezoeken. Als het ip-adres van de BMC bijvoorbeeld 10.10.10.1 is – de BIOS-instelling geeft dat aan – kun je je webserver bereiken via https://10.10.10.1. Daar log je dan in als beheerder met het bijbehorende wachtwoord. Bij de Supermicro X11SCL-F hebben we via de webinterface eerst de BMC-firmware geüpdatet naar revisie 1.21.

Aansturen via REST

Om dan eindelijk de Redfish-interface te gebruiken, moet je REST-commando’s via HTTPS naar het ip-adres van de BMC sturen. Dat kan op de commandline, onder Windows 10 bijvoorbeeld met curl, met een extra geïnstalleerde REST-client, of met een extensie zoals YARC voor de browser ­Chrome. Voor de REST-toegang moet je altijd een gebruiker en een wachtwoord sturen. Als je geen geldig TLS-certificaat in de BMC-firmware hebt, moet je voor de meeste REST-clients de certificaatcontrole uitschakelen. Bij curl wordt daar de parameter -k voor gebruikt.

Maar nu een eerste voorbeeld: de request

curl -k -u ADMIN:PWD https://ip-adres/redfish/v1/Systems/1/Processors/1

geeft een JSON-object met cpu-informatie. Volgens hetzelfde patroon levert de BMC veel meer details. Voor bepaalde functies, zoals toegang tot BIOS-instellingen en voor BIOS-updates op afstand, moet een extra licentie voor de BMC worden aangeschaft.

De server levert niet alleen informatie, maar kan ook op afstand worden bediend, namelijk met POST-commando’s. De gevaren van remote toegang tot een beheerinterface die via internet vrij toegankelijk is, worden gedemonstreerd door het volgende commando

curl -k -u ADMIN:PWD -X POST -d{“ResetType”:\“ForceOn”} https://ip-adres/redfish/v1/Systems/1/Actions/ComputerSystem.Reset

Het commando ResetType:ForceOn schakelt de server binnen enkele seconden hard uit. Als je bij Linux het curl-commando gebruikt, laat je de backslashes voor de aanhalingstekens weg.

De getoonde voorbeelden laten het werkingsprincipe van Redfish zien en kunnen helpen als je een vastgelopen server via de opdrachtregel opnieuw wilt opstarten. Voor het beheer op afstand van meerdere servers heb je krachtigere scripts nodig of een kant-en-klare softwaretool die met Redfish-data overweg kan.

(Christof Windeck en Noud van Kruysbergen, c’t magazine 6/2020, p. 138)

 


Blijf op de hoogte van de nieuwste informatie en tips!
Schrijf je in voor de nieuwsbrief:


 

Lees uitgebreide achtergrondinfo op je gemak in c't nov/2020

Deel dit artikel

Lees ook

Deepfake en AI-stemmen: kansen en risico’s van spraaksynthese

De menselijke stem kan met AI worden gekloond en bijvoorbeeld in een 'deepfake' gebruikt worden. We bekijken de risico's en kansen van spraaksynthese.

Online DNA testen en analysewebsites in de praktijk

Voor online DNA testen wordt veel reclame gemaakt. Externe analyseplatforms beloven nog meer inzichten. We bekijken resultaten en risico's.

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er