Når du opgraderer en VPS-instans på Vultr, ændres størrelsen på et Linux-filsystem automatisk. Når du kører FreeBSD med det avancerede ZFS-filsystem, kræves der noget manuelt arbejde. Denne vejledning antager, at vores konto lige er blevet opgraderet til at inkludere mere lagerplads og gennemgår trinene til at ændre størrelsen på en ZFS-diskenhed. I dette eksempel antager vi en installation af FreeBSD eller TrueOS med ZFS som rodfilsystem. Denne tutorial burde fungere til lignende operativsystemer, såsom FreeNAS.
Først vil vi få en idé om størrelsen og layoutet af harddisken. Herfra vil vi antage, at vores harddisk er enhed "vtbd0", den første harddisk i en FreeBSD-installation. For at opdage størrelsen og layoutet af vtbd0 bruger vi gpartkommandoen.
gpart show
Vi vil se en linje, der angiver størrelsen af drevet og dets status. Status, som vi vil se i slutningen af den første linje efter, at drevet bliver ændret, er "ødelagt". Efter denne statuslinje vil der være tre linjer, der fortæller os, hvilke partitioner der er på drevet, hvilke filsystemer der er i brug og størrelsen på hver partition. Den første partition vil sandsynligvis være en "BIOS-boot"-partition, den anden er vores ZFS-volumen, og den tredje er ofte swap-plads. Dette er det layout, som vi vil antage i forbindelse med dette eksempel. Hver partition er tildelt et indeksnummer. I dette tilfælde er indeksnumrene "1" for BIOS-startpartitionen, "2" for ZFS-diskenheden og "3" for swap. Dit layout og indeksnumre kan variere.
Den næste ting, vi skal gøre, er at gendanne drevets layout, så det ikke længere vises som "ødelagt". Kør følgende kommando:
gpart recover vtbd0
Vi skulle straks se en besked, der siger "vtbd0 gendannet". Dobbelttjek drevets status ved at køre gpart showigen. Næste trin er at håndtere swap-partitionen. Hvis vores swap-partition kommer efter vores ZFS-pulje på drevet, kan det komme i vejen for den voksende ZFS-volumen. Vi vil tage swap off-line og fjerne swap-partitionen ved at køre:
swapoff -a
gpart delete -i 3 vtbd0
Disse kommandoer slår swap-plads fra og sletter partition "3" (swap-partitionen). Sørg for at køre gpart showfør du kører for gpart deleteat sikre, at du fjerner den korrekte partition.
Vores næste trin er at ændre størrelsen på ZFS-partitionen. Vi kan tage en af to tilgange her. Hvis vi beslutter, at vi slet ikke har brug for swap-plads, så kan vi overtage al ledig plads på drevet og tildele den til vores ZFS-partition ved at køre:
gpart resize -i 2 vtbd0
Alternativt, hvis vi vil fortsætte med at bruge swap space, så kan vi ændre resize-kommandoen lidt. Lad os antage, at ZFS-partitionen i øjeblikket er 10 GB, og vi vil ændre størrelsen på den til 20 GB. Vi ville udføre:
gpart resize -i 2 -s 20g vtbd0
Parameteren "-s 20g" fortæller gpart at den skal ændre størrelsen på den anden partition til 20 GB. Vi kan bekræfte, at denne handling blev gennemført med succes ved at køre gpart show. Den gpart showkommando vil også vise os, hvor meget plads der er tilgængelig i slutningen af drevet til en ny swap-partition.
På dette tidspunkt vil kontrol af størrelsen på vores ZFS-opbevaringspulje stadig vise den tidligere størrelse.
zpool list
For at fortælle filsystemet om at udvide og overtage hele den anden partition på vores drev, skal du udføre følgende:
zpool online -e tank vtbd0p2
Ovenstående kommando ændrer størrelsen på ZFS-lagerpuljen med navnet "tank" og overtager hele den anden partition på harddisken. "p2" i slutningen af linjen indikerer, at vi arbejder med den anden partition, og hvis layoutet på dit drev er anderledes, skal tallet efter "p" matche ZFS partitionsindekset. Husk, du kan vise partitionsindekset med gpart show.
På dette tidspunkt er vi næsten færdige. Hvis du ikke har brug for at bytte plads, er din opsætning færdig. Kør for zpool listat bekræfte, at opbevaringspuljen har den rigtige, større størrelse.
Ellers har du efterladt plads i slutningen af drevet til en swap-partition. Vi kan tilføje swap-plads igen ved at køre et par kommandoer. Først opretter vi en ny bytteplads:
gpart add -t freebsd-swap -s 1g -i 3 vtbd0
Denne kommando opretter en swap-partition på 1 GB. Den nye partition føjes til vores harddisk og får indeksnummeret "3". Vores næste skridt er at aktivere swap-pladsen, så vores operativsystem kan gøre brug af den nye partition.
swapon /dev/vtbd0p3
Endnu en gang indikerer "p3" i slutningen af linjen, at vores swap-partition blev tildelt indeks "3". Hvis vi brugte et andet indeks, så skulle tallet ændres for at afspejle swap-indeksnummeret i output genereret af gpart show. Vi kan bekræfte, at swap space er aktiveret og fungerer ved at køre kommandoen:
swapctl -l -h
Dette vil vise, at 1 GB swap-plads er i brug.
Til sidst en advarsel. Fjernelse/gentilføje af swap-plads ændrer etiketten på swap-partitionen. Det betyder, at swap-indgangen i /etc/fstabfilen ikke længere vil blive betragtet som gyldig. Derfor vil swap-plads ikke blive aktiveret, efter at operativsystemet er genstartet. For at undgå dette problem skal du åbne /etc/fstabfilen og finde den linje, der monterer swap-plads. Sørg for, at begyndelsen af linjen viser den partition, vi lige har oprettet, /dev/vtbd0p3, som swap-enheden.