# IBM Z

IBM Z è una famiglia di sistemi mainframe prodotti da IBM utilizzanti l'architettura z/Architecture. È l'evoluzione della famiglia IBM System/360.

## Caratteristiche

Un mainframe della linea IBM Z si differenzia dagli altri elaboratori per una serie di ottimizzazioni di performance, ridondanza e high availability non presenti, almeno solitamente, sui server tradizionali. Ad esempio, vi è hardware offloading delle operazioni di I/O, della crittografia e della gestione della memoria. Vi sono un gran numero di processori (fino a 170 per frame) con la possibilità di verificare in maniera incrociata l'esito delle operazioni, di ritentarle in caso di fallimento e di mettere offline il processore guasto in caso l'errore persista, spostando in maniera trasparente il workload su un altro processore tenuto come hot spare. Sistemi di ridondanza progettati su questo modello sono attivi anche sulla RAM, sui dischi, sulle alimentazioni, sull'impianto di raffreddamento e sulla quasi totalità dei sottosistemi hardware del mainframe.
Queste macchine trovano impiego in settori in cui i costi di downtime non previsto minerebbero seriamente la solidità dell'azienda stessa: compagnie aeree, banche, assicurazioni, gateway e processori di pagamento sono esempi emblematici.
I sistemi operativi supportati dalla linea IBM Z sono z/OS, Linux on System z, z/VM, z/VSE e z/TPF.

## Denominazione

La linea ha subito diversi cambi di denominazione:
* System/390 fino al 2000
* IBM eServer zSeries fino al 2004
* IBM System z fino al 2010
* IBM z System fino al 2017
* IBM Z dal 2017 ad oggi, includendo le famiglie fino a zSeries

## Elenco di modelli (in ordine cronologico)
### zSeries

* z900 (2064 series), 2000
* z800 (2066 series), entry-level, variante ridotta del z900 (2002)
* z990 (2084 series), successore dei z900 più grandi (2003)
* z890 (2086 series), successore del z800 e dei z900 più piccoli (2004)

### System z9

* 9 Enterprise Class (2094 series), inizialmente conosciuto come z9-109 (2005)
* z9 Business Class (2096 series), successore del z890 e dei z990 più piccoli (2006)

### System z10

* z10 Enterprise Class (2097 series), introdotto il 26 febbraio 2008
* z10 Business Class (2098 series), introdotto il 21 ottobre 2008

### zEnterprise System/z Systems

* zEnterprise 196 (2817 series), introdotto il 22 luglio 2010
* zEnterprise 114 (2818 series), introdotto il 6 luglio 2011
* zEnterprise EC12 (2827 series), introdotto il 28 agosto 2012
* zEnterprise BC12 (2828 machine type), introdotto il 23 luglio 2013
* z Systems z13 (2964 series), introdotto il 13 gennaio 2015

### IBM Z

* IBM z14, introdotto il 17 luglio 2017
* IBM z15, introdotto il 12 settembre 2019
* IBM z16, introdotto il 5 aprile 2022

## La gestione di complessi carichi di lavoro nell'IBM Z

Come tutte le tecnologie si sono evolute nell'ottica di poter ospitare carichi di lavoro specifici, una serie di tecnologie sono state integrate all'interno degli IBM Z per poter ospitare carichi di lavoro eterogenei tra loro all'interno della stessa elaborazione. Non è affatto inusuale constatare che un solo IBM Z riesca a gestire applicazioni prettamente transazionali insieme ad applicazioni di Business Intelligence. Questo è dovuto ad un costante ammodernamento della piattaforma che ha cercato di mantenere come caratteristica fondamentale l'effettivo supporto a tutto ciò che la tecnologia aveva già prodotto. In poche parole, se negli anni ottanta le applicazioni transazionali IMS erano perlopiù utilizzate in un mondo Mainframe, oggi, le applicazioni Java possono essere integrate all'interno di un'infrastruttura Z capace di mantenere le caratteristiche prestazionali della piattaforma transazionale tradizionale CICS ed IMS insieme a quelle generate dal nuovo carico di lavoro Java. Non solo. La quantità di dati prodotti nel tempo sono oggetto di analisi attraverso applicazioni che riescono a sfruttare le caratteristiche di "DataBase Machine" e di "I/O Rate" tipiche dell'IBM Z in generale. Non c'è, inoltre, da meravigliarsi se allo stesso tempo alcuni server Linux virtualizzati all'interno di uno z/VM espletano funzioni di servizi di rete infrastrutturali all'azienda (firewall, DHCP, dns).
Una caratteristica della tecnologia dell'IBM Z è l'abilità di supportare applicazioni di diversa natura attraverso tecniche intelligenti ed avanzate di gestione del workload progettate per riallocare le risorse del sistema in maniera automatica e dinamica in accordo con le priorità definite. È interessante inoltre comprendere come la definizione delle priorità non è un qualcosa di definito dal punto di vista meramente tecnologico bensì da uno studio "economico" del processo di business associato.
La funzione che permette tutto questo è il Workload Manager (WLM). L'idea del Workload Manager è quella di tradurre gli obiettivi di business associati ad un dato workload all'interno di costrutti tecnici (regole e priorità) forzate dal Sistema Operativo. Le definizioni delle regole con la quale i processi sono gestiti sono all'interno di quelle che vengono chiamate Policy. Ogni diversa tipologia di Workload è definita nel sistema e ad ogni elemento viene assegnato un obiettivo (goal) ed un'importanza. Questi goal, definiscono le aspettative o i livelli di servizio (SLA) di come il lavoro deve essere effettuato. L'evoluzione di questo strumento ha reso possibile anche tale gestione all'interno di un Sysplex.
Il WLM gestisce l'uso delle risorse di sistema (processore, memoria e I/O) in modo da onorare questi obiettivi. L'identificazione e la classificazione delle richieste di lavoro sono supportati dai software middleware e dal sistema operativo: sono loro, infatti, che informano il WLM quando una nuova unità di lavoro entra ed esce dal sistema. Quando le unità di lavoro entrano nel sistema, vengono classificate ed assegnate ad una classe di servizio (Service Class) che descrive gli obiettivi in termini di performance che deve traguardare. Il WLM gestirà le risorse di sistema per assicurare che le politiche vengano rispettate.
Un'ulteriore estensione di tale tecnologia e più in generale della capacità di elaborare grossi e complessi carichi di lavoro da parte dell'IBM Z, è fornita dalla tecnologia hardware stessa. Ad esempio, l'Intelligence Resource Director (IRD) è una tecnologia che estende il concetto del WLM ai Virtual Server che risiedono all'interno dell'elaboratore. L'IBM Z infatti ha sviluppato da decenni il concetto di virtualizzazione estendendo così le sue capacità. L'IBM Z è infatti un elaboratore in grado di partizionare e condividere le sue risorse dal punto di vista Hardware attraverso la tecnologia del Logical partitioning (LPAR) ed anche dal punto di vista Software attraverso il Sistema Operativo z/VM. Tali livelli di virtualizzazione implementati esprimono il concetto che la virtualizzazione nel mondo Z non è un "Add-On" bensì un "Built-In".
Poiché tale partizioni logiche devono essere gestite con gli stessi livelli di un singolo sistema, l'Intelligence Resource Director, sposta le risorse dinamicamente da un sistema all'altro in base alla priorità della unita di lavoro che richiede il servizio.
Le ultime migliorie sulla piattaforma dell'IBM Z estendono ulteriormente le capacità hardware elaborative di carichi di lavoro misti. È infatti possibile utilizzare processori specializzati ad eseguire diverse tipologie di lavoro:
* Central processor (CP): è il processore base, disponibile per tutti i sistemi operativi ed in grado di eseguire qualsiasi tipologia di lavoro
* Integrated Facility for Linux (IFL): è un processore che può eseguire solo il sistema operativo Linux o il sistema di z/VM per l'utilizzo della virtualizzazione di immagini Linux
* Z Integrated Information Processor (zIIP): lo Z Integrated Information Processor (zIIP) è invece il processore in grado di eseguire determinate tipologie di carico tipiche di un database. Tecnologicamente è infatti in grado di gestire tipologie di carico per componenti di elaborazione legate alla Business Intelligence (BI), all'enterprise resource planning (ERP), ed al customer relationship management (CRM).
* Integrated Coupling Facility (ICF): questo processore gestisce, invece, il carico del Coupling Facility Control Code (CFCC). È infatti utilizzato per creare un sistema di Coupling Facility per essere utilizzato dall'IBM Z Parallel Sysplex solution (la tecnologia in grado di gestire un Cluster evoluto di IBM Z).
* System Assist Processor (SAP): processori addizionali dedicati alla gestione dei carichi di I/O.