LXC Container von local-lvm zu local migrieren

hoFFy

New Member
Feb 23, 2021
5
0
1
124
Hallo,

ich bin noch relativer Anfänger mit Proxmox, habe mit einigen VMs und Containern erste Gehversuche gemacht, mein ursprüngliches bare metal installiertes Linuxsystem mit Veeam in eine VM migriert, etc. etc.

Mein nächstes Projekt ist jetzt eine VM mit einem Veeam VBR Server, eine VM mit Ubuntu die mein NAS als imutable Backup Repository einbindet und auf Dateiebene mache VMs sichert.
Als Newbie habe ich bei der Installation von Proxmox allerdings alles erstmal in das große local-lvm Volume geworfen und kann die virtual disks der VMs nun nicht mehr einfach so mit Veeam abgreifen und sichern.
Mein Ansatz war jetzt folgender: Alle VMs und Container aus dem local-lvm raus, dieses löschen, den Speicher "local" erweitern (da nur 100GB groß) und die VMs und Container dortin migrieren. Bei den VMs kann ich ja einfach sagen das ich die Disk verschieben möchte und ich konnte sie auch alle (bis auf eine VM wegen der Größe) auf mein NAS (was ich dafür temporär per CIFS angebunden habe) verschieben. Die andere VM sichere ich per Backup und wollte sie per Restore zurück holen (in der Disk selbst ist nicht der komplette Platz verbraucht, daher passt wenigstens das Backup auf den Server). Hier bitte schreien, wenn jemand einen Denkfehler entdeckt!

Mein eigentliches Problem sind aber meine beiden LXC Container. Ich kann sie nicht von local-lvm zu local verschieben, am Ende erhalte ich nach dem Verschieben eine RAW Datei von der ich nicht starten kann. Backup und Restore funktionieren ebenso wenig wie das Konvertieren der RAW Datei. Mir ist klar, dass das eine block- das andere dateibasiert ist, ich hätte nur erwartet, dass das entsprechend konvertiert wird, oder es hier Möglichkeiten git, konnte aber nirgends etwas finden.
Habe ich eine Chance die Container auf dateibasierten Speicher zu bringen, oder muss ich die neu aufsetzen?
 
Hallo,
wie genau hast Du die Container-Daten verschoben? Sollte mit dem Volume verschieben in der GUI eigentlich funktionieren.
 
Ja genau, einfah über Move Volume.
Im Folgenden mal die Screenshots vor dem Verschieben, wo ich das NAS als Ziel auswähle und die Fehlermeldung die ich nach dem Verschieben beim Start des Containers erhalte:

1614161453159.png


1614161465733.png
 
Könntest Du die Ausgabe von pveversion -v und pct start 104 --debug posten?

Funktioniert pct mount 104? Die Daten sollten dann in /var/lib/lxc/104/rootfs/ aufscheinen. Falls ja, mit pct unmount 104 wieder unmounten.
 
Starten und mounten klappt leider beides nicht.

Code:
proxmox-ve: 6.3-1 (running kernel: 5.4.73-1-pve)
pve-manager: 6.3-2 (running version: 6.3-2/22f57405)
pve-kernel-5.4: 6.3-1
pve-kernel-helper: 6.3-1
pve-kernel-5.4.73-1-pve: 5.4.73-1
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.0.4-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: 0.8.35+pve1
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.16-pve1
libproxmox-acme-perl: 1.0.5
libproxmox-backup-qemu0: 1.0.2-1
libpve-access-control: 6.1-3
libpve-apiclient-perl: 3.0-3
libpve-common-perl: 6.2-6
libpve-guest-common-perl: 3.1-3
libpve-http-server-perl: 3.0-6
libpve-storage-perl: 6.3-1
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 4.0.3-1
lxcfs: 4.0.3-pve3
novnc-pve: 1.1.0-1
proxmox-backup-client: 1.0.5-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.4-3
pve-cluster: 6.2-1
pve-container: 3.3-1
pve-docs: 6.3-1
pve-edk2-firmware: 2.20200531-1
pve-firewall: 4.1-3
pve-firmware: 3.1-3
pve-ha-manager: 3.1-1
pve-i18n: 2.2-2
pve-qemu-kvm: 5.1.0-7
pve-xtermjs: 4.7.0-3
qemu-server: 6.3-1
smartmontools: 7.1-pve2
spiceterm: 3.1-1
vncterm: 1.6-2
zfsutils-linux: 0.8.5-pve1

Code:
root@proxmox:/tmp# pct start 104 --debug
run_buffer: 323 Script exited with status 255
lxc_init: 797 Failed to run lxc.hook.pre-start for container "104"
__lxc_start: 1896 Failed to initialize container "104"
type g nsid 0 hostid 100000 range 65536
INFO     lsm - lsm/lsm.c:lsm_init:29 - LSM security driver AppArmor
INFO     conf - conf.c:run_script_argv:340 - Executing script "/usr/share/lxc/hooks/lxc-pve-prestart-hook" for container "104", config section "lxc"
DEBUG    conf - conf.c:run_buffer:312 - Script exec /usr/share/lxc/hooks/lxc-pve-prestart-hook 104 lxc pre-start produced output: mount: /var/lib/lxc/.pve-staged-mounts/rootfs: can't read superblock on /dev/loop0.

DEBUG    conf - conf.c:run_buffer:312 - Script exec /usr/share/lxc/hooks/lxc-pve-prestart-hook 104 lxc pre-start produced output: command 'mount /dev/loop0 /var/lib/lxc/.pve-staged-mounts/rootfs' failed: exit code 32

ERROR    conf - conf.c:run_buffer:323 - Script exited with status 255
ERROR    start - start.c:lxc_init:797 - Failed to run lxc.hook.pre-start for container "104"
ERROR    start - start.c:__lxc_start:1896 - Failed to initialize container "104"
INFO     conf - conf.c:run_script_argv:340 - Executing script "/usr/share/lxcfs/lxc.reboot.hook" for container "104", config section "lxc"
startup for container '104' failed

Code:
root@proxmox:/tmp# pct mount 104
mount: /var/lib/lxc/104/rootfs: can't read superblock on /dev/loop0.
mounting container failed
command 'mount /dev/loop0 /var/lib/lxc/104/rootfs//' failed: exit code 32
 
Die Datei scheint korrupt zu sein. Gab es beim Verschieben irgend einen Fehler oder Warnung (Doppelklick auf den Task-Eintrag unten in der GUI zeigt den Log an)?
Du könntest noch versuchen manuell zu mounten
Code:
mkdir mount_test
mount -o loop /pfad/zu/vm-104-disk-0.raw

Funktioniert das Verschieben der originalen Disk auf eine andere Storage (oder auch ein zweiter Versuch auf das CIFS)? Die mount-Optionen für das CIFS Dateisystem beim Kommando findmnt wären auch interessant.
 
also ein Fehler beim Verschieben wurde nicht ausgegeben. Ich habe eben auch extra nochmal alle Pakete des Hosts aktualisiert und einen Neustart durchgeführt. Selbes Resultat.

Hier mal das Log dazu:

Code:
Formatting '/mnt/pve/nas/images/104/vm-104-disk-1.raw', fmt=raw size=17179869184
Creating filesystem with 4194304 4k blocks and 1048576 inodes
Filesystem UUID: c218f2b0-1807-4aa1-97fe-4b597f134497
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

Number of files: 41,764 (reg: 32,576, dir: 3,440, link: 5,717, special: 31)
Number of created files: 41,762 (reg: 32,576, dir: 3,438, link: 5,717, special: 31)
Number of deleted files: 0
Number of regular files transferred: 32,446
Total file size: 4,383,305,262 bytes
Total transferred file size: 4,070,362,070 bytes
Literal data: 4,070,362,070 bytes
Matched data: 0 bytes
File list size: 1,507,206
File list generation time: 0.092 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 4,073,916,835
Total bytes received: 660,326

sent 4,073,916,835 bytes  received 660,326 bytes  39,367,895.28 bytes/sec
total size is 4,383,305,262  speedup is 1.08
TASK OK

Die Ausgabe vom manuellen mounten:

Code:
root@proxmox:/etc/apt# mount -o loop /mnt/pve/nas/images/104/vm-104-disk-1.raw
mount: /mnt/pve/nas/images/104/vm-104-disk-1.raw: can't find in /etc/fstab.

Und die Ausgabe von findmnt nur für die Zeile des NAS:

Code:
└─/mnt/pve/nas                        //192.168.xxx.xxx/xxx cifs        rw,relatime,vers=3.0,cache=strict,username=xxx,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.xxx.xxx,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1
 
eine Ergänzung noch: Ich kann also nicht von local-lvm zum NAS mit CIFS verschieben. Allerdings kann ich von local-lvm zu local verschieben, gerade getestet. Von local zu NAS geht dann wieder nicht. Selber Fehler.
Das reicht mir aber im Prinzip auch, da ich eigentlich nur local-lvm leer bekommen wollte.
Mein ursprüngliches Anliegen war ja die VMs auf Dateiebene erfassen und mit Veeam wegsichern zu können. Wenn ich sie von local-lvm runter habe liegen sie mir ja in Dateiform vor.
Wenn das von Interesse für die Entwicklung ist kann ich hier aber gern künftig noch ein paar Tests machen um der Ursache auf die Schliche zu kommen.

Wie ist denn eigentlich das weitere Vorgen? Ich würde dann den Storage local-lvm löschen und wie könnte ich dann den Storage local um den frei gewordenen Platz von seinen 100GB auf >3,5TB erweitern? Brauche ich dafür ein Tool wie gparted von einer Live-CD oder geht das im laufenden Betrieb?
 
also ein Fehler beim Verschieben wurde nicht ausgegeben. Ich habe eben auch extra nochmal alle Pakete des Hosts aktualisiert und einen Neustart durchgeführt. Selbes Resultat.

Hier mal das Log dazu:

Code:
Formatting '/mnt/pve/nas/images/104/vm-104-disk-1.raw', fmt=raw size=17179869184
Creating filesystem with 4194304 4k blocks and 1048576 inodes
Filesystem UUID: c218f2b0-1807-4aa1-97fe-4b597f134497
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

Number of files: 41,764 (reg: 32,576, dir: 3,440, link: 5,717, special: 31)
Number of created files: 41,762 (reg: 32,576, dir: 3,438, link: 5,717, special: 31)
Number of deleted files: 0
Number of regular files transferred: 32,446
Total file size: 4,383,305,262 bytes
Total transferred file size: 4,070,362,070 bytes
Literal data: 4,070,362,070 bytes
Matched data: 0 bytes
File list size: 1,507,206
File list generation time: 0.092 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 4,073,916,835
Total bytes received: 660,326

sent 4,073,916,835 bytes  received 660,326 bytes  39,367,895.28 bytes/sec
total size is 4,383,305,262  speedup is 1.08
TASK OK
Könntest Du auch das Log für das Verschieben nach local posten? Das received 660,326 bytes hier kommt mir seltsam vor.

Die Ausgabe vom manuellen mounten:

Code:
root@proxmox:/etc/apt# mount -o loop /mnt/pve/nas/images/104/vm-104-disk-1.raw
mount: /mnt/pve/nas/images/104/vm-104-disk-1.raw: can't find in /etc/fstab.

Ach, da fehlt natürlich noch der Ziel-Ordner:
Code:
mkdir mount_test
mount -o loop /pfad/zu/vm-104-disk-1.raw mount_test

Wie ist denn eigentlich das weitere Vorgen? Ich würde dann den Storage local-lvm löschen und wie könnte ich dann den Storage local um den frei gewordenen Platz von seinen 100GB auf >3,5TB erweitern? Brauche ich dafür ein Tool wie gparted von einer Live-CD oder geht das im laufenden Betrieb?
Sobald du keine LVs mehr im data Pool mehr hast (lvs kann benutzt werden um das zu sehen), kannst Du die local-lvm Storage aus PVE löschen. Dann muss das data LV selbst gelöscht werden mit lvremove pve/data. Anschließend kann lvresize pve/root -l+100%FREE benutzt werden, um das root LV zu erweitern und schlussendlich kann das Dateisystem mit resize2fs /dev/mapper/root erweitert werden (wenn Du mutig bist online, sonst am besten von einer Live-CD).
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!