Se si crea un ambiente di boot dal sistema in uso, il comando lucreate copia il file system radice (/) UFS in un pool radice ZFS. Il processo di copia può richiedere un certo tempo, in base al sistema utilizzato.
Quando si esegue la migrazione da un file system UFS, l'ambiente di boot di origine può essere un file system radice (/) UFS o la slice di un disco. Non è possibile creare un ambiente di boot su un file system UFS da un ambiente di boot di origine che si trova su un pool radice ZFS.
I seguenti comandi creano un pool radice ZFS e un nuovo ambiente di boot da un file system radice (/) UFS nel pool radice ZFS. Il pool radice ZFS deve esistere prima dell'esecuzione di lucreate e deve essere creato a partire da una slice anziché da un intero disco per essere aggiornabile e avviabile. Il disco non può contenere un'etichetta EFI, ma deve avere un'etichetta SMI. Per un elenco più completo delle limitazioni, vedere Requisiti e limitazioni per l'utilizzo di Solaris Live Upgrade.
La Figura 11–1 mostra l'utilizzo del comando zpool per creare un pool radice, rpool su una slice separata, c0t1d0s5. La slice del disco c0t0d0s0 contiene un file system radice (/) UFS. Nel comando lucreate, l'opzione -c indica il sistema in esecuzione, c0t0d0, che è un file system radice (/) UFS. L'opzione -n assegna un nome all'ambiente di boot da creare, nuovo-BE-zfs. L'opzione -p indica dove posizionare il nuovo ambiente di boot, rpool. Il file system UFS /export e il volume /swap non vengono copiati nel nuovo ambiente di boot.
Questo esempio mostra gli stessi comandi descritti nella Figura 11–1. I comandi creano un nuovo pool radice, rpool, e un nuovo ambiente di boot nel pool dal file system radice (/) UFS. In questo esempio, il comando zfs list mostra il pool radice ZFS creato dal comando zpool. Il successivo comando zfs list mostra i set di dati creati dal comando lucreate.
# zpool create rpool c0t1d0s5 # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 9.29G 57.6G 20K /rpool |
# lucreate -c c0t0d0 -n new-zfsBE -p rpool # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 9.29G 57.6G 20K /rpool rpool/ROOT 5.38G 57.6G 18K /rpool/ROOT rpool/ROOT/new-zfsBE 5.38G 57.6G 551M /tmp/.alt.luupdall.110034 rpool/dump 1.95G - 1.95G - rpool/swap 1.95G - 1.95G - |
Il nuovo ambiente di boot è rpool/ROOT/nuovo-BE-zfs. L'ambiente di boot, nuovo-BE-zfs, è pronto per essere aggiornato e attivato.
È possibile eseguire la migrazione di un file system UFS anche se sul sistema sono presenti volumi di Solaris Volume Manager (SVM). Per creare un ambiente di boot UFS da una configurazione SVM esistente, è necessario creare un nuovo ambiente di boot dal sistema in uso. Quindi creare l'ambiente di boot ZFS dal nuovo ambiente di boot UFS.
Panoramica su Solaris Volume Manager (SVM). ZFS utilizza il concetto di pool di memorizzazione per gestire lo spazio fisico disponibile sui dischi. Tradizionalmente, i file system venivano creati su un singolo dispositivo fisico. Per rispondere all'esigenza di utilizzare più dispositivi e di consentire la ridondanza dei dati, è stato introdotto il concetto di “volume manager” per presentare l'immagine di un singolo dispositivo. In questo modo non è necessario modificare la configurazione dei file system per sfruttare i vantaggi dati dall'utilizzo di più dispositivi. Questo tipo di progettazione ha aggiunto un ulteriore livello di complessità. Tale complessità ha in definitiva ostacolato vari miglioramenti ai file system, in quanto il file system non aveva il controllo sul posizionamento fisico dei dati nei volumi virtualizzati.
I pool di memorizzazione ZFS sostituiscono SVM. ZFS elimina completamente l'esigenza di effettuare una gestione dei volumi. Anziché imporre la creazione di volumi virtualizzati, ZFS aggrega i dispositivi in un pool di memorizzazione. Il pool di memorizzazione descrive le caratteristiche fisiche, ad esempio il layout del dispositivo di memorizzazione e la ridondanza dei dati, e agisce come un archivio di dati generico sul quale è possibile creare i file system. I file system non sono quindi più vincolati ai singoli dispositivi e questo consente loro di condividere lo spazio con tutti i file system inclusi nel pool. Non è più necessario predeterminare la dimensione di un file system, in quanto la dimensione può aumentare automaticamente nell'ambito dello spazio allocato al pool di memorizzazione. Quando si aggiunge un nuovo disco, tutti i file system del pool possono immediatamente utilizzare lo spazio a disposizione senza alcun intervento di amministrazione. Da vari punti di vista, il pool di memorizzazione opera come un sistema di memoria virtuale. Quando viene aggiunto un modulo DIMM di memoria, il sistema operativo non richiede l'esecuzione di alcun comando per configurare la memoria ed assegnarla ai processi. Tutti i processi usano automaticamente la nuova memoria disponibile.
Quando si esegue la migrazione di un sistema su cui sono presenti volumi SVM, tali volumi vengono ignorati. È possibile configurare i mirror nel pool radice come indicato nell'esempio seguente.
In questo esempio, il comando lucreate con l'opzione -m crea un nuovo ambiente di boot dal sistema in uso. La slice del disco c1t0d0s0 contiene un file system radice (/) UFS configurato con volumi SVM. Il comando zpool crea un pool radice, c1t0d0s0, e un volume RAID-1 (mirror), c2t0d0s0. Nel secondo comando lucreate, l'opzione -n assegna un nome all'ambiente di boot da creare, c0t0d0s0. L'opzione -s identifica il file system del root UFS(/). L'opzione -p indica dove posizionare il nuovo ambiente di boot, rpool .
# lucreate -n ufsBE -m /:/dev/md/dsk/d104:ufs # zpool create rpool mirror c0t0d0s0 c0t1d0s0 # lucreate -n c0t0d0s0 -s ufsBE -p rpool |
L'ambiente di boot, c0t0d0s0, è pronto per essere aggiornato e attivato.