Home > Comandi Console, Dischi, Linux, Sistema, Ubuntu, ZFS > ZFS: Creazione di un nuovo pool

ZFS: Creazione di un nuovo pool

02 maggio 2008

L’utilizzo di ZFS richiede la creazione di un pool atto a contenere i file systems ZFS. Un pool può essere formato da uno o più elementi disco (Virtual Devices o vdev), siano essi hard disk interi, partizioni di un disco o anche semplici files. La somma di tutti i dispositivi messi a disposizione di un pool forma la dimensione totale del pool; i file system al suo interno condivideranno tutti assieme questo spazio.

Dopo aver naturalmente installato zfs-fuse, la sintassi per la creazione di un nuovo pool sarà:

sudo zpool create [-n] [-R root] [-m mountpoint] pool vdev1 [vdev2] [...]

Basterà decidere un nome per il pool e il dispositivo da formattare sia esso un hard disk specificando ad esempio /dev/sdc per indicare il terzo disco, oppure una partizione con /dev/sdc1 oppure un singolo file con /percorso/nomefile.

Prestare particolarmente attenzione al nome del dispositivo sia perché non indicando il percorso completo verrà utilizzato automaticamente il dispositivo presente nella directory /dev con quel nome. Ad esempio indicando sda1 verrà automaticamente utilizzato il dispositivo /dev/sda1. Inoltre non sarà effettuato alcun controllo sul dispositivo, anche se esso è già utilizzato oppure montato.

Per creare un nuovo pool di nome utenti usando l’intero disco /dev/sdb:

sudo zpool create utenti /dev/sdb

Verrà formattato il dispositivo e creato il pool utenti e montato su /utenti. Infatti il percorso predefinito corrisponde a /pool col nome del pool. Qualora fosse necessario cambiare il percorso dove montare il pool è possibile utilizzare l’opzione -m, ad esempio:

sudo zpool create -m /condivisioni utenti /dev/sdb

Il pool utenti sarà montato sotto /condivisioni.

Un pool tuttavia può essere composto da più dispositivi uniti tra loro per ampliare lo spazio a disposizione semplicemente indicando i vari dispositivi nella creazione del pool:

sudo pool create utenti /dev/sdb /dev/sdc1 /dev/sdc2

Il pool utenti verrà creato usando l’intero disco sdb e le prime due partizioni del disco sdc. E’ anche possibile utilizzare un file anziché un disco o una partizione dati, che può essere allocato semplicemente con:

sudo dd if=/dev/zero of=/utenti.zfs bs=1M count=10000

Il parametro count indicherà il numero di MB da allocare per quel file che poi potrà essere utilizzato come parte del pool, semplicemente indicandone il percorso completo:

sudo zpool create utenti /utenti.zfs

Il parametro -n nella creazione del pool consente di vedere che tipo di operazione sarà svolta e se essa è sintatticamente valida ma non esegue la creazione del pool e la scrittura su disco:

sudo zpool create -n utenti /utenti.zfs

Tutti i pool creati saranno disponibili automaticamente anche dopo il riavvio del sistema ma se dovesse essere necessario agire diversamente e non rendere disponibile il pool ZFS anche dopo il riavvio è possibile utilizzare il parametro -R e indicare il percorso dove montarlo durante la creazione:

sudo zpool create -R /media/zfsutenti utenti /utenti.zfs

Ciò creerà il pool di nome utenti, usando il file /utenti.zfs e montando temporaneamente il volume dentro /media/zfsutenti. Questo parametro differisce dal parametro -m visto in precedenza che invece assegna solamente un mount point differente ma persistente anche dopo il riavvio del sistema mentre il parametro -R stabilisce una nuova radice dove montare il pool, non persistente dopo il riavvio.

Creato il pool, sarà sin da subito possibile utilizzarlo, copiando o creando i files desiderati all’interno della cartella dove è stato montato. Se non è stato specificato il parametro -R dopo il riavvio il pool e i suoi dati saranno nuovamente disponibili, senza quindi alcuna necessità di montaggio o smontaggio del pool.

Si raccomanda sempre la massima attenzione nell’uso dei comandi di creazione dei pool poiché non viene apportato alcun controllo sul dispositivo da utilizzare, col rischio di sovrascrivere con un solo comando tutti i dati del sistema. Utilizzare sempre i percorsi assoluti nei nomi di files per esser sicuri di richiamare il file giusto e non un dispositivo con lo stesso nome.

  1. 02 maggio 2008 alle 11:14

    non l’ho ancora provato…
    ne ho cercato

    ti chiedo, se percaso lo sai, è possibile usare ZFS come filesystem per l’intero sistema (Linux ovviamente)?
    o per ora solo come contenitore di dati?

  2. 02 maggio 2008 alle 19:23

    mastro purtroppo non è possibile, non esistendo alcun modulo kernel per zfs.
    zfs-fuse gira su fuse (file-system in user land) ovvero in modalità utente e non come modulo kernel, non potrebbe quindi nemmeno avviare il sistema

    vista la licenza CDDL di ZFS, più volte discussa e rigettata dalla Free software foundation, presumo che non nascerà mai un modulo kernel per zfs, almeno non ufficialmente

    suppongo che il massimo che si possa fare è utilizzarla per partizioni quali home, usr, var, tmp e swap, ma non boot nè root.
    inoltre zfs-fuse non si dichiara stabilissimo e affidabile per obiettivi critici

  3. FAbio
    21 novembre 2009 alle 18:02

    Ti devo davvero ringraziare. Una guida in italiano mi serviva proprio, anche se ho utilizzano i man-page non mi era chiaro la funzionalità del parametro pool.
    Adesso ho una chiavetta in filesystem zfs, faccio qualche test e vediamo se è valido il zfs-fuse.

    Ma /pool che è la radice di default, sarebbe la radice all’interno della partizione formattata?

    Cmq ancora grazie🙂

  1. No trackbacks yet.
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: