Salta al contenuto principale

Samba 4.25: il Software Libero che fa dialogare Linux e Windows diventa più resistente ai guasti

Inviato da tuxsa il
new Samba

Samba 4.25.0 è disponibile. La prima versione stabile della nuova serie introduce importanti novità per l'alta disponibilità, i cluster e l'integrazione con sistemi di storage moderni, continuando contemporaneamente una storia iniziata più di trent'anni fa: permettere a sistemi GNU/Linux e Unix di comunicare con le reti e i servizi Microsoft attraverso implementazioni libere dei protocolli SMB.

Per comprendere l'importanza di Samba bisogna partire proprio da qui.

In una rete composta esclusivamente da sistemi GNU/Linux possiamo utilizzare numerose tecnologie per condividere file, stampanti, identità e risorse. Il problema cambia quando nella stessa infrastruttura devono convivere computer Windows, server Linux, NAS, dispositivi Unix e servizi Active Directory.

Samba nasce per costruire questo ponte.

Il progetto implementa il protocollo SMB, utilizzato principalmente dai sistemi Windows per la condivisione dei file e di altre risorse di rete, e permette a una macchina GNU/Linux o Unix di comportarsi come file server compatibile con client Windows.

Ma Samba è diventato nel tempo molto più di un semplice server per condividere una cartella.

Può essere membro di un dominio Active Directory e può funzionare esso stesso come Active Directory Domain Controller, consentendo di gestire utenti, computer, autenticazione, policy e altri elementi normalmente associati alle infrastrutture Microsoft.

Questa interoperabilità ha un significato che va oltre la comodità tecnica.

Uno standard è realmente utile quando non costringe chi lo utilizza ad acquistare l'implementazione di un solo produttore.

Ed è precisamente ciò che Samba ha dimostrato per decenni.

La principale novità della versione 4.25 riguarda però un problema ancora più complesso: cosa accade ai file aperti quando un server smette temporaneamente di funzionare?

Samba introduce in forma ancora sperimentale il supporto agli SMB3 Persistent Handles.

Normalmente un'applicazione apre un file e riceve dal server un riferimento attraverso il quale continua a utilizzarlo. Se il server viene riavviato o si verifica un'interruzione, quella relazione può andare perduta e il client deve ricostruirla.

Con i Persistent Handles, Samba può conservare su storage persistente le informazioni necessarie per ricostruire i file aperti quando il client si riconnette.

L'obiettivo è il cosiddetto Transparent Failover.

Immaginiamo una macchina virtuale il cui disco si trovi su uno storage SMB oppure un database che stia utilizzando file presenti su un server.

Un'interruzione temporanea del nodo che fornisce quei dati non dovrebbe necessariamente obbligare l'applicazione a ricominciare tutto da zero.

Samba 4.25 pone le fondamenta affinché la connessione possa essere ristabilita mantenendo validi gli handle precedenti.

È una funzione destinata soprattutto alle infrastrutture nelle quali l'accesso continuo ai dati è essenziale.

Il progetto avverte però chiaramente che esiste un costo.

Per rendere persistente lo stato degli handle è necessario scrivere continuamente informazioni sullo storage durante apertura, modifica, lease e chiusura dei file. Questo introduce latenza e, nei cluster, può richiedere transazioni distribuite tra i nodi.

Per questo Samba precisa che la funzione non è raccomandata per i normali file server e rimane, almeno per ora, sperimentale.

È un dettaglio importante perché mostra una buona pratica dello sviluppo del Software Libero: una funzione nuova non deve essere necessariamente presentata come soluzione universale.

Può avere vantaggi, costi e scenari nei quali semplicemente non serve.

Samba 4.25 permette inoltre agli amministratori di scegliere un compromesso tra prestazioni e resistenza ai guasti.

Con la modalità full_outage, predefinita, lo stato necessario viene mantenuto in modo che gli handle possano sopravvivere anche allo spegnimento contemporaneo di tutti i nodi del cluster.

La modalità partial_outage riduce invece il costo delle operazioni, ma richiede che almeno un nodo rimanga operativo.

La nuova versione introduce anche il rate limiting coordinato a livello di cluster.

In precedenza un limite poteva essere applicato individualmente sui singoli nodi. Ora il modulo vfs_aio_ratelimit può coordinare l'attività dell'intero cluster, facendo in modo che il limite configurato per una condivisione rappresenti realmente un tetto complessivo e non venga moltiplicato per il numero dei server.

