ZFS

ZFS e' un file system sviluppato da Sun per Solaris e disponibile anche per Linux.
Perche' un altro file system? Beh, non preoccupatevi, questo sara' l'ultimo: e' il migliore!

Introduzione

ZFS nasce per superare una serie di limiti che sono presenti negli altri file system. ZFS consente infatti di gestire in modo completo sia le problematiche di gestione dello spazio fisico (tipiche di un volume manager) che quelle di definizione degli spazi (tipiche di un file system vero e proprio).

La prima caratteristica di ZFS e' l'enorme scalabilita': utilizza un repository a 128-bit praticamente illimitato rispetto a tutti gli altri file systems. ZFS gestisce internamente la data integrity (eg. RAID-Z: un RAID-5 con scrittura sincrona della parita' che garantisce sempre la consistenza del dato). ZFS utilizza molteplici tecniche per rendere efficiente, sicuro e performante l'utilizzo dello storage (eg. snapshot, scrub, copy on write).
La gestione di ZFS e' semplice, si fa tutto con due comandi: zpool e zfs.

Ho un po' esagerato dicendo che ZFS sara' l'ultimo file system... la Z posta da Sun nel nome ha proprio questo significato. E la Sun aveva gia' introdotto un'altro file system molto tempo fa l'NFS: ora si trova praticamente su tutti i sistemi operativi!

Sei pezzi facili

Per capire come funziona vediamo qualche esempio: ZFS ha comandi molto intuitivi.

Creazione di un pool:

# Crea il pool p2 (nella P2 in Italia ci stavano tutti) zpool create p2 /dev/rdsk/c0t1d0

Aggiunta di dischi:

# Aggiunta al pool di un disco fisico, di una LUN iSCSI e di un file zpool add p2 /dev/rdsk/c0t1d1 zpool add p2 /dev/rdsk/c0t607FDC607FDC2C000A47FDCDCDD4E312d0 mkfile 10g /disk1 zpool add p2 /disk1 # Oppure... aggiunta di un disco in mirror zpool attach p2 /dev/rdsk/c0t1d0 /dev/rdsk/c0t1d1

Creazione di un file system:

zfs create p2/data1 # Non sono obbligatori... ma sono spesso utili la quota, il mount point e la reservation zfs set quota=200m p2/data1 zfs set mountpoint=/mydata1 p2/data1 zfs set reservation=20m p2/data1

Snapshot:

zfs snapshot p2/data1@backup1 # La creazione dello snapshop e' immediata non richiedere alcuno spazio! # Uno snapshot non e' accedibile direttamente dagli utenti ma bisogna farne una copia zfs clone p2/data1@backup1 p2/data1_bck

Condivisione NFS e CIFS:

zfs set sharenfs=on p2/data1 zfs set sharesmb=on p2/data1

Creazione di un volume condiviso via iSCSI:

# In questo caso serve un volume e non un file system zfs create -s -V 10gb p2/v4iscsi01 zfs set shareiscsi=on p2/v4iscsi01

Tutto chiaro?
Negli esempi non sono indicate le impostazioni per attivare i servizi al boot, configurare /etc/fstab, creare e montare i file system, attivare demoni... perche' NON serve: ZFS fa tutto in automatico!

Altri comandi, utili per controllare lo stato di ZFS, sono:

zpool list
zpool status
zpool status -v
zpool upgrade -v

zfs list
zfs get all
zfs get origin 

zpool history | tail 

zdb

etc

Il concetto di pool non e' una novita'! L'Advanced File System di Digital nel suo sistema operativo Tru64 Unix aveva gia' funzioni analoghe! Ed ancora prima era disponibile la stessa funzionalita' su VMS (che pero' non conosco come ambiente), sempre realizzato da Digital...

Su Linux sono disponibili un altri file system di recente introduzione come: GFS (Global File System) di Red Hat ed OCFS2 di Oracle.

Sul sito ufficiale ZFS e' disponibile tutta la documentazione tra cui la User Guide.


Titolo: ZFS
Livello: Esperto (4/5)
Data: 1 Novembre 2010
Versione: 1.0.1 - 1 Aprile 2012
Autore: mail [AT] meo.bogliolo.name