Når du oppgraderer en VPS-instans på Vultr, endres størrelsen på et Linux-filsystem automatisk. Når du kjører FreeBSD med det avanserte ZFS-filsystemet, kreves noe manuelt arbeid. Denne veiledningen antar at kontoen vår nettopp har blitt oppgradert til å inkludere mer lagringsplass og går gjennom trinnene for å endre størrelse på et ZFS-volum. I dette eksemplet antar vi en installasjon av FreeBSD eller TrueOS med ZFS som rotfilsystem. Denne opplæringen skal fungere for lignende operativsystemer, for eksempel FreeNAS.
Først skal vi få en ide om størrelsen og oppsettet til harddisken. Herfra vil vi anta at harddisken vår er enhet "vtbd0", den første harddisken i en FreeBSD-installasjon. For å oppdage størrelsen og oppsettet til vtbd0 bruker vi gpartkommandoen.
gpart show
Vi vil se en linje som indikerer størrelsen på stasjonen og dens status. Statusen som vi vil se på slutten av den første linjen etter at stasjonen har endret størrelse er "ødelagt". Etter denne statuslinjen vil det være tre linjer som forteller oss hvilke partisjoner som er på stasjonen, hvilke filsystemer som er i bruk og størrelsen på hver partisjon. Den første partisjonen vil sannsynligvis være en "BIOS-boot"-partisjon, den andre er ZFS-volumet vårt, og den tredje er ofte bytteplass. Dette er oppsettet som vi vil anta for formålet med dette eksemplet. Hver partisjon er tildelt et indeksnummer. I dette tilfellet er indekstallene "1" for BIOS-oppstartspartisjonen, "2" for ZFS-volumet og "3" for swap. Oppsettet og indeksnumrene kan variere.
Det neste vi må gjøre er å gjenopprette stasjonens layout slik at den ikke lenger vises som "ødelagt". Kjør følgende kommando:
gpart recover vtbd0
Vi bør umiddelbart se en melding som sier "vtbd0 gjenopprettet". Dobbeltsjekk stasjonsstatusen ved å kjøre på gpart shownytt. Neste trinn er å håndtere swap-partisjonen. Hvis swap-partisjonen vår kommer etter ZFS-poolen på stasjonen, kan det komme i veien for det voksende ZFS-volumet. Vi tar swap off-line og fjerner swap-partisjonen ved å kjøre:
swapoff -a
gpart delete -i 3 vtbd0
Disse kommandoene slår av swap space og sletter partisjon "3" (swap-partisjonen). Sørg for å kjøre gpart showfør du kjører for gpart deleteå sikre at du fjerner riktig partisjon.
Vårt neste trinn er å endre størrelsen på ZFS-partisjonen. Vi kan ta en av to tilnærminger her. Hvis vi bestemmer oss for at vi ikke trenger bytteplass i det hele tatt, kan vi ta over all ledig plass på stasjonen og tilordne den til ZFS-partisjonen vår ved å kjøre:
gpart resize -i 2 vtbd0
Alternativt, hvis vi ønsker å fortsette å bruke swap-plass, kan vi endre størrelseskommandoen litt. La oss anta at ZFS-partisjonen for øyeblikket er 10 GB, og vi vil endre størrelsen på den til 20 GB. Vi ville utføre:
gpart resize -i 2 -s 20g vtbd0
Parameteren "-s 20g" forteller gpart å endre størrelsen på den andre partisjonen til 20 GB. Vi kan bekrefte at denne handlingen ble fullført ved å kjøre gpart show. Den gpart showkommandoen vil også vise oss hvor mye plass som er tilgjengelig på slutten av stasjonen for en ny swap partisjon.
På dette tidspunktet vil det å kontrollere størrelsen på ZFS-lagringsbassenget fortsatt vise den forrige størrelsen.
zpool list
For å fortelle filsystemet å utvide og ta over hele den andre partisjonen av stasjonen vår, kjør følgende:
zpool online -e tank vtbd0p2
Kommandoen ovenfor endrer størrelsen på ZFS-lagringspoolen kalt "tank" og tar over hele den andre partisjonen på harddisken. "p2" på slutten av linjen indikerer at vi jobber med den andre partisjonen, og hvis oppsettet til stasjonen din er annerledes, må tallet etter "p" samsvare med ZFS-partisjonsindeksen. Husk at du kan vise partisjonsindeksen med gpart show.
På dette tidspunktet er vi nesten ferdige. Hvis du ikke trenger å bytte plass, er oppsettet ditt fullført. Kjør for zpool listå bekrefte at lagringsbassenget har riktig, større størrelse.
Ellers har du igjen plass på slutten av stasjonen for en swap-partisjon. Vi kan legge til bytteplass på nytt ved å kjøre noen få kommandoer. Først oppretter vi en ny bytteplass:
gpart add -t freebsd-swap -s 1g -i 3 vtbd0
Denne kommandoen oppretter en byttepartisjon på 1 GB. Den nye partisjonen legges til harddisken vår og får indeksnummeret "3". Vårt neste trekk er å aktivere bytteplassen slik at operativsystemet vårt kan bruke den nye partisjonen.
swapon /dev/vtbd0p3
Nok en gang indikerer "p3" på slutten av linjen at swap-partisjonen vår ble tildelt indeksen "3". Hvis vi brukte en annen indeks, bør tallet endres for å gjenspeile swap-indeksnummeret i utdataene generert av gpart show. Vi kan bekrefte at bytteplass er aktivert og fungerer ved å kjøre kommandoen:
swapctl -l -h
Dette vil vise at 1 GB bytteplass er i bruk.
Til slutt et advarselsord. Hvis du fjerner/legger til swap-plass på nytt, endres etiketten til swap-partisjonen. Dette betyr at swap-oppføringen i /etc/fstabfilen ikke lenger anses som gyldig. Derfor vil ikke bytteplass bli aktivert etter at operativsystemet har startet på nytt. For å unngå dette problemet, åpne /etc/fstabfilen og finn linjen som monterer bytteplass. Sørg for at begynnelsen av linjen viser partisjonen som vi nettopp opprettet, /dev/vtbd0p3, som bytteenhet.