Größe der LXC Container mit einem Script anpassen

heute möchte ich euch ein nützliches Skript vorstellen, das ich entwickelt habe, um die Größe eines Proxmox LXC Containers anzupassen. Das Skript ermöglicht es, die Gesamtgröße der Festplatte des Containers nach Bedarf anzupassen. Das Beste daran ist, dass dieser Vorgang mit nur wenigen Schritten erledigt werden kann.

Ich habe das Skript entwickelt, um meine Arbeit mit Proxmox LXC Containern zu erleichtern und Zeit zu sparen. Ich habe mich dabei an diesem Beitrag orientiert.

Lasst uns nun einen Blick auf das Script werfen:

#!/bin/bash
# Script Name:  proxmox-lxc-size-changer.v1.sh
# Beschreibung: Ändert die Größe des LXC Containers auf die gewünschte Gesamtgröße der Disk des Containers
#               Dies gilt primär erstmal nur für die Disk mit der ID 0
# Aufruf:       bash ./proxmox-lxc-size-changer.v1.sh
# Autor:        Patrick Asmus
# Web:          https://www.media-techport.de
# Git-Reposit.: https://git.media-techport.de/scriptos/proxmox-lxc-size-changer
# Version:      1.0
# Datum:        16.07.2023
# Modifikation: Ersterstellung
#####################################################

# Variablen
lxcPath="appdata2"
fullLxcPath="/volumes/${lxcPath}"
containerID="9100"
diskFilename="vm-${containerID}-disk-0.raw"
newSize="12G"
storage="nas02"

# Container stoppen
pct stop $containerID

# Backup erstellen
vzdump $containerID --remove 0 --mode stop --notes-template 'Backup vor Größenänderung durch Script' --storage $storage

# Dateisystemprüfung
e2fsck -fy "${fullLxcPath}/images/${containerID}/${diskFilename}"

# Größe des LXC anpassen
resize2fs "${fullLxcPath}/images/${containerID}/${diskFilename}" $newSize

# Konfiguration anpassen
configFile="/etc/pve/lxc/${containerID}.conf"
sed -i "s|rootfs: ${lxcPath}:${containerID}/${diskFilename},size=.*|rootfs: ${lxcPath}:${containerID}/${diskFilename},size=${newSize}|" $configFile

# Container starten
pct start $containerID

Die Variablen sind folgendermaßen auszufüllen:

  • lxcPath: Der Storage, in dem der Container gemountet ist (Proxmox-Webinterface -> Rechenzentrum -> Storage)
  • fullLxcPath: Der Pfad zum LXC-Container im Proxmox-Dateisystem
  • containerID: Die ID des LXC-Containers, dessen Größe geändert werden soll
  • diskFilename: Der Dateiname der Disk des Containers
  • newSize: Die gewünschte neue Größe für die Container-Disk
  • storage: Der Name des Proxmox-Speichers, in dem das Backup gespeichert wird

Der Hauptteil des Skripts besteht aus verschiedenen Schritten, um die Größe des LXC Containers anzupassen. Zunächst wird der Container mit der angegebenen Container-ID gestoppt, um sicherzustellen, dass keine Schreibvorgänge während des Größenänderungsprozesses stattfinden. Anschließend wird ein Backup des Containers erstellt, um eventuelle Datenverluste zu verhindern.

Als nächstes wird das Dateisystem des Containers überprüft, um sicherzustellen, dass es in einem konsistenten Zustand ist. Dann erfolgt die tatsächliche Größenanpassung des LXC Containers mithilfe des Befehls “resize2fs”. Hier wird die gewünschte Größe für die Festplatte angegeben.

Um die Konfiguration des Containers entsprechend anzupassen, wird die Konfigurationsdatei des Containers bearbeitet. Der Pfad zur Konfigurationsdatei wird aus der Container-ID abgeleitet, und die Zeile, die die Größe der Festplatte definiert, wird geändert.

Schließlich wird der Container mit der angegebenen Container-ID gestartet, und die Größenänderung ist abgeschlossen.

Dieses Skript bietet eine einfache und zeitsparende Möglichkeit, die Größe eines Proxmox LXC Containers anzupassen, ohne viel manuelle Arbeit zu erfordern. Ihr könnt es auf eure individuellen Anforderungen anpassen und bei Bedarf erweitern.

Weitere Informationen zu diesem Script könnt ihr auf meinem Git-Repository finden. Dort beschreibe ich euch auch, wie dieses Script anzuwenden ist.

Ich hoffe, dass euch dieses Skript dabei hilft, eure Arbeit mit Proxmox LXC Containern effizienter zu gestalten. Bei Fragen, Anregungen oder Problemen stehe ich euch gerne zur Verfügung.

Danke fürs Teilen!