Per realizzare questa funzione compare un nuovo demone, ratelimitd, che raccoglie l'attività dei processi Samba sul nodo e comunica le informazioni agli altri membri del cluster.

Un'altra novità interessante riguarda Ceph.

Samba 4.25 introduce il nuovo modulo vfs_ceph_rgw, attraverso il quale i bucket di Ceph Object Gateway possono essere presentati ai client SMB come una struttura gerarchica di file e cartelle.

È un incontro tra due modelli di storage differenti.

Da una parte abbiamo l'object storage, nel quale i dati vengono gestiti come oggetti all'interno di bucket; dall'altra abbiamo il tradizionale filesystem gerarchico che utenti e programmi vedono attraverso directory e file.

Samba costruisce un ponte anche tra questi due mondi.

La versione 4.25 introduce inoltre un nuovo cluster functional level, concettualmente simile ai livelli funzionali conosciuti in Active Directory.

Il problema che cerca di risolvere è molto concreto.

Aggiornare un singolo server è relativamente semplice. Aggiornare un cluster significa invece attraversare una fase nella quale nodi con versioni differenti devono continuare a comunicare.

Il livello funzionale permette di mantenere temporaneamente formati e protocolli compatibili durante un aggiornamento progressivo. Solo quando tutti i nodi sono stati aggiornati l'amministratore può innalzare esplicitamente il livello e abilitare le nuove caratteristiche incompatibili con le versioni precedenti.

È una soluzione pensata per permettere i cosiddetti rolling upgrade, riducendo la necessità di fermare l'intera infrastruttura contemporaneamente.

Anche sul fronte della sicurezza troviamo un cambiamento significativo.

Per domini con livello funzionale 2008 o superiore, Samba utilizza ora per impostazione predefinita tipi di cifratura AES appropriati per Kerberos. La modifica è collegata alla correzione della vulnerabilità CVE-2026-20833.

Ma forse la parte più interessante di Samba 4.25 rimane ciò che questa release permette di raccontare sul Software Libero.

Samba esiste dal 1992.

Per più di trent'anni ha affrontato uno dei problemi più difficili dell'informatica: permettere a sistemi costruiti da comunità e produttori differenti di lavorare insieme.

Non ha avuto bisogno di trasformare Linux in Windows.

Ha fatto qualcosa di molto più interessante: ha permesso a Linux di parlare con Windows rimanendo Linux.

Questa è interoperabilità.

Ed è una distinzione fondamentale.

L'alternativa alla dipendenza da un fornitore non consiste necessariamente nel cancellare dall'oggi al domani tutto ciò che quel fornitore produce.

Una scuola, un'azienda o una pubblica amministrazione possono avere migliaia di computer Windows e contemporaneamente decidere di utilizzare server GNU/Linux.

Possono introdurre progressivamente software libero senza dover sostituire ogni componente nello stesso momento.

Possono costruire infrastrutture miste.

È proprio qui che progetti come Samba assumono anche un valore strategico.

La libertà tecnologica non richiede che tutti utilizzino lo stesso software. Richiede che software differenti possano comunicare attraverso protocolli documentati e implementabili da soggetti indipendenti.

Se un protocollo può essere utilizzato soltanto dal programma che lo ha creato, non abbiamo interoperabilità: abbiamo dipendenza.

Samba ha contribuito per decenni a rompere questa equivalenza.

Oggi lo fa in infrastrutture enormemente più complesse rispetto alle reti locali degli anni Novanta: Active Directory, cluster, virtualizzazione, storage distribuito e servizi ad alta disponibilità.

E continua a farlo come Software Libero distribuito sotto GNU GPL.

Samba 4.25 non è quindi soltanto un aggiornamento destinato agli amministratori di rete.

È l'ennesima evoluzione di un'idea molto più importante.

Computer differenti devono poter parlare tra loro.

Server differenti devono poter condividere dati.

Un'organizzazione deve poter cambiare una parte della propria infrastruttura senza essere obbligata a cambiare tutto il resto.

L'interoperabilità è una delle condizioni concrete della libertà di scelta.

E dopo più di trent'anni Samba continua a dimostrare che il Software Libero può costruirla.