Questa sezione descrive le nuove funzioni di ZFS nella versione Developer 1/08.
Uso dei dispositivi cache nel pool di storage ZFS – In questa versione di Solaris, è possibile creare un pool di storage e specificare i dispositivi cache da utilizzare per la scrittura dei dati di quel pool.
I dispositivi cache rappresentano un livello aggiuntivo di memorizzazione nella cache, situato tra la memoria principale e il disco. L'uso dei dispositivi cache offre un notevole incremento delle prestazioni, in particolare quando i carichi di lavoro richiedono la lettura casuale di contenuti prevalentemente statici.
Durante la creazione del pool è possibile specificare uno o più dispositivi cache. Ad esempio:
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors |
Una volta creato un dispositivo cache, questo viene gradualmente riempito con i contenuti della memoria principale. A seconda delle dimensioni del dispositivo cache, prima che lo spazio disponibile si esaurisca può trascorrere un'ora o più. La capacità e le letture possono essere monitorate con il comando zpool iostat:
# zpool iostat -v pool 5 |
I dispositivi cache possono essere aggiunti o rimossi dal pool dopo la sua creazione.
Per maggiori informazioni, vedere zpool(1M) e ZFS Administration Guide .
Miglioramenti al comando zfs send – In questa versione sono stati introdotti i seguenti miglioramenti al comando zfs send.
È possibile inviare tutti i flussi incrementali provenienti da uno stesso snapshot a uno snapshot cumulativo. Ad esempio:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo |
È possibile inviare tutti gli snapshot incrementali tra fs@snapA e fs@snapD a fs@combo.
È possibile inviare un flusso incrementale dallo snapshot di origine per creare un clone. Perché il flusso incrementale venga accettato, lo snapshot originale deve essere già presente sul lato di ricezione. Ad esempio:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I |
È possibile inviare un flusso di replicazione che includa tutti i file system discendenti fino agli snapshot specificati. Alla ricezione, verranno preservate tutte le proprietà, gli snapshot, i file system discendenti e i cloni. Ad esempio:
zfs send -R pool/fs@snap > snaps/fs-R |
Per esempi più dettagliati, vedere Sending and Receiving Complex ZFS Snapshot Streams in ZFS Administration Guide .
È possibile inviare un flusso di replicazione incrementale.
zfs send -R -[iI] @snapA pool/fs@snapD |
Per esempi più dettagliati, vedere Sending and Receiving Complex ZFS Snapshot Streams in ZFS Administration Guide .
Per maggiori informazioni, vedere Saving and Restoring ZFS Data in ZFS Administration Guide .
Quote e prenotazioni ZFS limitate ai dati dei file system – Oltre alle quote e alle riserve precedentemente disponibili in ZFS, questa versione include quote e prenotazioni specifiche per i set di dati che non includono i discendenti, ad esempio gli snapshot e i cloni, nel calcolo dell'occupazione di spazio.
La proprietà refquota limita la quantità di spazio che può essere occupata da un set di dati. Questa proprietà impone un limite fisico alla quantità di spazio utilizzabile. Tale limite fisico non include lo spazio utilizzato dai discendenti, ad esempio dagli snapshot o dai cloni.
La proprietà refreservation imposta la quantità di spazio minima garantita per i set di dati, esclusi i relativi discendenti.
Ad esempio, è possibile impostare una refquota di 10 Gbyte per lo studenteA che fissi un limite fisico di 10 Gbyte per lo spazio referenziato. Per ottenere una maggiore flessibilità, è possibile impostare una quota di 20 Gbyte che consenta di gestire gli snapshot dello studenteA.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA |
Per maggiori informazioni, vedere ZFS Quotas and Reservations in ZFS Administration Guide .
Proprietà dei file system ZFS per il servizio CIFS di Solaris – Questa versione supporta il servizio CIFS (Common Internet File System) di Solaris. Questo prodotto offre la possibilità di condividere i file tra i sistemi Solaris e i sistemi Windows o MacOS.
Per facilitare la condivisione dei file tra questi sistemi usando il servizio CIFS di Solaris, sono disponibili nuove proprietà di ZFS:
Supporto di maiuscole e minuscole (casesensitivity)
Blocchi obbligatori non bloccanti (nbmand)
Supporto delle condivisioni SMB (sharesmb)
Supporto della normalizzazione Unicode (normalization)
Supporto dei set di caratteri UTF-8 (utf8only)
Oltre alle proprietà di ZFS aggiunte per il supporto del software CIFS di Solaris, la proprietà vscan permette la scansione dei file ZFS quando si utilizza un motore di scansione antivirus di terze parti.
Per maggiori informazioni sull'uso di queste proprietà, vedere Managing ZFS Properties in ZFS Administration Guide .
Per maggiori informazioni sul servizio CIFS di Solaris, vedere il manuale Solaris CIFS Administration Guide .
Proprietà dei pool di storage ZFS – Questa versione fornisce informazioni sulle proprietà dei pool ZFS. Ad esempio:
# zpool get all users NAME PROPERTY VALUE SOURCE users size 16.8G - users used 217M - users available 16.5G - users capacity 1% - users altroot - default users health ONLINE - users guid 11063207170669925585 - users version 8 default users bootfs - default users delegation on default users autoreplace off default users temporary on local |
Proprietà cachefile – Questa versione contiene la proprietà cachefile, che controlla la posizione della cache in cui vengono scritte le informazioni di configurazione del pool. All'avvio del sistema vengono automaticamente importati tutti i pool memorizzati nella cache. Negli ambienti di installazione e di clustering, tuttavia, può essere necessario memorizzare queste informazioni in una posizione differente per evitare l'importazione automatica dei pool.
Questa proprietà permette di salvare la configurazione dei pool in una posizione diversa nella cache, che potrà essere importata successivamente con il comando zpool import c. Per la maggior parte delle configurazioni ZFS, questa proprietà non è necessaria.
La proprietà cachefile non è persistente e non viene memorizzata su disco. Sostituisce la proprietà temporary, usata nelle precedenti versioni di Solaris per impedire che le informazioni sui pool venissero memorizzate nella cache.
Proprietà failmode – Questa versione utilizza la proprietà failmode per determinare il comportamento dei pool in seguito a un errore irrecuperabile dovuto alla perdita di connettività di un dispositivo o all'interruzione di tutti i dispositivi del pool. La proprietà failmode può essere impostata sui seguenti valori: wait, continue o panic. Il valore predefinito è wait; con questa impostazione, è necessario riconnettere o sostituire il dispositivo ed eliminare la condizione di errore con il comando zpool clear.
La proprietà failmode può essere impostata come le altre proprietà di ZFS e può essere definita sia prima che dopo la creazione del pool. Ad esempio:
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local |
# zpool create -o failmode=continue |
Per una descrizione completa delle proprietà di ZFS, vedere Managing ZFS Storage Pool Properties in ZFS Administration Guide .
Attivazione dei mirror di file system e ZFS – In questa versione di Solaris, l'attivazione via NFSv4 è stata migliorata per rendere i file system ZFS più accessibili ai client NFS.
Quando si crea un file system sul server NFS, il client NFS può rilevare automaticamente il nuovo file system all'interno del punto di attivazione esistente di un file system di livello superiore.
Ad esempio, se il server neo condivide il file system tank e il client zee ha attivato questo file system, /tank/baz diventa automaticamente visibile sul client dopo la sua creazione sul server.
zee# mount neo:/tank /mnt zee# ls /mnt baa bar neo# zfs create tank/baz zee% ls /mnt baa bar baz zee% ls /mnt/baz file1 file2 |
Vedere le sezioni successive per informazioni legate a ZFS: