Quando si aggiorna un'istanza VPS su Vultr, un file system Linux viene ridimensionato automaticamente. Quando esegui FreeBSD con il file system ZFS avanzato, è necessario un po 'di lavoro manuale. Questa guida presuppone che il nostro account sia appena stato aggiornato per includere più spazio di archiviazione e illustra le fasi del ridimensionamento di un volume ZFS. In questo esempio, ipotizziamo un'installazione di FreeBSD o TrueOS con ZFS come file system radice. Questo tutorial dovrebbe funzionare con sistemi operativi simili, come FreeNAS.
Innanzitutto, avremo un'idea delle dimensioni e del layout del disco rigido. Da qui in avanti, supponiamo che il nostro disco rigido sia il dispositivo "vtbd0", il primo disco rigido in un'installazione di FreeBSD. Per scoprire le dimensioni e il layout di vtbd0, usiamo il gpart
comando.
gpart show
Vedremo una riga che indica la dimensione dell'unità e il suo stato. Lo stato che vedremo alla fine della prima riga dopo il ridimensionamento dell'unità è "danneggiato". Dopo questa riga di stato, ci saranno tre righe che ci diranno quali partizioni sono nell'unità, quali file system sono in uso e le dimensioni di ciascuna partizione. La prima partizione sarà probabilmente una partizione "BIOS-boot", la seconda è il nostro volume ZFS e la terza è spesso spazio di swap. Questo è il layout che assumeremo ai fini di questo esempio. A ogni partizione viene assegnato un numero indice. In questo caso, i numeri di indice sono "1" per la partizione di avvio del BIOS, "2" per il volume ZFS e "3" per lo scambio. Il layout e i numeri di indice possono differire.
La prossima cosa che dobbiamo fare è ripristinare il layout dell'unità in modo che non venga più visualizzato come "danneggiato". Esegui il seguente comando:
gpart recover vtbd0
Dovremmo immediatamente vedere un messaggio che dice "vtbd0 recuperato". Ricontrolla lo stato dell'unità eseguendolo di gpart show
nuovo. Il prossimo passo è gestire la partizione di swap. Se la nostra partizione di swap arriva dopo il nostro pool ZFS sull'unità, potrebbe ostacolare il crescente volume ZFS. Prenderemo lo swap off-line e rimuoveremo la partizione di swap eseguendo:
swapoff -a
gpart delete -i 3 vtbd0
Questi comandi disattivano lo spazio di swap ed eliminano la partizione "3" (la partizione di swap). Assicurati di eseguire gpart show
prima di eseguire gpart delete
per assicurarti di rimuovere la partizione corretta.
Il prossimo passo è ridimensionare la partizione ZFS. Possiamo adottare uno dei due approcci qui. Se decidiamo che non abbiamo bisogno di spazio di swap, possiamo occupare tutto lo spazio libero sull'unità e assegnarlo alla nostra partizione ZFS eseguendo:
gpart resize -i 2 vtbd0
In alternativa, se vogliamo continuare a utilizzare lo spazio di scambio, possiamo modificare un po 'il comando di ridimensionamento. Supponiamo che la partizione ZFS sia attualmente 10 GB e vogliamo ridimensionarla in 20 GB. Eseguiremmo:
gpart resize -i 2 -s 20g vtbd0
Il parametro "-s 20g" indica a gpart di ridimensionare la seconda partizione a 20 GB. Possiamo confermare che questa azione è stata eseguita correttamente eseguendo gpart show
. Il gpart show
comando ci mostrerà anche quanto spazio è disponibile alla fine dell'unità per una nuova partizione di swap.
A questo punto, controllando la dimensione del nostro pool di archiviazione ZFS, verrà comunque visualizzata la dimensione precedente.
zpool list
Per dire al file system di espandersi e assumere l'intera seconda partizione del nostro disco, eseguire quanto segue:
zpool online -e tank vtbd0p2
Il comando sopra ridimensiona il pool di archiviazione ZFS denominato "tank" e assume l'intera seconda partizione del disco rigido. La "p2" alla fine della riga indica che stiamo lavorando con la seconda partizione e, se il layout dell'unità è diverso, il numero dopo la "p" dovrà corrispondere all'indice di partizione ZFS. Ricorda, puoi visualizzare l'indice di partizione con gpart show
.
A questo punto, abbiamo quasi finito. Se non hai bisogno di spazio di scambio, la tua installazione è completa. Esegui zpool list
per confermare che il lotto di memoria ha le dimensioni corrette e maggiori.
Altrimenti, alla fine dell'unità è rimasto spazio per una partizione di swap. Possiamo aggiungere nuovamente spazio di swap eseguendo alcuni comandi. Innanzitutto, creiamo un nuovo spazio di swap:
gpart add -t freebsd-swap -s 1g -i 3 vtbd0
Questo comando crea una partizione di swap di dimensioni pari a 1 GB. La nuova partizione viene aggiunta al nostro disco rigido e viene assegnato il numero di indice "3". La prossima mossa è abilitare lo spazio di swap in modo che il nostro sistema operativo possa utilizzare la nuova partizione.
swapon /dev/vtbd0p3
Ancora una volta, "p3" alla fine della riga indica che la nostra partizione di swap è stata assegnata all'indice "3". Se abbiamo utilizzato un indice diverso, il numero deve essere modificato per riflettere il numero dell'indice di swap nell'output generato da gpart show
. Possiamo confermare che lo spazio di swap è abilitato e funzionante eseguendo il comando:
swapctl -l -h
Ciò mostrerà che è in uso 1 GB di spazio di swap.
Infine, una parola di cautela. La rimozione / aggiunta di spazio di swap modifica l'etichetta della partizione di swap. Ciò significa che la voce di scambio nel /etc/fstab
file non sarà più considerata valida. Pertanto, lo spazio di scambio non verrà abilitato dopo il riavvio del sistema operativo. Per evitare questo problema, apri il /etc/fstab
file e trova la linea che monta lo spazio di scambio. Assicurati che l'inizio della riga elenchi la partizione che abbiamo appena creato /dev/vtbd0p3
, come dispositivo di scambio.