[SOLVED] [GELÖST] Recover ZFS

Palerius

Member
May 5, 2020
32
2
13
35
Hallo zusammen,

nach einer steilen Lernkurve und vielen Stunden in Proxmox und meinen VMs habe ich es nun auch "geschafft" mich in ein Problem zu bringen. Und nach meiner bisherigen Suche ein großes Problem.

Ich habe über Proxmox einen LXC Container aufgesetzt der eine Cloud anbietet. Der Datenspeicher für diese Cloud war/ist eine Festplatte die in Proxmox als ZFS gemountet ist und für den Container als extra Harddrive gemounted wurde.

Nach meinem Umzug auf einen neuen Sever habe ich einen dummen, dummen Fehler begangen: Ich habe die ZFS Platte zum Daten "rüber ziehen" in meine Windows Maschine geschmissen. Ab hier ging es steil bergab.... Windows hat die Platte als GPT "erkannt". Kein Zugriff.
Also Platte zurück in den alten Sever. Dort wird Sie zwar sowohl von Proxmox als ZFS erkannt als auch für den LXC als mounted Laufwerk, allerdings ist für mich über die shell selbst als root kein Zugriff in das Verzeichnis möglich. Es zeigt immer noch den erstellten Ordner "hdd" unter /mnt an aber kein Zugriff für r oder w.
Benutzer/Gruppe ist mit nobody/nogroup angeben und ich kann keinerlei Änderungen vornehmen.

Ein Beitrag hier aus dem Forum hat für ein ähnliches Problem vorgeschlagen den LXC als priviligiert zu starten.
Also Backup erstellt. Dieses wurde zwar "erfolgreich" beendet. Hat aber im Anschluss den original LXC gelöscht.
Auch ein restore scheitert mit einem Fehler. Die runtergeladene Backup Datei lässt sich ebenfalls nicht entpacken. Sprich: die original VM die die Platte genutzt hat ist nun ebenfalls verloren da das Backup korrupt ist.

Man merkt, heute ist auf jeden Fall nicht mein Tag.
Meine Frage nun:

Gibt es eine Möglichkeit die Daten auf der Platte noch zu retten? Es geht hier um extrem wichtige persönliche Daten die ich im schlimmsten Fall auch über einen Dienstleister "recovern" lassen würde (Falls das überhaupt noch machbar ist).
Wenn es noch Möglichkeiten gibt, welche sind diese? Was kann ich tun, welche Infos werden benötigt um meine Situation zu evaluieren?

Der Server selbst ist unwichtig und komplett durch einen neuen ersetzt daher gilt 100% meiner Priorität dieser einen ZFS Platte.
Gibt es eine Mögichkeit die Daten direkt über das Proxmox system zu erreichen oder ist es nun ein noch größeres Problem das die original VM/LXC hinüber ist?

Als Hintergrund zu meinen Fähigkeiten: IT Student, ca. 1 Jahr Erfahrung im UNIX Umfeld und (abgesehen von heute) eigentlich nicht dumm.


Ich hoffe auf eine Lösung und bedanke mich schonmal für jegliche Hilfe!
 
Verstehe ich das richtig? Die Daten sind direkt auf dem ZFS gelegen und nicht innerhalb des Containers?

Wie heißt der Pool?

Was sagt denn ein
Code:
zfs list

zpool status

mount

damit wir ein bisschen eine Ahnung haben wie die Aktuelle Situation ist.
 
  • Like
Reactions: Palerius
Danke schonmal fürs einklinken.
Exakt! Der Container diente nur für das System und die Festplatte als großer Datenspeicher.

Hier der output von zfs list:
Code:
NAME                      USED  AVAIL     REFER  MOUNTPOINT
WDHDD                    1.31T  1.32T       96K  /WDHDD
WDHDD/subvol-122-disk-0  1.31T  1.25T     1.31T  /WDHDD/subvol-122-disk-0
WDHDD/subvol-122-disk-1    96K  1.32T       96K  /WDHDD/subvol-122-disk-1
Wobei subvol-122-disk-0 der gemountete Datenspeicher ist.

