ZFSonLinux 0.8: funzionalità, stabilizzazione, intrighi. E anche trim

Proprio nei giorni scorsi è stata rilasciata una nuova versione stabile di ZFSonLinux, un progetto che ora è centrale nel mondo dello sviluppo di OpenZFS. Addio, OpenSolaris, benvenuto feroce mondo Linux incompatibile con GPL-CDDL.

ZFSonLinux 0.8: funzionalità, stabilizzazione, intrighi. E anche trim
Qui sotto una panoramica delle cose più interessanti (ovviamente, 2200 commit!), e per dessert — un po' di intrigo.

Nuove funzionalità

Naturalmente, quella più attesa è la crittografia nativa. Ora è possibile crittografare solo i dataset necessari utilizzando la crittografia integrata in ZFS, e (per me — il punto principale) — puoi inviare dati crittografati tramite zfs send e CONTROLLARE l'integrità dei dati senza decrittografarli usando gli strumenti integrati, tutte le possibilità per mantenere l'integrità dei dati ZFS saranno con te!

Successivamente, per importanza, va menzionato il tanto atteso TRIM. Sì, ci è voluto molto per arrivare in produzione. In parte perché per i filesystem CoW il problema dell'usura degli SSD non è così critico. Ma ora siamo tutti tranquilli — zpool trim salverà le nostre delicate chiavette USB.

Ora è possibile rimuovere i vdev array accidentalmente aggiunti dal pool (ma solo se sono sparse o mirror). Un utile particolare.

Successivamente nel nostro countdown — checkpoint del pool. In breve — snapshot per l'intero stato del pool, MA che offrono la possibilità di annullare le modifiche non solo ai dati, ma anche alle features attivate nel pool e ai cambiamenti nella struttura. Un'altra possibilità per garantire sicurezza.

Inizializzazione del pool — riempimento dello storage sottostante con zeri. Utile per l'operatività in ambienti con dischi thin provisioned per un'esplicita allocazione dello spazio e per evitare imprevisti cali di prestazioni in seguito.

Contabilità del progetto e quota — nel meccanismo già esistente delle quote ora è possibile utilizzare la suddivisione per progetti.

Programmi canale — possibilità di eseguire compiti amministrativi in modo atomico tramite script Lua. Ci sono limiti sul tempo di esecuzione e sulla memoria. Se ti occupi di automazione — questo è per te.

Direct IO — per semplicità abbiamo portato il lavoro di Direct IO, all'interno non è cambiato nulla (le chiamate vanno massimamente oltre la cache), ma ora i software desiderosi di operare in questo modo non si lamenteranno.

Progetto Pyzfs è stato integrato nel repository principale ed è stato preso sotto l'ala del progetto ZFSonLinux. Ora ci sono più strumenti per la gestione da Python (e sarà anche più sicuro per il supporto del modulo). Inoltre, molti script Python sono stati adattati a Python3.

E ora la parte succulenta — le prestazioni

Ora, durante le operazioni di scrub e resilver, i metadata vengono letti per primi e solo dopo i dati in modo ottimale. sequenziale In questo modo, il ripristino dell'array e la verifica dell'integrità avvengono alla massima velocità.

Classi di allocazione – negli array vdev è stato aggiunto un nuovo tipo di supporto, ora è possibile trasferire la memorizzazione dei metadata/tabelle di deduplicazione (DDT)/blocchi di dati inferiori a X Kbyte in un array vdev separato di dischi più performanti. Maggiore velocità al dio della velocità! (e in realtà, questa funzionalità sarà molto utile nel prossimo futuro DRAID).

Molte comandi amministrativi ora funzionano più velocemente grazie alla caching mirata dei metadata (per esempio, zfs list, zfs get).

Il processo di allocazione dei dati è stato parallelizzato, ora per ogni sezione di spazio libero (metaslab) vengono creati più allocatori. Con NVME sicuramente non si riuscirà a spremere tutto, ma ci sarà un miglioramento.

Il ripristino ritardato dell'integrità dell'array permetterà di non sovraccaricare l'array con la ricostruzione simultanea di più dischi, ma lo farà in modo sequenziale. In questo modo si ridurrà sia l'impatto sulle prestazioni che il tempo di ricostruzione.

Durante l'importazione di pool con un numero elevato di volumes è stata aumentata la velocità della loro registrazione nel sistema.

Anche QAT ora consente di scaricare su di esso il calcolo della crittografia e dei checksum.

Inoltre, ci sono molte piccole modifiche (dopotutto, 2000+ commit nella versione!).

E per finire — intrighi

Anche se ZFSonLinux aggiunge rapidamente supporto per i nuovi kernel Linux (attualmente sono supportate le versioni 2.6.32 – 5.1*), i maintainer del kernel mostrano un evidente disinteresse nell'aiutare i moduli esterni ("…non ci interessa affatto
moduli del kernel esterni…
– greg k-h"). Così, le chiamate al kernel necessarie per un funzionamento efficace nella versione 5.0 sono state modificate in GPL-only . Nei kernel con questa patch, le prestazioni di ZFS saranno notevolmente inferiori. Si salva il fatto che questa funzionalità può essere implementata a livello di modulo, il che probabilmente sarà fatto. Nel frattempo, puoi prendere esempio da NixOS — loro hanno semplicemente annullato la patch nel kernel 🙂

Anche il progetto ha ora un Codice di Condotta, il che ha generato una serie di polemiche. Ma noi abbiamo resistito 🙂

A tutti backup funzionanti e versioni stabili!

Link utili:
rilascio su Github
la mia introduzione a ZFS

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster