Nel campo della gestione disco, definibile come storage locale, negli ultimi anni si sono dati battaglia BTRFS e OpenZFS. Entrambi hanno i loro problemi: il primo non riesce ancora a mantenre le promesse fatte per funzionalità e affidabilità, il secondo non convince tutti sotto il profilo delle licenze – e non è ancora upstream nel Kernel.
Red Hat, non soddisfatta da nessuna delle due soluzioni, da qualche anno ha deciso di crearsi la strada da sé (e la cosa non sorprenderà i più): Stratis.
A questo filesystem abbiamo già accennato in occasione della beta di RHEL 8 o per l’uso di default in Fedora per BTRFS (uso poi scelto e confermato), ma in questi 3 anni il progetto è andato avanti arrivando qualche giorno fa al rilascio della versione 3.0.
Prima di elencare le novità, forse vale la pena raccontare cosa è Stratis. Lo faremo come sempre in estrema sintesi, cercando di semplificare le cose senza snaturarle.
Stratis si pone come soluzione moderna per i problemi di storage (local) più comuni affrontati in server e workstation: aggregazione dei dischi fisici, criptazione delle partizioni, duplicazione (RAID) dei dati…
Al posto di integrare tutte queste funzioni nel filesystem stesso e a livello di Kernel, l’approccio di Stratis è di usare un demone (stratisd) che a sua volta invochi i comandi corretti per i software già esistenti (e collaudati) che si occupano di quegli aspetti: LVM, LUKS, mdraid e XFS (il formato di filesystem presentato infine dal Kernel).
L’implementazione effettiva è piuttosto articolata, e prevede l’uso di DBus per scambiare i comandi tra i vari componenti, permettere l’esecuzione delle operazioni solo ad utenti privilegiati e il monitorggio delle risorse anche ad utenti normali, il tutto rimanendo il più agnostici e neutrali possibili. Ovvero, senza richiedere una libreria specifica nei programmi.
Questa impostazione, pur complicando lo sviluppo, permette la massima libertà di integrazione, oltre a non richiedere (sempre) l’aggiornamento dei singoli programmi contemporanemente all’aggiornamento del demone stratisd o di un suo componente. O obbligare all’uso della sua interfaccia testuale principale, stratis-cli.
Ah, il tutto scritto in Rust – sappiamo che a qualcuno questo farà piacere.
Ora che abbiamo descritto il suo funzionamento, vediamo le principali novità portate dalla versione appena rilasciata:
- è possibile determinare la dimensione logica di un volume in fase di creazione;
- è possibile modificare la chive di criptazione usata nel volume (tramite il componente Clevis);
- la rappresentazione dei pool (insiemi) di dischi usati riporta anche gli allarmi, e un comando specifico fornisce anche il dettaglio dell’allarme;
- i nomi dei dispositivi criptati non cambia tra i riavvii di stratisd;
- sono stati rimosse le interfacce già deprecate delle API di D-Bus, rendendo il tutto più aderente a standard e prassi comuni.
Oltre a queste novità, c’è un elenco (corposo) di piccoli miglioramento o vere e prorpie fix. Per esempio, ora non si rischia più di avere una macchina non avviabile per un errore in fase di creazione dell’initramfs.
Anche guardando solo questo elenco di modifiche, possiamo dire che la versione 1.0 e 2.0 sono state probabilmente premature: non ancora pronte ad un uso generalizzato. Ma, forse, questa volta ci siamo. Ovviamente, su RHEL!
Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.
Lascia un commento