IPMI, questo sconosciuto; o anche, “Butta dalla finestra il tuo KVM”

Ho sempre amato le descrizioni “funzionali” dei devices.

Se dovessi descrivere un server, il primo requisito che mi verrebbe in mente sarebbe “è un computer completamente gestibile da remoto”; un requisito cardine, che dovrebbe entrare a far parte della stessa definizione di macchina server.

Come si gestisce da remoto una macchina fisica? Vedo già sbrilluccicare gli occhi del vostro vendor di switch KVM…

NO! I moduli KVM sono costosi, richiedono parecchia banda, non sono inclusi di serie (a parte rari casi) nelle vostre macchine server e comunque non fanno tutto quello che fa IPMI. È nato un grosso business attorno ad essi nel settore SMB a causa delle installazioni fisiche di Windows Server, ma… se nel 2016 pensate davvero di installare Windows Server non virtualizzato su un server per uso generalista (esistono casi edge dove la virtualizzazione è problematica), forse avete sbagliato blog.

Cos’è IPMI

Una descrizione generale di IPMI la trovate qui; la mia idea a riguardo, è che si tratti di una delle più misconosciute (sempre in ambito SMB) e utili funzionalità di gestione remota, molto più dei vari DRAC, iLO, IMM.

IPMI permette di controllare accensione/spegnimento della macchina, leggerne qualsiasi sensore, settare diverse impostazioni senza mai adoperare il BIOS (ad esempio, il device di boot), e ancora dialogare con il sistema operativo (o hypervisor di turno) tramite un’interfaccia dedicata out-of-band, seriale.

Come funzionalità OOB, IPMI non dipende dal software installato sulla macchina, né da eventuali agent.

Come si usa IPMI

Dovreste essere in grado di configurare completamente un server appena sballato senza mai collegarvi un monitor; sì, davvero.

Tutto quello di cui ha bisogno un server, oltre all’alimentazione, è una rete. Solitamente, le macchine provviste di IPMI hanno una porta ethernet dedicata al management; collegatela alla vostra rete, ed eseguendo

 ipmitool lan set 1 ipsrc dhcp 

IPMI verrà abilitato; basta rintracciare il lease per cominciare ad utilizzarlo.
Ad esempio, potremmo controllare se la nostra macchina è accesa con

 ipmitool -H ipmi_ip -U user -P password chassis power status 

e magari attivarla con

 ipmitool -H ipmi_ip -U user -P password chassis power on 

. Oppure, decidere di resettarla “elettricamente”:

 ipmitool -H ipmi_ip -U user -P password chassis power reset 

tutto senza mai toccare il tasto di accensione.
Controllare temperatura esterna e delle componenti, funzionamento delle ventole ed altri sensori hardware, è altrettanto semplice:

 ipmitool -H ipmi_ip -U user -P password sensor list 

e ora, una chicca: stufi di attendere il momento topico per premere F2, ESC &co per entrare nel bios dell’ultimo Proliant fiammante?

Ecco come impostare l’entrata automatica nel bios al successivo riavvio:

 ipmitool -H ipmi_ip -U user -P password chassis bootparam set bootflag force_bios 

Come avrete intuito, è possibile anche impostare qualsiasi dispositivo di boot tramite IPMI; il provisioning automatizzato tramite boot PXE impostato da IPMI è il metodo standard per la preparazione delle macchine utilizzate nelle server farm cloud.

SOL

Tutto molto bello, no? Ma eccoci arrivati alla funzionalità groundbreaking, “the real thing”; Serial-Over-Lan, o SOL per gli amici. In altri termini, redirezione della seriale via ethernet. Per la precisione, una porta seriale virtuale alla quale viene inviato l’output “video” del BIOS, dei vari controllers e del sistema operativo (se configurato opportunamente).

Adesso sapete come vengono fatti quei video in cui la fase di boot della macchina appare in un terminale: ve lo siete sempre chiesti, ammettetelo.

A titolo di esempio, ecco un video del boot di una mia macchina visto tramite SOL, una CentOS che fa da host per la virtualizzazione basato su KVM.

La SOL è uno strumento molto potente: possibile accedere al bios, quindi si può anche reinstallare da zero la macchina, e modificarne qualsiasi impostazione.

Non è tutto: come vedete alla fine del video, dopo il boot del sistema operativo si presenta anche il prompt di login… da questo, possiamo accedere alla macchina come faremmo in locale: costituisce a tutti gli effetti uno strumento di gestione out-of-band del sistema operativo, ovvero utilizzabile anche in caso la configurazione di rete del sistema sia per qualche motivo compromessa; ottimo per sperimentare con il networking, senza correre il rischio di essere tagliati fuori dalla gestione della macchina.

Tutti i principali OS/Hypervisor enterprise supportano pienamente la console seriale:

  • qualsiasi distribuzione di Linux può essere facilmente configurata per esporre una console seriale, basta seguire la documentazione della particolare distribuzione;
  • XenServer (il cui dom0 è Linux, naturalmente) include la voce “XenServer – Serial” nel menù di boot: rendetela default;
  • VMware ESXi può essere anch’esso facilmente configurato per la redirezione della console sulla porta seriale.

E AMT?

La Intel Active Management Technology è una tecnologia pensata per sistemi desktop e workstation, ma presente anche in diversi sistemi server. Alcune delle sue funzionalità si sovrappongono a quelle di IPMI e ne sono una evoluzione (sempre interessante vedere cosa riporta la wiki a riguardo), inoltre sono presenti grandi miglioramenti alla sicurezza, con un enforcing della cifratura TLS per le comunicazioni.
Avendo avuto modo di testare alcune sue caratteristiche, posso dire che la sintassi e le modalità di utilizzo delle funzionalità che mappano quelle classiche di IPMI via commandline (controllo status di alimentazione, ad esempio) sono abbastanza complesse rispetto alla controparte tradizionale.

Di contro, le funzioni per il provisioning automatico sono piuttosto avanzate, cosa che rende questa tecnologia parecchio idonea a deployment massivi nelle grandi enterprise.

AMT è pensato per essere utilizzato con software di management appositi, e il protocollo web-based sottostante è piuttosto complicato rispetto ad IPMI. Su piattaforma Linux vi consiglio amtterm, che fornisce una esperienza SOL-equivalente (notare che AMT include anche il KVM vero e proprio) con modalità molto user-friendly, mentre la tool wsmancli  consente di utilizzare appieno le funzionalità avanzate.

Alcuni produttori pensano di sostituire/affiancare AMT ad IPMI nel prossimo futuro; a mio avviso, come per l’interfaccia seriale (che adesso ha più di 40 anni!), lo zoccolo duro-legacy di IPMI rimarrà con noi ancora per diverso tempo…