Output zpool status scheint auch keine Fehler zu geben:
Code:
pool: WDHDD
state: ONLINE
  scan: scrub repaired 0B in 0 days 05:14:46 with 0 errors on Sun Apr 12 05:38:48 2020
config:

        NAME                      STATE     READ WRITE CKSUM
        WDHDD                     ONLINE       0     0     0
          wwn-0x50014ee6add04ef7  ONLINE       0     0     0

errors: No known data errors

Und zuletzt mount:
Code:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1828412k,nr_inodes=457103,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=377176k,mode=755)
/dev/mapper/pve-root on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=50,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=16551)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
/dev/fuse on /etc/pve type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=377172k,mode=700)

EDIT: Formatierung
 
Last edited:
Okay, also der Pool scheint soweit okay aus. Dürfte aber nicht gemountet sein.

Was gibt ein zfs get all WDHDD zurück?

Achja, Konsolenoutput bitte in [code]...[/code] Tags geben damit es lesbarer ist
 
Sorry, war nicht sicher ob inline code oder normaler code ausreicht.
Hier der output für deinen genannten Befehl:


Code:
NAME   PROPERTY              VALUE                  SOURCE
WDHDD  type                  filesystem             -
WDHDD  creation              Wed Jan  1 18:04 2020  -
WDHDD  used                  1.31T                  -
WDHDD  available             1.32T                  -
WDHDD  referenced            96K                    -
WDHDD  compressratio         1.04x                  -
WDHDD  mounted               no                     -
WDHDD  quota                 none                   default
WDHDD  reservation           none                   default
WDHDD  recordsize            128K                   default
WDHDD  mountpoint            /WDHDD                 default
WDHDD  sharenfs              off                    default
WDHDD  checksum              on                     default
WDHDD  compression           on                     local
WDHDD  atime                 on                     default
WDHDD  devices               on                     default
WDHDD  exec                  on                     default
WDHDD  setuid                on                     default
WDHDD  readonly              off                    default
WDHDD  zoned                 off                    default
WDHDD  snapdir               hidden                 default
WDHDD  aclinherit            restricted             default
WDHDD  createtxg             1                      -
WDHDD  canmount              on                     default
WDHDD  xattr                 on                     default
WDHDD  copies                1                      default
WDHDD  version               5                      -
WDHDD  utf8only              off                    -
WDHDD  normalization         none                   -
WDHDD  casesensitivity       sensitive              -
WDHDD  vscan                 off                    default
WDHDD  nbmand                off                    default
WDHDD  sharesmb              off                    default
WDHDD  refquota              none                   default
WDHDD  refreservation        none                   default
WDHDD  guid                  17389618139561207537   -
WDHDD  primarycache          all                    default
WDHDD  secondarycache        all                    default
WDHDD  usedbysnapshots       0B                     -
WDHDD  usedbydataset         96K                    -
WDHDD  usedbychildren        1.31T                  -
WDHDD  usedbyrefreservation  0B                     -
WDHDD  logbias               latency                default
WDHDD  objsetid              54                     -
WDHDD  dedup                 off                    default
WDHDD  mlslabel              none                   default
WDHDD  sync                  standard               default
WDHDD  dnodesize             legacy                 default
WDHDD  refcompressratio      1.00x                  -
WDHDD  written               96K                    -
WDHDD  logicalused           1.36T                  -
WDHDD  logicalreferenced     42K                    -
WDHDD  volmode               default                default
WDHDD  filesystem_limit      none                   default
WDHDD  snapshot_limit        none                   default
WDHDD  filesystem_count      none                   default
WDHDD  snapshot_count        none                   default
WDHDD  snapdev               hidden                 default
WDHDD  acltype               off                    default
WDHDD  context               none                   default
WDHDD  fscontext             none                   default
WDHDD  defcontext            none                   default
WDHDD  rootcontext           none                   default
WDHDD  relatime              off                    default
WDHDD  redundant_metadata    all                    default
WDHDD  overlay               off                    default
WDHDD  encryption            off                    default
WDHDD  keylocation           none                   default
WDHDD  keyformat             none                   default
WDHDD  pbkdf2iters           0                      default
WDHDD  special_small_blocks  0                      default
 
