Redfish è uno standard di rete e un'interfaccia di programmazione delle applicazioni (API) per la gestione di server, reti, dispositivi di archiviazione, attrezzature e altri componenti dell'infrastruttura convergente (CI) in ambienti IT ibridi definiti dal software, come data center su scala web e infrastrutture cloud.
Redfish è basato su schemi e fornisce un'interfaccia RESTful (Representational State Transfer) su HTTP (Hypertext Transfer Protocol) utilizzando il formato JSON (JavaScript Object Notation) e il CSDL (Common Schema Definition Language), come definito da Open Data Protocol (OData) v4.
Redfish comprende diverse specifiche, tra cui gli standard comuni di Internet e dei servizi Web, per esporre le informazioni alla moderna catena di strumenti. In IT, una catena di strumenti comprende gli strumenti di programmazione utilizzati per eseguire attività complesse di sviluppo del software. Lo standard Redfish incorpora specifiche non solo per la messaggistica client, ma anche per i servizi incorporati, come la gestione delle attività e degli utenti e il controllo delle sessioni e degli eventi.
Redfish è un'API ipermediale. Il termine ipermedia si riferisce alla sua capacità di gestire contenuti multimediali come testo, audio, video, grafica e collegamenti ipertestuali, rendendola adatta a sistemi ricchi di media e sistemi di archiviazione.
Redfish è stato sviluppato dalla Distributed Management Task Force (DTMF), un'organizzazione no-profit che crea standard per le infrastrutture IT. Redfish è stato originariamente progettato come standard di gestione dei server, ma l'ultima versione supporta l'intera gamma di hardware presente in un data center.
La prima versione dello standard Redfish, Redfish 1.0, è stata pubblicata nel 2015 e forniva modelli di schema di base che descrivevano quali risorse Redfish supportava e come accedervi. Le versioni successive hanno aggiunto nuovi modelli di schema, ad esempio per standardizzare la gestione della memoria, delle unità disco, dello storage, degli endpoint, ecc. e hanno aggiunto nuove specifiche per caratteristiche come la componibilità e la telemetria, essenziali per gestire le risorse hardware in modo efficiente, e per un'interfaccia in-band.
Gli obiettivi del DMTF durante la progettazione di Redfish erano lo sviluppo di un'interfaccia cross-vendor che: esponesse le informazioni direttamente alla moderna catena di strumenti; fornisse un modello di dati scalabile ed estensibile per la gestione dell'IT ibrido definito dal software; sfruttasse gli standard web, le best practice e i metodi di sicurezza comunemente utilizzati; avesse una capacità multi-nodo sicura; fosse leggibile dall'uomo ma capace di funzionare con le macchine; e permettesse la massima interoperabilità tra i diversi componenti hardware, come i dispositivi sempre più diversi che vengono incorporati nell'Edge computing e nell'IoT.
Il compito principale di un server manager è quello di gestire, configurare e controllare l'infrastruttura di un server da remoto e di rispondere agli avvisi e alle notifiche del server. Ciò avviene attraverso un'interfaccia fuori banda (OOB). La gestione OOB è un modo per gestire in remoto l'infrastruttura IT utilizzando una connessione sicura attraverso un'interfaccia fisicamente separata dalla rete di produzione. Ciò consente agli amministratori di ottenere il controllo remoto dell'hardware in caso di guasto di un sistema o di un componente. La gestione in-band, invece, si riferisce alla gestione dei componenti attraverso la rete stessa, utilizzando una connessione Telnet o SSH, o strumenti basati su SNMP. L'ultima specifica dell'interfaccia host di Redfish fornisce una funzionalità in-band che consente alle applicazioni e agli strumenti eseguiti su un sistema operativo (OS) di comunicare con Redfish. Questa è una delle caratteristiche che consente agli amministratori di gestire in modo olistico i data center attraverso un'unica interfaccia.
Redfish sostituisce la diffusissima Intelligent Platform Management Interface (IPMI), pubblicata nel 1998. Come Redfish, IPMI specifica gli standard per la gestione dei componenti dell'infrastruttura basati sull'hardware, come i server. Tuttavia, l'IPMI non era molto scalabile, non era facile da usare e non era in grado di affrontare efficacemente le moderne sfide di sicurezza. Poiché i fornitori spesso sviluppavano le proprie versioni ed estensioni, l'IPMI aveva problemi di interoperabilità e stava diventando sempre più frammentato.
Gli avvisi personalizzati e la visualizzazione dei dati consentono di identificare e prevenire rapidamente i problemi di salute e di prestazioni della rete.
Nei data center, non sono solo i server a dover essere monitorati, acceduti e potenzialmente riavviati in remoto o a doverne modificare le impostazioni, ma anche le apparecchiature delle strutture, come le telecamere CCTV o le unità di condizionamento.
Redfish monitora lo stato di salute dei componenti hardware, come sensori, alimentatori, ventole e chassis, e il loro stato, o metriche come la tensione o la temperatura. IT esegue e può anche automatizzare attività di manutenzione come il riavvio di diversi tipi di hardware, l'impostazione di soglie di alimentazione, la configurazione delle impostazioni di rete del controller di gestione della scheda (BMC) e la modifica delle impostazioni del BIOS. Redfish recupera informazioni sui sensori, sul consumo energetico, sulla memoria, sullo spazio di archiviazione e sul sistema operativo stesso. Viene utilizzato per eseguire procedure di ripristino remoto, fornire registri di sistema e di eventi, rispondere ad avvisi ed eventi critici e gestire gli account utente.
Redfish è stato progettato per ridurre le spese generali, aumentare la produttività degli amministratori di sistema, ridurre il vendor lock-in e consentire un'interoperabilità scalabile per l'IT convergente e ibrido nei data center definiti dal software (SDDC). È stato sviluppato come soluzione alle crescenti complessità degli SDDC e affronta le carenze delle soluzioni tradizionali di gestione dei data center, come API, standard, protocolli e interfacce incompatibili e un numero crescente di nuovi tipi di hardware. IT è stato progettato per risolvere i difetti dello standard IPMI e per sostituire l'approccio dell'interprete della riga di comando (CLI) alla gestione dei server nei data center.
Nei moderni SDDC, il software virtualizzato rappresenta servizi e risorse di rete. Ciò significa che le modifiche alle connessioni fisiche e all'hardware non devono essere effettuate manualmente. Redfish permette di riassegnare virtualmente un dispositivo a un altro client senza che qualcuno debba essere fisicamente presente nel data center.
Redfish non si limita alla gestione dei componenti. Viene utilizzato anche per gestire il Data Center Infrastructure Management (DCIM), l'alimentazione e il raffreddamento e il dominio Ethernet utilizzando YANG, un linguaggio di modellazione dei dati. È sempre più utilizzato in reti come l'IT e l'Edge. Redfish fornisce anche strumenti ed estensioni per framework come Ansible e Puppet che automatizzano attività come il provisioning del cloud e le applicazioni.
Redfish può essere utilizzato con server standalone, in ambienti rack mount e bladed e in ambienti cloud su larga scala.
Alcuni server commerciali che utilizzano Redfish includono i server Dell PowerEdge 13G/14G, i server Supermicro X10/X11 e i server HPE ProLiant con iLO 5. I software più diffusi che utilizzano Redfish includono OpenStack Ironic, Ansible e ManageIQ.
Redfish è supportato, tra gli altri, da Supermicro, Oracle, Cisco, Lenovo, Dell, HPE, Intel, Microsoft e Huawei.
Notifiche in tempo reale significano una risoluzione più rapida dei problemi, in modo da poter intervenire prima che si verifichino problemi più gravi.
La catena di strumenti di Redfish comprende REST, HTTPS, JSON e OData. Queste tecnologie di uso comune sono familiari agli sviluppatori e rendono Redfish facile da implementare e da usare e sono facilmente accessibili alle applicazioni, alle librerie client e agli script.
Una caratteristica fondamentale di Redfish è la separazione del protocollo dal modello dei dati, rendendo i dati agnostici rispetto al trasporto e al protocollo.
L'API di Redfish è definita indipendentemente da un modello di dati. IT utilizza un'interfaccia RESTful per accedere a un modello di dati basato su uno schema.
Uno schema descrive le relazioni tra gli oggetti di un sistema. Il DMTF ospita i file dello schema per i dati standard utilizzati in Redfish nel repository dello schema DMTF. Lo schema di Redfish può essere esteso aggiungendo nuove proprietà a uno schema esistente o creando una nuova collezione o una risorsa subordinata all'interno di una collezione.
La funzione di un servizio Redfish è quella di ricevere una richiesta HTTPS e di restituire una risposta sulla risorsa. HTTPS è un protocollo di livello applicazione che viene utilizzato per trasportare le richieste e le risposte utilizzando TCP/IP al livello di trasporto. Il termine protocollo Redfish si riferisce a una mappa RESTful del protocollo dei messaggi HTTP.
Un servizio Redfish restituisce un codice di stato HTTPS standard e può restituire più risposte di errore aggiuntive per fornire informazioni estese su un errore.
OData è un protocollo di livello applicazione che specifica come i servizi REST vengono chiamati tramite HTTP e come rispondono. Redfish utilizza lo standard OData v4 per definire i formati degli schemi e dei payload, in modo che le applicazioni OData standard possano interagire in modo nativo con Redfish.
JSON è un formato di file e di interscambio di dati ampiamente utilizzato che memorizza e trasmette oggetti di dati in testo leggibile dall'uomo. Utilizzando JSON, l'output di Redfish può essere visualizzato in un browser. OData prescrive la struttura dei dati codificati in formato JSON.
Il DMTF fornisce anche lo schema Redfish in formato YAML (Yet Another Markup Language). YAML è un linguaggio di serializzazione dei dati leggibile dall'uomo, spesso utilizzato per scrivere file di configurazione.
Un BCM monitora lo stato fisico, come la temperatura o la tensione, di un computer o di un altro dispositivo mediante sensori. Funziona indipendentemente dal software del server e consente agli amministratori di bypassare il sistema operativo per controllare i dispositivi e i componenti del server da postazioni remote, riducendo le spese generali e aumentando l'affidabilità.
Quando per la gestione della banda base si utilizzava l'IPMI o la sua concorrente Active Management Technology (AMT), tradizionalmente i venditori erano in grado di bloccare i clienti nei loro prodotti. Redfish si colloca al di sopra delle soluzioni di gestione della banda base come l'IPMI. IT rende trasparente agli sviluppatori il processo di gestione della banda base e consente l'interazione con qualsiasi BMC utilizzando payload JSON. Un payload JSON è il dato associato a una specifica risorsa a cui si accede tramite l'API Redfish.
L'IC integra i componenti dell'infrastruttura di calcolo, storage, virtualizzazione e rete, riducendo la complessità della gestione del data center e attenuando l'incompatibilità dell'hardware. Con Redfish, la gestione di questi componenti può essere effettuata tramite un'unica, semplice interfaccia.
Redfish fornisce l'autenticazione di base HTTP utilizzando l'intestazione Authorization in una richiesta HTTPS. L'autenticazione di base è solitamente utilizzata per le richieste una tantum. L'autenticazione basata sulla sessione viene eseguita da un client salvando l'intestazione X-Auth-Token restituita in una risposta HTTPS da una richiesta del client per avviare una sessione. L'autenticazione basata sulla sessione viene utilizzata quando vengono effettuate più richieste in successione. Per le credenziali si possono usare anche LDAPS e Active Directory di Microsoft.
Un servizio Redfish è un'applicazione o un sistema gestito che implementa lo standard Redfish tramite un'interfaccia definita da Redfish. Un servizio include sempre un localizzatore uniforme di risorse (URL) o un identificatore uniforme di risorse (URI) che rappresenta un particolare tipo di risorsa, ad esempio un servizio, una raccolta o un file. I servizi restituiscono le risorse come payload JSON.
Le risorse includono una proprietà vuota chiamata OEM, che viene utilizzata per contenere proprietà specifiche del fornitore e consente l'estensibilità delle risorse.
Le risorse Redfish, quelle standard e quelle create da altri, seguono una serie di convenzioni di denominazione per garantire una denominazione coerente. Sono organizzate in una struttura ad albero con collezioni che possono includere più risorse correlate. Una collezione è un insieme di risorse che condividono la stessa definizione di schema. Le collezioni sono utilizzate per supportare sistemi standalone, multi-nodo e aggregati a livello di rack.
Le risorse principali di Redfish sono suddivise in tre raccolte: sistemi, manager e chassis. La collezione di sistemi fornisce una visione logica di un sistema informatico e include risorse di sistema come CPU e storage. La collezione di gestione comprende risorse di gestione come BMC e gestori di enclosure. La collezione chassis comprende le risorse relative agli elementi fisici di un'infrastruttura, come gli alloggiamenti, i rack e le lame. Le collezioni chassis collegano i componenti fisici al software di un sistema.
I registri sono risorse Redfish utilizzate per fornire informazioni aggiuntive su altre risorse. Ad esempio, le informazioni sul BIOS variano da una piattaforma all'altra, quindi Redfish non può definire uno schema fisso per queste informazioni. I registri vengono invece utilizzati per fornire ulteriori informazioni su questi valori.
Redfish sfrutta altre risorse attraverso i servizi. Le collezioni di servizi includono attività, sessioni, account, eventi, aggiornamenti, registri e schemi. Due servizi che forniscono le capacità per due caratteristiche chiave di Redfish - la componibilità e la raccolta di metriche - sono i servizi di composizione e di telemetria.
Per migliorare le prestazioni, i componenti hardware dei data center vengono disaggregati o disaccoppiati, cioè suddivisi in componenti come memoria, storage, moduli di calcolo, ecc. Questi componenti sono assegnati a pool di risorse disponibili che possono essere ottimizzati per carichi di lavoro specifici, a seconda delle necessità. Ciò significa che possono essere riassemblati per usi diversi, ottimizzando così la risoluzione delle risorse. Questa architettura viene definita infrastruttura componibile.
Il servizio di composizione Redfish fornisce un modello di dati per descrivere le risorse componibili e un'interfaccia che consente ai clienti di riassemblare e configurare i componenti componibili in remoto.
La telemetria è il processo di raccolta di metriche su dati grezzi provenienti da sensori in fonti hardware remote. Una metrica è il valore di una qualità o quantità misurabile, come la temperatura o la corrente elettrica. Le metriche sono utilizzate per ottenere metadati su una risorsa, per fare rapporti sul comportamento delle risorse e per specificare le soglie di attivazione per le metriche da monitorare, ad esempio la temperatura massima di funzionamento consentita di un dispositivo.
Le metriche appaiono nelle risorse Redfish come proprietà JSON opzionali. Il servizio di telemetria Redfish descrive le risorse che un client può utilizzare per ottenere metriche da un componente Redfish.
Redfish si integra facilmente con le tecnologie più diffuse, come REST, JSON e Odata, e offre funzionalità, prestazioni e sicurezza migliori rispetto ad altre soluzioni di gestione delle piattaforme.
Redfish ha un basso ingombro di memoria e supporta la maggior parte dei sistemi operativi, consentendo una gestione efficiente dei data center multi-vendor. Redfish è completamente estensibile e include un framework di sviluppo completo, una suite di test ed estensioni OEM per implementazioni personalizzate.
Redfish utilizza la gestione OOB che consente agli amministratori di gestire in remoto i componenti del data center anche se le apparecchiature sono spente. Ciò consente un monitoraggio continuo e la possibilità di rimediare immediatamente in caso di guasto del sistema.
Redfish può essere implementato sui controller di gestione esistenti e libera i server dal vendor lock-in. IT riduce la complessità e l'inefficienza insita nell'utilizzo di più strumenti incompatibili, consentendo agli sviluppatori di innovare soluzioni più flessibili, stabili, economiche ed estensibili.
Grazie a Redfish, l'interoperabilità può essere gestita durante tutto il ciclo di vita di un prodotto o di un servizio, dalla distribuzione all'assistenza.
Sebbene Redfish migliori l'interoperabilità tra i componenti dei data center, un client Redfish potrebbe comunque dover utilizzare elementi di messaggio diversi per i prodotti di fornitori diversi.
Redfish non consente a un client di copiare il contenuto di un albero di risorse direttamente in un altro servizio, perché la configurazione potrebbe essere diversa. Allo stesso modo, il valore dei collegamenti alle risorse può variare tra le varie implementazioni.
Il software del client dovrà essere aggiornato in caso di aggiornamento del modello dei dati e di aggiunta di nuovi componenti.
Redfish è uno standard di nuova generazione, aperto e in rapida crescita, che consente la scalabilità in ambienti multi-server come i data center e le infrastrutture cloud.
Il DMTF sta collaborando con diversi partner dell'alleanza per costruire nuove estensioni di Redfish. Ad esempio, il DMTF, NVMe e la Storage Networking Industry Association (SNIA) hanno collaborato allo sviluppo di Swordfish per la gestione di dispositivi e servizi di storage nei data center. Il gruppo dei produttori di computer industriali PCI (PICMG) sta lavorando a estensioni per supportare le implementazioni IoT. L'American Society of Heating, Refrigerating and Air Conditioning Engineers (ASHRAE) ha adottato Redfish per la gestione dell'energia e del calore nei data center. Insieme al DMTF, la OpenFabrics Alliance sta sviluppando nuovi modelli e schemi Redfish per diversi tessuti. Nell'IT, il fabric si riferisce alle reti di area dati o di storage, ai server delle piattaforme cloud, alle connessioni ad alta velocità e agli switch. Redfish dovrebbe anche sostituire l'IPMI nell'Open Compute Project (OCP). Il lavoro prevede l'utilizzo di Redfish per specificare la gestibilità della piattaforma nelle applicazioni OCP.
Il principale svantaggio potenziale di Redfish è il bloat in futuro a causa dell'elevato numero di estensioni in fase di creazione, in particolare per quanto riguarda l'Edge computing.
PRTG Network Monitor è un software di monitoraggio di rete completo e tiene traccia dell'intera infrastruttura IT.
Ilmonitoraggio dei data center è fondamentale per qualsiasi azienda. Non è solo l'infrastruttura di rete a dover essere monitorata, ma anche le applicazioni e i servizi ospitati e l'ambiente fisico del data center stesso. PRTG Network Monitor copre l'intero ecosistema di rete. IT monitora tutti i dispositivi dell'infrastruttura - come switch, router, server, firewall e bilanciamento del carico - e i software di sistema e client - come ambienti virtuali e applicazioni web. PRTG Network Monitor monitora anche le informazioni provenienti dai sensori del data center fisico che monitorano la temperatura, l'umidità, l'accesso fisico, la fornitura di energia e le riprese CCTV. La funzione di monitoraggio più importante è probabilmente la sicurezza.
In PRTG è possibile creare dispositivi virtuali che rappresentano dispositivi fisici della rete, come server, dispositivi di archiviazione e così via. A questi dispositivi si possono poi aggiungere dei sensori. I sensori di PRTG sono elementi di monitoraggio di base che monitorano i valori misurati, come il carico della CPU o la quantità di spazio libero su un'unità. Gli Warning notificano agli amministratori la presenza di un problema o di un'anomalia nel sistema, sia che si tratti di un problema critico come un'interruzione di corrente o di un avviso di esaurimento del toner di una specifica stampante.
PRTG ha recentemente rilasciato il sensore Redfish System Health, che monitora la salute complessiva del sistema e lo stato dei dispositivi per un server abilitato Redfish.
Il sensore Redfish Health monitora i tempi di inattività, la memoria di sistema e le funzioni del processore. IT fornisce un monitoraggio continuo dello stato dei componenti hardware come chassis, unità, ventole, alimentatori e dispositivi Peripheral Component Interconnect Express (PCIe).