Verzeichnis verschwunden

carsten2

Well-Known Member
Mar 25, 2017
249
20
58
55
Ich hatte ein ZFS Dateisystem /data1/vmdatadir. Das Verzeichnis ist in PVE registriert.

#zfs list data1/vmdatadir
NAME USED AVAIL REFER MOUNTPOINT
data1/vmdatadir 20.6G 4.80T 20.6G /data1/vmdatadir

Es konnte aber nach einem Neustart nicht gemounted werden konnte. "zfs mount" listet es nicht. VMs, die darauf als qcow2-Images lage, starten nicht. Stattdessen werden automatisch Verzeichnisse dump, images, private, templates angelegt, die innerhalb weniger Sekunden neu angelegt werden, wenn man sie löscht.

Passiert ist das übrigens nach einem Umhängen von Harddisks an einen anderen Controller und eine Platte nicht mitgekommen ist. Der Server fur normal hoch und nach dem einsetzen der fehlenden Platte begann sofort das Resilverung. Alle VMs auf ZVOLs fuhren hoch nur nicht die auf dem obigen ZFS-Filesystem.

Wie konnte das passieren, und wie korrigiert man das?
 
Last edited:
Zum ersten leider komplett falsches handling. Auf ZFS werden NIEMALS VM-Images gespeichert. ZFS arbeitet mit Datasets und nicht mit Directory, außerdem verlierst du dabei performance. Das heist du musst ZFS auch also solches einbinden. ISO-images usw. kannst natürlich speichern. Zum Zweiten scheint der ZFSmount ein wenig zu langsam zu sein. Da ist dein System schon vorher da und legt dann natürlich diese Verzeichnisse wie dump usw. an. Folgender Maßen kannst du das umgehen:

- deaktiviere im Storagetab dieses Verzeichnis
- Füge in der Datei "/etc/pve/storage.cfg" ein "mkdir 0" bei dem Storageteil hinzu der dein Verzeichnis anspricht.
- Lösche die vom System angelegten leeren Ordner
- Storage wieder aktivieren
- zfs mounten oder rebooten
 
Wenn der directory storage selbst eine subvolume ist (statt einem normalen unterordner innerhalb einer anderen subvolume) ist `is_mountpoint 1` in der storage.cfg wichtiger. (Storage wird als inaktiv gesehn wenn das directory kein mountpoint ist, ähnlich wie wenn man bei NFS exports `mountpoint` auf dasselbe directory setzt)
 
  • Like
Reactions: fireon
@fireon: Ich hatte es dadurch gelöst, dass ich das Verzeichnis kurzfristig aus der Proxmox-Konfiguration entfernt und dann die Verzeichnisse gelöscht, neu gemounted und dann das Verzeichnis wieder zu Proxmox zuzugefügt hatte.
Anmerkung: Die Aussage das man keine qcow2-Dateien verwenden soll, halte ich mal für nicht richtig. Zum einen habe ich festgestellt, dass hier kein großer Performance-Unterschied ist. Außerdem ist es machmal erforderlich, wenn man diese Dateien auch von einem anderen Rechner aus starten will und zuletzt hat das qcow2-Format anscheinend den Vorteil, dass man bei Thin-Provisioning die Datei auch wieder verkleineren kann, wenn man in der VM Dateien gelöscht und den Speicherplatz genullt hat, was absurderweise bei ZVOLs anscheinend nicht geht (zumindest hat in meiner andere Anfrage keiner einer Lösung gefunden).

@wbumiller: Was genau bewirkt "is_mountpoint 1". Wird dann geprüft ob das Subvolume gemountet werden kann und nur dann die Verzeichnisse erzeugt?
 
Was genau bewirkt "is_mountpoint 1". Wird dann geprüft ob das Subvolume gemountet werden kann und nur dann die Verzeichnisse erzeugt?
Es wird geprüft ob es gemountet ist. In dem Fall sagt man PVE nur, dass dort etwas gemountet sein muss. Wer das wie und wann macht interessiert PVE dann nicht, PVE versucht auch nichts dort zu mounten, das ist eine rein informative Option um PVE daran zu hindern etwas reinzuschreiben wenn der ordner nicht gemountet ist.
 
Wenn der directory storage selbst eine subvolume ist (statt einem normalen unterordner innerhalb einer anderen subvolume) ist `is_mountpoint 1` in der storage.cfg wichtiger. (Storage wird als inaktiv gesehn wenn das directory kein mountpoint ist, ähnlich wie wenn man bei NFS exports `mountpoint` auf dasselbe directory setzt)
Vermutlich hab ich das jetzt falsch verstanden. Ich hab die Option bei NFS gesetzt. Experimentiere gerade mit SOFT usw.:
Code:
nfs: testbackup
       export /rpool/testbackup
       path /mnt/pve/testbackup
       server 10.33.80.28
       content backup
       maxfiles 2
       nodes pve01
       options vers=3,soft
       is_mountpoint 1

Aber nachdem das Storage eingehängt wurde, ist die Option "is_mountpoint 1" verschwunden.
 
Die option sollte nur für directory (typ "dir") benutzt werden. Bei den anderen storage typen übernimmt PVE auch das mounten (da es in diesem fall auch die entsprechenden informationen zum mounten hat).
`mkdir` hingegen dient dazu das erzeugen der vorangestellten pfadteile zu verhindern (in dem fall `/` -> `/mnt` -> `/mnt/pve`, -> `/mnt/pve/testbackup`) und ist daher auch für den NFS storage typ sinnvoll.

PS: Der NFS teil in meinem post war eventuell nicht klar: ich wollte damit nur einen vergleich bieten, denn NFS selbst hat einen ähnlichen mechanismus mit der `mountpoint` option in /etc/exports
 
Last edited:
Da Storage-Einträge wohl häufig Mountpoints sind, wäre es doch sinnvoll, diesen Haken auch in der Oberfläche setzen zu können. Könnte das in die nächste Version aufgenommen werden?
 
  • Like
Reactions: fireon

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!