Jap, ist nicht gemounted:
Code:
WDHDD  mounted               no                     -
WDHDD  mountpoint            /WDHDD                 default

Gibt es das Verzeichnis /WDHDD und ist es leer?

Falls es nicht leer ist, kopiere dir die Daten wo anders hin. Dann sollte der Pool mit zfs mount -a gemountet werden und im Idealfall siehst du alles.

Grundsätzlich wäre es sicher auch keine Schlechte Idee eine Weitere Festplatte als Mirror hinzuzufügen wenn die Daten so wichtig sind. Bzw. auch Backups wo anders hin haben. Die alte Faustregel sagt doch was in die Richtung "wenn man seine Daten nicht an mindestens 3 Orten hat, hat man sie gar nicht" ;)
 
/WDHDD hat nur den Unterordner subvol-122-disk-1. Dieser ist allerdings leer und wenn ich das richtig sehe ist subvol-122-disk-0 ja auch was für meine Daten genutzt wird.

Die Platte mounte ich dann ganz normal über die Recources -> Add -> Mount Point in eine VM?
Ich habe gelesen das die Platte dann gewiped wird. Daher würde ich da gerne vorher sicher gehen.

Grundsätzlich wäre es sicher auch keine Schlechte Idee eine Weitere Festplatte als Mirror hinzuzufügen wenn die Daten so wichtig sind.
Bin ich ganz bei dir! Es war mein erstes Networking Projekt und eigentlich hat er alle Cloud Daten mit meiner lokalen Festplatte syncronisiert (oder sollte es). Warum er genau den einen Ordner mit allen persönlichen Daten von diesem Sync ausgeschlossen hat lasse ich jetzt mal im Raum stehen.
Aber das neue System ist jetzt auch zu meiner Zufriedenheit im RAID10. Da auch meinen Respekt für wie simple und einfach Proxmox das handhabt. Platten rein, ZFS Pool erstellen und alle Platten werden direkt vorgeschlagen.
 
Hallo,

ich würde mich wirklich freuen wenn ich nochmals eine kurze abschließende Antwort zum mounten bekommen könnte.
Grundsätzlich bastel und teste ich ja gerne einfach selbst und lerne es so aber in dieser Situation ist es denke ich nachvollziehbar das ich sicher gehen will.

Vielen lieben Dank!
 
Hast du die config von dem Container noch?

Volumes werden beim starten grundsätzlich nur erzeugt, wenn Sie noch nicht existieren.

du wirst den bestehenden Ordner /WDHDD samt leerem Unterordner löschen müssen. Mit einem zfs mount -a werden dann die ZFS Dateisysteme gemountet und du solltest auch deine Daten sehen. Die kannst du jetzt natürlich wo anders hin sichern oder den Container wieder starten.
Wenn du sichergehen willst, dass du keine Daten löscht, kannst du auch einen neuen Container mit einer anderen ID als 122 erstellen und die Daten manuell in das neue subvol kopieren.
 
Den Ordner WDHDD löschen und per zfs mount -a das Dateisystem neu mounten hat problemlos geklappt. Die Daten sind wieder sichtbar und aktuell im transfer.
Vielen, vielen Dank für die schnell und kompetente Hilfe! Eine Lektion die ich glücklicherweise schmerzfrei lernen durfte. Datensicherung hat höchste Priorität.

Danke nochmals und eine schöne Rest-Woche!
 
  • Like
Reactions: aaron
Lektion die ich glücklicherweise schmerzfrei lernen durfte. Datensicherung hat höchste Priorität.
Die haben wir glaub ich alle irgendwann mal lernen müssen ;). Wenn es schlussendlich nur ein Schrecken war umso besser.

Du kannst den Thread auch als solved markieren indem du den Prefix neben dem Titel des ersten Posts änderst.
 
  • Like
Reactions: Palerius

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!