Laboratorio di ZFS (di Luca C. - marzo 2014 - versione 1.1) Storia ------ ZFS è un file system open source sviluppato dalla Sun Microsystems per il suo sistema operativo Solaris annunciato nel settembre del 2004. È stato eseguito il porting su Linux. È da notare che, a causa della licenza che protegge ZFS, esso non può essere integrato nel kernel ma deve necessariamente operare a livello utente tramite FUSE: questo vincolo preclude qualunque utilizzo di ZFS su GNU/Linux in attività di produzione, in quanto un filesystem a livello utente non è accettabile per prestazioni e stabilità. Tuttavia, è possibile utilizzare ZFS come modulo esterno, permettendo agli utenti di utilizzare questo file system con prestazioni native, attraverso il progetto ZFS on Linux[7]. Questo è possibile in quanto l'incompatibilità tra la licenza GNU GPL (con cui è licenziato il kernel Linux) e la CDDL si limita solo all'integrazione diretta di tale file system nel kernel. Ciò vuol dire che non si potrà distribuire un kernel con integrato ZFS, ma lo si potrà distribuire come un modulo esterno. Vantaggi -------- * Capacità: 128-bit contro i 32-bit di altri file system quindi enorme capacità del filesystem (fino a 2^128 byte) * Protezione avanzata dei dati: checksum e strutture dati sempre congruenti * Sempre online: nessuna necessità di mettere lo storage offline per svolgere compiti amministrativi * Operatività più veloce: qualche secondo per creare un nuovo file system * Riduzione dei costi: amministrazione più semplice e gestione flessibile dei volumi con funzionalità automatiche di bilanciamento dinamico del carico e logging * Integra file system con volume manager * Compressione * Snapshot rapidi Laboratorio 1: raidz --------------------- Creare un pool in **raidz (raid5)** Requisiti: n dischi stessa dimensione. Se non sono della stessa dimensione, partizionare e usare la parzione fdisk -l | grep dev Disco /dev/sdb: 1073 MB, 1073741824 byte Disco /dev/sdc: 1073 MB, 1073741824 byte Disco /dev/sdd1: 1073 MB, 1073741824 byte Disco /dev/sde: 1073 MB, 1073741824 byte Disco /dev/sdf: 1073 MB, 1073741824 byte **preparazione del pool:** *(una sorta di raggruppamento dei device in volumi)* zpool create TANK raidz /dev/sdb /dev/sdc /dev/sdd1 /dev/sde /dev/sdf zpool status **creazione del FS:** *(creazione del FS vero e proprio)* zfs create TANK/vol1 zfs list NAME USED AVAIL REFER MOUNTPOINT TANK 468M 3,45G 35,1K /TANK TANK/vol1 467M 3,45G 467M /TANK/vol1 **opzioni:** zfs set compression=on TANK/vol1 **tests:** zpool offline TANK /dev/sdb zpool status zpool offline TANK /dev/sdb zpool status scollegare fisicamente 1 disco e vedere cosa accade. dare un: zpool scrub TANK **esportare volume** *(smontaggio e spegnimento volumi)* zpool export TANK Laboratorio 2: mirror --------------------- **Distruggere il pool precedente** per riutilizzare i dischi: zpool destroy TANK /dev/sdb /dev/sdc **preparazione del pool:** zpool create TANK2 mirror c1t0d0 c2t0d0 zpool status **creazione del FS:** zfs create TANK2/volume-sicuro zfs list Links: zfs_appunti.md zfs_appunti.pdf
Annunci