Migration der Mount Points von LXC-NFS-Container in VM

maze-m

Member
Nov 26, 2024
58
5
8
Hallo zusammen!

Ich würde gerne meinen LXC-Container in eine VM migrieren und die darin befindlichen Mount Points einfach umhängen.
Ist das möglich?

1766876669844.png
 
Jein. Technisch möglich, ist aber gefährlich und umständlich und die Schritte kommen auf den Speicher an. Für LVM funktioniert das
  1. Detache die Platte(n) in Resources beim CT und fahre ihn herunter
  2. Benenne sie um via lvrename /dev/Datengrab/vm-100-disk-1 /dev/pve/vm-IDDERVMHIER-disk-XXX
  3. qm rescan damit PVE die Festplatte wegen der ID bzw. dem Namen nun der VM zuweist
  4. Unbenutze Festplatte in Hardware attachen
  5. Innerhalb der VM mounten und spaß haben
Das Problem bei ZFS (subvol lässt mich hier darauf deuten) ist, dass CTs ein Dataset nutzen und VMs ein ZVOLs. Du musst also etwas anders arbeiten.
Was hier, bzw. generell, funktioniert
  1. Verschiebe die Platte(n) auf ein Directory storage
  2. Detache die Platte(n) in Resources beim CT und fahre ihn herunter
  3. Hol dir den Pfad via pvesm path local:100/vm-100-disk-0.raw
  4. Benenne sie um via mv /var/lib/vz/images/100/vm-100-disk-0.raw /var/lib/vz/images/IDDERVMHIER/vm-IDDERVMHIER-disk-XXX.raw
    /var/lib/vz/images/IDDERVMHIER/ muss vermutlich noch via mkdir erstellt werden.
  5. qm rescan damit PVE die Festplatte wegen der ID bzw. dem Namen nun der VM zuweist
  6. Via Disk Action > Move Storage kann sie nun wieder zu ZFS migriert werden,
  7. Unbenutze Festplatte in Hardware attachen
  8. Innerhalb der VM mounten und spaß haben
Die alte Referenz des CTs muss dann auch noch aufgeräumt werden. Möglicherwise habe ich eine simplere Option aber auch übersehen.
Du kannst natürlich auch einfach rsync oder so nutzen um die Daten live zu synchronisieren. Das wäre meine Wahl denn obiges finde ich doof. Zudem präferiere ich mein Dateisystem auf einer Partition.
Das ist ein langer Text den ich ab und an mal wieder editiere, bitte also nicht komplett zitieren!
 
Last edited:
  • Like
Reactions: Johannes S
Du kannst natürlich auch einfach rsync oder so nutzen um die Daten live zu synchronisieren. Das wäre meine Wahl denn obiges finde ich doof. Zudem präferiere ich mein Dateisystem auf einer Partition.
Vielen lieben Dank dir für die sehr ausführliche Erklärung und ich denke, dass ein 'rsync -phaxPHAX' <QUELLE_ALTER_LXC_CONTAINER> <ZIEL_NEUE_VM>' wahrscheinlich das Einfachste und Schnellste wäre ...

Manchmal sieht man den Wald vor lauter Bäumen nicht .

Aber was meinst du mit "...präferiere ich mein Dateisystem auf einer Partition"?
 
Die alte Referenz des CTs muss dann auch noch aufgeräumt werden. Möglicherwise habe ich eine simplere Option aber auch übersehen.
Du kannst natürlich auch einfach rsync oder so nutzen um die Daten live zu synchronisieren. Das wäre meine Wahl denn obiges finde ich doof. Zudem präferiere ich mein Dateisystem auf einer Partition.
Das ist ein langer Text den ich ab und an mal wieder editiere, bitte also nicht komplett zitieren!
@Impact nochmal hierzu ein Frage:)

Ich hab mir jetzt eine neue Debian-VM erstellt, welche ich gerne als neuen NFS-Server laufen lassen will...

Ich hab ja die drei Mount Points, für welche ich mir jeweils eine separate Festplatten an die neu erstellte Debian-VM erstellen würde:

1767564666462.png

Wenn ich mir nun allerdings in der Debian-VM eine Festplatte mit 1000GiB im ZFS-Pool 'Datengrab' erstelle, bekomme ich die Meldung:

1767564805279.png

Allerdings sind im ZFS-Pool noch 1,78TB frei:

1767564865348.png

Habe ich eine Denkfehler, oder warum kann ich keine so große Festplatte für die VM erstellen?
 
Teile mal bitte zfs list -ospace,refreservation. Ich nehme an, dass Thin Provisioning nicht aktiviert ist.
Hier wird erklärt wie man Thin Provisioning richtig konfiguriert and auch wie man das behebt: https://gist.github.com/Impact123/3dbd7e0ddaf47c5539708a9cbcaab9e3#discard
Ein zfs list -ospace,refreservation liefert das zurück:


Bash:
root@pve:~# zfs list -ospace,refreservation
NAME                         AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD  REFRESERV
Datengrab                    1.07T  1.23T        0B    186K             0B      1.23T       none
Datengrab/subvol-100-disk-0  3.38G   635M        0B    635M             0B         0B       none
Datengrab/subvol-100-disk-1  70.2G   230G        0B    230G             0B         0B       none
Datengrab/subvol-100-disk-2   104G   896G        0B    896G             0B         0B       none
Datengrab/subvol-100-disk-3   176G  23.9G        0B   23.9G             0B         0B       none
Datengrab/subvol-101-disk-1  10.8G  5.23G        0B   5.23G             0B         0B       none
Datengrab/subvol-104-disk-0  35.3G  64.7G        0B   64.7G             0B         0B       none
Datengrab/vm-102-disk-0      1.10T  35.4G        0B   7.28G          28.1G         0B      35.4G
rpool                         174G  4.99G        0B    208K             0B      4.99G       none
rpool/ROOT                    174G  2.94G        0B    192K             0B      2.94G       none
rpool/ROOT/pve-1              174G  2.94G        0B   2.94G             0B         0B       none
rpool/data                    174G  1.28G        0B    192K             0B      1.28G       none
rpool/data/vm-103-disk-0      174G  1.28G        0B   1.28G             0B         0B       none
rpool/var-lib-vz              174G   778M        0B    778M             0B         0B       none
root@pve:~#
 
Hmm. Also zumindest eine Platte wurde ohne Thin Provisioning erstellt. Kannst du auch noch cat /etc/pve/storage.cfg teilen?
Bitte nicht jeden Post zitieren.
 
Klar, sehr gerne:

Bash:
root@pve:~# cat /etc/pve/storage.cfg
dir: local
    path /var/lib/vz
    content backup,vztmpl,iso

zfspool: local-zfs
    pool rpool/data
    content rootdir,images
    sparse 1

zfspool: Datengrab
    pool Datengrab
    content rootdir,images
    mountpoint /Datengrab
    nodes pve
root@pve:~#
 
Okay bei Datengrab fehlt Thin Provisioning. Das ist das sparse 1. Aktiviere das und schau ob es dann klappt.
Alternativ halt nur vergeben was du auch wirklich hast. Ist etwas sicherer. GiB vs GB beachten.
 
  • Like
Reactions: maze-m