OpenSolaris File Server

ZFS il File System del Futuro


OpensSolaris per l’implementazione del fileServer aziendale rappresenta la migliore soluzione in termini affidabilità, disaster recovery,  ottimizzazione dello spazio, performances e riduzione dei  costi relativi alle CAL Windows.

L’architettura dell’ambiente fonda le sue basi sulle notevoli potenzialità native offerte dal file system ZFS.

ZFS è un nuovo tipo di file system, sviluppato salla Sun Microsystems che fornisce una semplice amministrazione, una approccio transazionale, una integrità del dato “end-to-end” e un’immensa scalabilità (128-bit).

Di seguito alcune caratteristiche:

  • 2^48 — numero di snapshot (3 × 1014);
  • 2^48 — numero di file (3 × 1014);
  • 16 exabyte — dimensione massima di un file system;
  • 16 exabyte — dimensione massima di un file singolo;
  • 16 exabyte — dimensione massima di un attributo;
  • 3 × 1023 petabyte — dimensione massima di uno zpool;
  • 2^56 — numero di attributi di un file (attualmente limitato a 2^48);
  • 2^56 — numero di file in una directory (attualmente limitato a 2^48);
  • 2^64 — numero di device per ogni zpool;
  • 2^64 — numero di zpools;
  • 2^64 — numero di file system in uno zpool.

STORAGE POOL

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.

COPY ON WRITE

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”.

SNAPSHOT

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.

iSCSI

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.