Mainframe, cos'è e perché resta importante ancora oggi

Perché, a distanza di decenni, le aziende di grandi dimensioni si affidano ancora a voluminosi e costosi mainframe per gestire buona parte del loro business.

Con l’avvento del cloud, in generale si parla meno dei computer mainframe rispetto a qualche tempo fa. Eppure i mainframe esistono ancora oggi ed anzi sono attivamente utilizzati “dietro le quinte” per applicazioni critiche (si direbbe mission critical) in molteplici contesti: si calcola che 45 delle 50 principali banche al mondo, 8 delle prime 10 società assicurative, 8 dei primi 10 operatori di telecomunicazioni facciano uso di mainframe. Il concetto di mainframe è spesso, a torto, collegato a sistemi ormai vetusti, ormai consegnati alla storia dell’informatica. In realtà, come abbiamo accennato, sono vivi e vegeti superando per prestazioni gran parte dei server moderni.

Cos’è e come funziona un mainframe

Un mainframe è un tipo di computer ad alte prestazioni progettato per gestire grandi volumi di dati e fornire servizi affidabili, scalabili e sicuri per aziende, istituzioni finanziarie, governi e altre organizzazioni. I mainframe sono una delle prime forme di computer e sono ancora ampiamente utilizzati in settori critici dove l’affidabilità, la sicurezza e le prestazioni sono fondamentali.

Il termine mainframe descriveva i primi grandi computer centralizzati che dominarono il panorama informatico dagli anni ’50 in poi. Quando ancora doveva iniziare l’era del personal computing, si volle differenziare quei sistemi di grandi dimensioni dai dispositivi destinati all’uso personale che sarebbero poi successivamente arrivati sul mercato.

Agli albori dell’era informatica, IBM aveva diversi concorrenti che proponevano tutti le rispettive soluzioni mainframe: Big Blue, comunque, dominava il settore con l’80% delle quote di mercato. Oggi, di fatto, mainframe è sinonimo di IBM e dopo 50 anni i suoi sistemi continuano ad essere attuali. Vediamo perché. Intanto, è possibile accedere a una demo interattiva realizzata da IBM.

Le caratteristiche di un mainframe moderno sono cambiate radicalmente, com’è ovvio, rispetto all’offerta degli anni ’50 e ’60. Oggi, i mainframe sono ancora potenti e affidabili, ma sono stati aggiornati e ottimizzati per soddisfare le esigenze di un’ampia gamma di applicazioni aziendali e istituzionali.

Un mainframe dei giorni nostri può accogliere fino a 240 CPU di livello server, 40 TB di memoria RAM con funzionalità ECC (Error Correction Code) e molti petabyte di storage ridondante basato su flash. Si tratta quindi di sistemi progettati per elaborare grandi quantità di dati critici pur mantenendo un tempo di attività del 99,999%. Ciò equivale a circa cinque minuti di interruzione all’anno delle operazioni. I mainframe sono studiati per fornire sia ridondanza che throughput elevato.

Elaborazione ridondante: fiore all’occhiello dei mainframe

Si parla di ridondanza per riferirsi a un’architettura o a un sistema che utilizzano componenti in una configurazione che assicura maggiore affidabilità e disponibilità dei servizi. L’obiettivo dell’elaborazione ridondante è quello di evitare che un guasto su un singolo componente possa avere un impatto negativo sul funzionamento del resto del sistema. In questo modo, con un approccio parallelizzato, il sistema può restare operativo e funzionante anche in presenza di guasti.

I mainframe sono concepiti in partizioni indipendenti, ciascuna con RAM, storage, CPU e persino sistemi operativi diversi. Le applicazioni possono continuare a funzionare normalmente anche quando alcune delle partizioni sono sottoposte ad operazioni di manutenzione: patch sul sistema operativo, applicazione di aggiornamenti di vario tipo e interventi sull’hardware.

A questo proposito CPU, RAM e unità per lo storage dei dati sono sostituibili a caldo: se un componente si guasta, può essere estratto e sostituito senza richiedere lo spegnimento del mainframe. Ecco perché le aziende possono così fare business-as-usual senza dover sostenere alcuna interruzione del servizio erogato agli utenti finali.

Telum: IBM ha la sua CPU per i sistemi mainframe

Ad agosto 2021, IBM ha presentato quella che ad oggi resta la versione più aggiornata della CPU per mainframe. Chiamata Telum, la CPU IBM è stata realizzata per i mainframe della serie z16 ricorrendo al processo costruttivo a 7 nm di Samsung e si sviluppa su un die che misura ben 530 mm2. Si tratta di una CPU a 8 core fisici che diventano 16 core logici grazie al supporto SMT2 integrato.

