Danilo Poccia - Tecnologia et al.
Che cos'è ZFS?

...ecco una risposta breve ma piuttosto esaustiva.
ZFS è un nuovo tipo di file system che fornisce una semplice amministrazione, una approccio transazionale, una integrità del dato "end-to-end" e una immensa scalabilità (128-bit). ZFS non è un miglioramento "incrementale" alla tecnologia esistente, ma è un nuovo approccio alla gestione dei dati creato eliminando alcune assunzioni di base che risalevano a 20 anni fa.
ZFS è basato su un modello di "storage pool" che elimina completamente il concetto di "volumi" ed i problemi associati di partizionamento, provisioning e bilanciamento del carico sui device fisici. Migliaia di file system possono prelevare lo spazio da uno Storage Pool comune e ciascuno di essi consumerà solamente lo spazio di cui ha bisogno. In questo modo la banda di I/O combinata di tutti i device nel pool è disponibile per tutti i file system, in ogni momento. Per regolare l'accesso condiviso ad uno Storage Pool ogni file system può avere associati dei parametri di quota (massimo spazio visibile all'interno del pool) e reservation (spazio del pool dedicato ad un file system e non visibile agli altri). Tali parametri sono logici e possono istantaneamente essere cambiati in qualsiasi momento.
Tutte le operazioni sono transazioni "copy-on-write", in questo modo lo stato dei dati su disco è sempre valido. Non serve (e non esiste) un "fsck" per un ZFS. Ogni blocco ha un checksum per prevenire una corruzione silente dei dati ed il dato stesso è riparato in automatico se si trova in un pool in configurazione mirror o RAID. Se una copia è danneggiata, ZFS se ne accorge e usa un'altra copia per riparla. ZFS introduce un nuovo modello di replicazione dei dati chiamato RAID-Z. E' simile al RAID-5, ma usa uno striping a dimensione variabile che, assieme al "copy-on-write", elimina il RAID-5 "write hole" (la corruzione dovuta ad una perdita di corrente tra l'aggiornamento dei dati e della parità). Tutte le scritture RAID-Z sono effettuate in striping. ZFS implementa inoltre una pipeline per le richieste di I/O, con un concetto simile a quello dei processori (CPU). La pipeline effettua lo scheduling più performante per le richieste di I/O, cambiando l'ordine delle operazioni all'interno di una transazione "copy-on-write".
Sfruttando il "copy-on-write" ZFS permette di creare rapidamente un numero illimitato di snapshot (read-only) e cloni (read-write) di un file system. Le funzionalità di backup e restore di ZFS sono basate proprio sugli snapshot. Ogni snapshot può generare un backup completo, ogni coppia di snapshot può produrre un backup incrementale. I backup incrementali possono essere utilizzati per implementare una architettura di data replication, ad esempio trasmettendo un "incremento" ogni 10 secondi.
ZFS permette di attivare su base file system la compressione trasparente dei dati. Oltre a ridurre il consumo di spazio, la compressione riduce anche il numero di richieste di I/O. Per questo motivo si è verificato che attivando la compressione con particolari workload si ottiene anche un beneficio prestazionale.
Oltre ai file system, uno Storage Pool ZFS può fornire dei volumi alle applicazioni che necessitano di una semantica di tipo raw-device. I volumi ZFS possono per esempio essere utilizzati come device di swap. Ed attivando la compressione su un volume di swap, si ottiene di aver compresso la memoria virtuale di un sistema. A partire dall'ultimo aggiornamento di Solaris 10 (8/07) i volumi ZFS possono essere esportati via rete tramite iSCSI.
Ecco alcuni utili puntatori per maggiori informazioni:
Posted at 04:50PM ott 12, 2007 by danilop in Solaris | Comments[0]


