Cos’è un cluster?

I cluster sono in genere definiti come raccolte o gruppi di elementi con caratteristiche simili o diverse. Il gruppo o la raccolta di elementi costituisce un cluster. Di seguito sono riportate tre definizioni di cluster correlate principalmente alla tecnologia.

1. Elaborazione aziendale. In un sistema informatico, un cluster è un gruppo di server e altre risorse che agiscono come un singolo sistema e consentono elevata disponibilità, bilanciamento del carico ed elaborazione parallela. Questi sistemi possono variare da un sistema a due nodi di due personal computer (PC) a un supercomputer con un’architettura a cluster.

2. Elaborazione personale. Nella tecnologia di archiviazione PC, un cluster è l’unità logica di archiviazione file su un disco rigido ed è gestito dal sistema operativo del computer. Qualsiasi file archiviato su un disco rigido occupa uno o più cluster di archiviazione. I cluster di un file possono essere sparsi tra diverse posizioni sull’unità. I ​​cluster associati a un file vengono tracciati nella tabella di allocazione file (FAT) del disco rigido. Quando un utente legge un file, l’intero file viene ottenuto senza che l’utente sappia dove è archiviato.

Poiché un cluster è un’unità logica piuttosto che fisica, non è integrato nel disco rigido, le dimensioni variano. Il numero massimo di cluster su un disco rigido dipende dalle dimensioni di una voce FAT. Le voci FAT di DOS 4.0 erano lunghe 16 bit, consentendo un massimo di 65.536 cluster. Windows 95 OSR2 supportava una voce FAT a 32 bit, consentendo un numero sufficiente di cluster per supportare fino a 2 TB di dati, supponendo che il disco rigido abbia una capacità sufficiente.

In un cluster, il file più piccolo, o anche una directory, occupa l’intero cluster. Pertanto, un file da 10 byte occuperà 2.048 byte se questa è la dimensione del cluster. Molti sistemi operativi impostano la dimensione predefinita del cluster a 4.096 byte o 8.192 byte. Fino a Microsoft Windows 95 OSR2, il disco rigido più grande che poteva essere supportato in una singola partizione era di 512 MB. I dischi rigidi più grandi potrebbero essere divisi in un massimo di quattro partizioni, ciascuna con un FAT in grado di supportare 512 MB di cluster.

3. Terminali e workstation. In alcuni prodotti, un cluster è un gruppo di terminali o workstation collegati a un’unità di controllo comune.

Applicazioni e vantaggi del clustering

Le app di clustering, che siano residenti nel sistema operativo o come strumento separato, supportano molti importanti requisiti utente e rientrano nelle seguenti categorie:

Elaborazione ad alte prestazioni

L’elaborazione ad alte prestazioni (HPC) si ottiene utilizzando le capacità di prestazioni di più nodi di elaborazione nel cluster e aggiungendo dispositivi a un sistema. Il software clustering garantisce che le risorse aggiunte soddisfino i requisiti utente per alta velocità e capacità di archiviazione.

Elevata disponibilità

L’elevata disponibilità delle risorse di elaborazione e archiviazione, detta anche tolleranza agli errori, garantisce che una perdita o un’interruzione di un elemento di elaborazione o archiviazione in un cluster di computer non interrompa la produzione complessiva. I membri del cluster possono essere designati come backup in caso di guasto di un altro dispositivo. Quando ciò accade, il software di failover del cluster sposta rapidamente l’elaborazione o l’archiviazione sul sistema di backup o standby.

Le capacità di CPU e storage ad alta disponibilità aumentano la ridondanza in un cluster, mentre l’affidabilità operativa si basa su tutti i membri del cluster in base alle necessità. Il clustering di più dispositivi garantisce la disponibilità; risorse sufficienti per limitare gli effetti negativi di un’interruzione forniscono resilienza.

Bilanciamento del carico

Il bilanciamento del carico distribuisce le attività di elaborazione tra i nodi del cluster per ottimizzare le prestazioni e distribuire i carichi di lavoro in modo uniforme tra i dispositivi. I cluster di bilanciamento del carico migliorano le prestazioni e l’utilizzo tra singoli nodi in un cluster. Le attività di elaborazione distribuite su più sistemi consentono l’elaborazione attiva/attiva e le economie di scala.

Scalabilità delle risorse

L’elaborazione e lo storage vengono espansi o ridimensionati in due modi:

  • verticalmente, dove viene aggiunto più storage o elaborazione al dispositivo primario; oppure
  • orizzontalmente, dove vengono aggiunti più dispositivi al cluster stesso.

Ogni approccio viene utilizzato per diverse applicazioni utente. Il software di clustering si adatta a entrambi i tipi di ridimensionamento.

Gestione dei container

I container combinano tutte le risorse necessarie per eseguire un’applicazione in un unico pacchetto. Il software di clustering viene utilizzato per gestire i singoli container come se fossero membri di un cluster.

Il software open source Kubernetes facilita la preparazione, l’organizzazione, il ridimensionamento e l’implementazione di applicazioni basate su container. I cluster Kubernetes contenenti più container, o pod, gestiscono funzioni quali gestione delle risorse, condivisione del carico, tolleranza agli errori e requisiti di sicurezza.

Gestione delle risorse cloud nei cluster

Il clustering non è limitato ai data center on-premise. Può essere utilizzato con risorse di cloud computing e storage. I cluster vengono estesi oltre il data center nelle risorse di un provider cloud, con un set di nodi di storage e di calcolo implementati su VM.