Telum può spingersi a velocità di clock superiori ai 5 GHz e utilizza 256 MB di cache suddivisa in otto gruppi di cache L2 da 32 MB ciascuno. È inoltre il primo processore IBM che supporta l’accelerazione in hardware per le operazioni di inferenza legate alle elaborazioni di applicazioni per l’intelligenza artificiale. Le funzioni AI supportano sia l’elaborazione dell’inferenza che il machine learning.

Mainframe: la CPU Telum di IBM

Architettura del processore IBM Telum

Diversamente rispetto ai processori di Intel e AMD oltre che ai SoC ARM, i processori IBM per mainframe sono basati sull’architettura z/Architecture. Questa architettura è stata introdotta da IBM nel 2000 e rappresenta la base su cui sono costruiti tutti i mainframe IBM Z successivi. È ottimizzata per eseguire operazioni transazionali ad alta velocità e gestire grandi volumi di dati in modo efficiente. Grazie alla sua robustezza e alle sue caratteristiche avanzate, z/Architecture è ampiamente utilizzata nelle organizzazioni di grandi dimensioni e nei settori in cui è richiesta la massima affidabilità e sicurezza delle operazioni aziendali.

Cache L2 e L3

Parlando di cache abbiamo detto che ogni core di Telum consta di 32 MB di cache L2. Rimuovendo una riga dalla cache L2, essa viene spostata in un’altra cache L2 e contrassegnata come riga appartenente alla cache L3. Otto cache L2 possono quindi essere combinate in una cache L3 virtuale condivisa da 256 MB accessibile da uno qualsiasi degli 8 core.

Per fare un paragone, si prenda ad esempio un chiplet AMD Zen 3: in questo caso, ciascuno degli 8 core ha 512 KB di cache L2 e un totale di 32 MB di cache L3.

Rimuovendo una riga dalla cache L3, essa può trovare posto nella cache di un altro core andando così a creare cache L4 virtuale. La combinazione delle cache fornisce qualcosa come 8192 MB di cache L4 virtuale. IBM affermava già a suo tempo che con Telum le prestazioni complessive per socket migliorano di oltre il 40% rispetto al precedente design della CPU z15.

Più Telum per formare il sistema mainframe

Nel contesto dei mainframe, un drawer (cassetto) è un modulo hardware fisico che contiene componenti specifici, come processori, memoria, schede di input/output e altri dispositivi essenziali per il funzionamento del sistema. Abbiamo detto che Telum è formato da 8 core fisici per singolo chip. Per ogni socket si usano due chip Telum; quattro socket per ogni drawer. A loro volta, 4 drawer compongono un sistema. Come accennato nell’introduzione, un mainframe può supportare fino a 250 core, 190 dei quali controllati dall’utente. L’I/O è gestito da due controller PCIe 4.0.

CPU IBM Telum

Partizioni logiche e archiviazione sul mainframe

Abbiamo detto che il mainframe è organizzato in partizioni. Ciascuna partizione logica (LPAR) può eseguire un’istanza separata e isolata di Z/OS, il sistema operativo mainframe sviluppato e aggiornato da IBM. Le varie LPAR possono però eseguire anche altri sistemi operativi, come Linux, e dispongono di risorse hardware completamente separate.

Le LPAR sono separate anche attraverso l’utilizzo di un solido sistema di autorizzazioni: un gruppo di utenti può avere accesso alla LPAR usato per i test ma non alle LPAR adoperate in produzione.

Il protocollo parallel sysplex di IBM permette di accoppiare diversi mainframe oppure più LPAR sullo stesso sistema per gestire i workload, per attivare comunicazioni nelle varie direzioni e per esigenze di ripristino o failover.

Per quanto riguarda lo storage dei dati, al mainframe non si collegano unità disco bensì array di archiviazione. Questi ultimi possono essere strutturati abbinando hard disk e SSD (eventualmente NVMe) e formando così una capienza complessiva che può ampiamente superare, oggi, i 6 Petabyte e arrivare a 48 GB/s di troughput. Per confronto, basti ricordare che una singola unità NVMe performante raggiunge un massimo di circa 7 GB/s.

Il sistema operativo IBM Z/OS

Rilasciato nel 2000, Z/OS è il sistema operativo sviluppato da IBM per i suoi mainframe. A 64 bit, è una piattaforma altamente affidabile, scalabile e sicura. È progettata per supportare carichi di lavoro ad elaborazione intensiva e applicazioni aziendali critiche.

L’elaborazione batch è particolarmente utile per le aziende che devono elaborare grandi quantità di dati (si pensi alle banche e alle compagnie assicurative) mentre l’elaborazione transazionale dà modo di gestire senza intoppi immensi volumi di transazioni in tempo reale. Z/OS supporta nativamente le applicazioni compilate in COBOL, C, C++, Fortran e PL/1 ed è anche in grado di eseguire applicazioni Java

La piattaforma IBM integra un sistema di sicurezza che controlla l’accesso degli utenti e limita le funzioni che un utente autorizzato può eseguire (Security Server). Mediante l’utilizzo di RACF (Resource Access Control Facility), vengono controllati gli accessi alle risorse Z/OS protette.

Sicurezza, autorizzazioni e accesso ai file

Infine, con Pervasive Encryption Z/OS offre la possibilità di crittografare qualsiasi file (set di dati o dataset) con una cifratura AES forte. Gli oggetti crittografati sono decodificati in modo trasparente e nuovamente crittografati con un carico di lavoro minimo per la CPU.

In un mainframe IBM con Z/OS, il percorso completo di un dataset è composto da tre parti:

  • High-level qualifier (HLQ): il primo livello del percorso che identifica il proprietario o il gruppo a cui appartiene il dataset. Solitamente è un nome o un acronimo che rappresenta il gruppo o il dipartimento all’interno dell’organizzazione.
  • Low-level qualifier (LLQ): il secondo livello del percorso, identifica il nome specifico del dataset. Può essere costituito da un massimo di otto caratteri alfanumerici.
  • Member name: nel caso di un dataset partitioned, che contiene membri all’interno di una libreria, il terzo livello del percorso è il nome del membro.

Il formato generale è quindi il seguente:

HLQ.LLQ(MEMBER)

Supponiamo di avere un dataset appartenente al gruppo “VENDITE” con nome specifico “REPORT” e contenente un membro chiamato “LUG2023”. Il percorso completo sarebbe il seguente:

VENDITE.REPORT(LUG2023)

Il sistema operativo Z/OS utilizza questo percorso completo per individuare i dati e accedere alle informazioni richieste all’interno del dataset o del membro specificato.

Perché ancora oggi si continua a parlare di mainframe

Nel corso degli ultimi anni, specie con l’esplosione dei servizi cloud, in tanti hanno ripetutamente preconizzato la morte dei sistemi mainframe. Che invece sono vivi e vegeti, nonostante i costi onerosi per le aziende che li posseggono e devono gestirli.

Inoltre, molte delle applicazioni per mainframe hanno ormai decenni sulle spalle: sebbene il buon vecchio COBOL funzioni in modo efficiente, il software deve evolversi per soddisfare le mutevoli esigenze dei clienti. Ecco quindi che tante realtà di grandi dimensioni si sono progressivamente trovate in una condizione di svantaggio competitivo rispetto ai concorrenti più giovani e più agili.

La migrazione da un approccio fortemente incentrato sull’utilizzo di mainframe a uno schema ibrido è una sfida irta di ostacoli per le imprese che si trovano a gestire volumi di transazioni immensi (si pensi ai dati finanziari) in un solo minuto. Il costo per la migrazione di un gran numero di applicazioni mission critical è spesso davvero salato. Per non parlare delle tempistiche.

Imboccando la strada della migrazione, è difficile aggiungere nuove funzionalità e reagire alle innovazioni introdotte dalla concorrenza. Per questo, quindi per il rischio intrinseco e i costi (non solo a livello di infrastruttura ma anche in personale specializzato), tante realtà di grandi dimensioni preferiscono restare legate ai vecchi mainframe.

D’altro canto, IBM continua a fornire aggiornamenti della sua piattaforma: sebbene il mainframe continui a subire il guanto di sfida del cloud, Big Blue cerca comunque di offrire novità che possano essere parte del cambiamento. Utilizzando Red Hat Linux sul mainframe, gli sviluppatori possono utilizzare anche Node.js, Python, Docker e Kubernetes.

Funzionalità introdotte di recente in Z/OS includono la capacità di estrarre, gestire ed eseguire immagini Linux distribuite all’interno di container.

Le immagini pubblicate nell’articolo sono di IBM 1, 2.

Ti consigliamo anche

Link copiato negli appunti