Proxmox
Nützliches zur Virtualisierungslösung Proxmox
LXC Container umziehen
Einfaches Backup-Script um Container von einem Storage auf ein anderes umzuziehen
(C) by James Coyle
#!/bin/bash
#
# Filename : migrate
# Description : Migrate Proxmox OpenVZ container from one storage to another
# Author : James Coyle
#
# Version:
# -Date -Author -Description
# 20-11-2013 James Coyle Initial
# 13-12-2017 James Coyle Changes for LXC
#
#
# Variables
TMP=/tmp #Location to use to create the backup for transferring to new storage. This needs to be big enough to store the backup archive for the container.
# Do not edit
usage() {
echo "Usage: $0"
echo " [-c Required: Container ID to migrate <int>] "
echo " [-s Required: Target storage ID <string>]"
echo " [-d Optional: Delete the backup file after CT restoration <boolean>]"
echo ""
echo "Example: $0 -c 100 -s nasarray"
echo ""
exit 1;
}
while getopts "c:s:d" o; do
case "${o}" in
c)
CT=${OPTARG}
;;
s)
TARGET_STORAGE=${OPTARG}
;;
d)
DELETE=true
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
# Check mandatory fields
if [ -z "${CT}" ] || [ -z "${TARGET_STORAGE}" ]; then
usage
fi
RUNNING=false
set -e
set -o pipefail
echo "Moving $CT to $TARGET_STORAGE..."
if pct list| fgrep -w -q "$CT" | grep "running"
then
RUNNING=true
fi
if $RUNNING
then
pct stop $CT
fi
vzdump --dumpdir $TMP $CT
ARCHIVE=$(ls -t $TMP/vzdump-lxc-$CT-*.tar | head -n 1)
pct restore $CT $ARCHIVE -force -storage $TARGET_STORAGE
if $RUNNING
then
pct start $CT
fi
if $DELETE
then
LOG=$(ls -t $TMP/vzdump-lxc-$CT-*.log | head -n 1)
echo "Deleting $LOG and $ARCHIVE"
rm -rf $ARCHIVE $TMP/$LOG
fi
qcow2 Images vergrößern / verkleinern
Images vergrößern
-
VM herunterfahren
-
folgenden Befehl eingeben:
qemu-img resize image.qcow2 +SIZE
-
Ab hier unterscheiden die die Vorgehensweisen bei Linux- und Windows VMs
Linux-VM:
die VM mit einer Live-DVD von gParted booten und das Dateisystem auf die neue Größe anpassen,
Windows VM:
Per Rechtsklick auf „Computer“ im Startmenü in die Verwaltung wechseln
Über die Auswahl auf der linken Seite in die Datenträgerverwaltung wechseln und dort die Systemfestplatte auswählen und per Rechtsklick darauf die Funktion „Volume erweitern…“ auswählen
Im sich öffnenden Fenster durchklicken bis man zu dieser Ansicht gelangt, dabei ist sicherzustellen dass der dazugewonnene Speicher auf der Ausgewählt Seite steht
Nun das ganze mit Klicks auf Weiter und Fertigstellen abschließen, nach einem kurzen Moment wird die neue Datenträgergröße angezeigt
Images verkleinern
-
VM herunterfahren, anschließend mit einer Live-DVD von gParted booten und das Dateisystem verkleinern auf die gewünschte und vor allem mögliche Größe - Man kann eine Festplatte nicht kleiner machen als die insgesamt auf ihr gespeicherten Daten ohne einen kompletten Verlust eben jener befürchten zu müssen!!!
-
Ein neues Image erstellen in der neuen gewünschten Größe
qemu-img create -f qcow2 -o preallocation=metadata newimage.qcow2 NEW_SIZE
-
Die Daten vom alten, größeren Image in das neue, kleinere Image kopieren
virt-resize oldimage.qcow2 newimage.qcow2
Sollte das im vorherigen Schritt erstellte Image größer sein als die sich aktuell auf dem alten Image befindlichen Daten wird
virt-resize
eine Meldung ausgeben und ggf. eine zweite Partition mit dem übrig gebliebenem Speicherplatz erstellen - Im gegenteiligen Fall wirdvirt-resize
die Aktion abbrechen und eine Meldung ausgeben wie viel Speicherplatz fehlt um die Aktion ausführen zu können -
Die VM starten. Dabei kann es zu Fehlermeldungen kommen aufgrund von alten Datenträgerinformationen, diese sollte das Betriebssystem jedoch automatisch beheben können
-
Sollte nach dem erfolgreichen Booten der VM alles funktionieren kann das alte Image gelöscht werden