Gå til innhold

Utvide diskplassen på en virtuell appliance

De virtuelle appliancene fylles opp: opptak, arkiver, databaser og logger hoper seg opp på partisjonene som rommer dem. Denne siden utvider en av disse partisjonene, slik at den bruker all plassen som er tilgjengelig på disken — på en Mediation Controller eller på en Edge Gateway.

Operasjonen utføres normalt i drift, uten innvirkning på produksjonen.

Én betingelse, og den er ikke til forhandling

Kommandoene nedenfor forutsetter diskoppsettet og partisjoneringen som leveres med appliancen. Hvis diskene eller partisjoneringen på denne virtuelle maskinen er endret manuelt, gjelder de ikke: de sletter og gjenoppretter en partisjon, og de ville gjøre det ut fra forutsetninger som ikke lenger holder. Kontakt i så fall Systancia-supporten i stedet for å tilpasse kommandoene selv.

Én enkelt endring tolereres: den som nettopp denne prosedyren allerede har gjort. Siden er ment å kunne brukes igjen — en appliance som er utvidet på denne måten, er fortsatt omfattet, og hver ny forstørrelse av den virtuelle disken gis videre til partisjonen på samme måte.

Før du går i gang

Gå gjennom disse fire trinnene i rekkefølge. Det første er det som gjør det mulig å komme tilbake etter de øvrige.

1. Ta en sikkerhetskopi av den virtuelle maskinen

Ta en sikkerhetskopi av den virtuelle maskinen før du gjør noe annet. Utvidelsen skriver om partisjonstabellen: en sikkerhetskopi er det som gjør en mislykket operasjon til en gjenoppretting i stedet for en ominstallasjon.

2. Utvid den virtuelle disken fra hypervisoren

Legg til den nødvendige plassen på disken til appliancen, fra hypervisoren din. Dette trinnet alene endrer ingenting inne i maskinen — operativsystemet ser fortsatt den tidligere størrelsen til kommandoene nedenfor kjøres.

Er alternativet nedtonet? Se etter et snapshot

En hypervisor nekter å utvide disken på en virtuell maskin som har et snapshot. Hvis alternativet ikke er tilgjengelig, kontroller om det fortsatt finnes et, og fjern det — utvid deretter disken.

3. Ta eventuelt et snapshot

Når disken er utvidet, kan du ta et snapshot av maskinen som en umiddelbar vei tilbake for kommandoene som følger. Ta det etter diskutvidelsen, aldri før: et snapshot er nettopp det som ville hindre den utvidelsen.

4. Bruk utvidelsen inne i appliancen

Først deretter kjører du kommandoene i den neste delen.

Hvilken partisjon som skal utvides

Kommandoene tar en katalog og utvider partisjonen som rommer den. Enhver katalog i systemet kan angis, med ett unntak.

/boot er utelukket

Ikke sikt mot /boot. Kommandoene arbeider på LVM-volumet til appliancen, som /boot holdes utenfor. Feltet nedenfor avviser den banen.

I praksis vokser to kataloger per appliance raskere enn de øvrige — de er den vanlige grunnen til å kjøre denne prosedyren:

Appliance Katalog Hva den inneholder
Mediation Controller /var Dataene til Mediation Controller, blant dem databasen.
Mediation Controller /var/log Systemloggene.
Edge Gateway /var/lib/ipdiva/carerecord/archives De grafiske arkivene fra øktene som er tatt opp.
Edge Gateway /var/log Systemloggene.

Du angir en katalog, ikke en partisjon

Du trenger ikke å vite hvilken partisjon eller hvilket logisk volum som rommer hva: kommandoene leser det ut fra katalogen du gir dem. Kjør df -h på appliancen for å se hvilken som er i ferd med å gå tom.

Utvid partisjonen

Åpne en SSH-økt på appliancen som root, og kjør deretter kommandoene som passer til den.

Du kan tilpasse variabelen i de følgende kommandoene:

Tilpasset verdi Variabel Kommentar
TARGET_DIRECTORY Katalog med partisjonen som skal utvides — se Hvilken partisjon som skal utvides.

Eller fyll feltet med en av de tre katalogene som fylles opp først:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
directory=TARGET_DIRECTORY

echo 1 > /sys/class/block/sda/device/rescan

start_lvm_partition=`fdisk -l /dev/sda | grep LVM | awk '{print $2}'`
mountpoint=`df $directory | awk 'NR==2 {print $1}'`

echo -e "d\n2\nn\ne\n2\n\n\nn\n$start_lvm_partition\n\nn\nt\n5\n8E\nw" | fdisk /dev/sda

pvresize /dev/sda5
lvresize -l +100%FREE $mountpoint
resize2fs $mountpoint
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
directory=TARGET_DIRECTORY

echo 1 > /sys/class/block/sda/device/rescan

start_last_lvm_partition=`fdisk -l /dev/sda | grep LVM | awk '{print $2}' | sort -nr | head -n1`
last_lvm_partition=`fdisk -l /dev/sda | grep $start_last_lvm_partition | awk '{print $1}'`
mountpoint=`df $directory | awk 'NR==2 {print $1}'`

echo -e "d\n${last_lvm_partition: -1}\nn\np\n${last_lvm_partition: -1}\n$start_last_lvm_partition\n\nn\nt\n${last_lvm_partition: -1}\n8E\nw" | fdisk /dev/sda

pvresize $last_lvm_partition
lvresize -l +100%FREE $mountpoint
resize2fs $mountpoint

Hva kommandoene gjør

De kjeder sammen fire operasjoner: får kjernen til å se den nye diskstørrelsen uten omstart, skriver om den siste LVM-partisjonen slik at den når til slutten av disken, gir den plassen videre til LVM, og utvider deretter filsystemet ut på den. De to variantene skiller seg bare i partisjonsoppsettet på hver appliance — velg den som passer til maskinen du er på.

Kontroller den ledige plassen før og etter

Kjør df -h på katalogen før og etter. Gevinsten må svare til plassen som ble lagt til i trinn 2.

Hvis filsystemet ikke har vokst, skal du ikke kjøre kommandoene på nytt med det samme: partisjonstabellen er allerede skrevet om, og en ny kjøring over den samme diskstørrelsen ville ta utgangspunkt i en tilstand som de ikke forventer. Meld i stedet resultatet til Systancia-supporten.

Det er legitimt å kjøre dem igjen i ett tilfelle, og det er det vanlige: når det er lagt til mer plass på den virtuelle disken. Start på nytt fra trinn 1 — hele prosedyren gjelder igjen, sikkerhetskopien inkludert.