Der ZFS-Pool verschwindet nach dem Neustart unter Debian 8

1415
Peter B

Ich fange mit ZFS an und habe die Grundlagen heruntergefahren, aber ich habe ein Problem damit, dass es läuft.

Pools werden erstellt, Mounts werden erstellt, ich kann Daten speichern und Festplattenaktivität anzeigen. Die Dinge sehen gut aus. Nach dem Neustart werden jedoch zpool list"keine Pools verfügbar" gemeldet .

Ich habe auf CentOS dazu mehrere Artikel gefunden, in denen es um ein Startskript für zfs geht, das jedoch als Update verwendet wird. Bislang habe ich noch keinen unter Debian gefunden.

Ich bin mit dem Debian Backport - zfs-dkmsPaket, das die Abhängigkeit enthält libzfs2linux, libzpool2linux, bfs-zed, und zfsutils-linux. Ich laufe auch im SysV- initModus statt systemd.

Ich habe versucht, den Pool mit /dev/disk/by-idStandardgeräten neu zu /dev/sdxerstellen; Ich habe das Editieren /etc/default/zfsund Einstellen versucht (nicht alle gleichzeitig):

ZFS_MOUNT='yes' ZPOOL_IMPORT_ALL_VISIBLE='yes' ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id" ZPOOL_IMPORT_PATH="/dev" ZFS_INITRD_POST_MODPROBE_SLEEP='5' 

Ich sehe meine Pool-Konfigurationsnamen in /etc/zfs/zpool.cache; Ich kann alles gut manuell neu importieren zpool import <pool-name>und alle Daten sind vorhanden.

Ist dies ein Zeitproblem beim Booten? Mögliche Ideen sind mir zu Ende und jeder Input wäre dankbar.

4
Verwenden Sie Dracut oder eine ähnliche Methode zum Erstellen von Initramfs? Stehst du in der heruntergezogenen Konsole? tukan vor 6 Jahren 0
Ich bin nicht ... direkt aus der Box Debian Jessie. Ich glaube an dieser Stelle, dass ein Init-Skript fehlt. Wahrscheinlich etwas, das von systemd gehandhabt wird, aber nicht unter dem alten init-Skript-Setup getestet wurde. Peter B vor 6 Jahren 0
Könntest du uns einen Screenshot oder Dmesg geben, wo er hängt? tukan vor 6 Jahren 0
Hallo @tukan, ich glaube ich erkläre mich nicht richtig. Das System hängt nicht oder stürzt ab ... Ich boote nicht von ZFS, ich verwende ZFS als Dateisystem für Datenlaufwerke. Das System läuft einwandfrei, aber keines der ZFS-Laufwerke wird angezeigt oder geladen. Ich muss sie manuell in Zpool importieren und dann geht es ihnen gut. Peter B vor 6 Jahren 0
Ah, ich habe es endlich verstanden :). Ich werde einen möglichen Ansatz posten. tukan vor 6 Jahren 0
Wie sieht es also aus? Funktioniert es für Sie? tukan vor 6 Jahren 0

3 Antworten auf die Frage

3
Peter B

Gestern Abend bin ich auf eine Mailingliste gestoßen, die das Rätsel hier löst. Es zeigt an, dass zfs_autoimport_disablees jetzt standardmäßig als 1 / true kompiliert ist! Es spielt also keine Rolle, was konfiguriert /etc/default/zfsist. Die Pools werden niemals importiert, wenn das zfs-Modul geladen wird.

Für mich bestand das Problem darin, eine /etc/modprobe.d/Konfigurationsdatei hinzuzufügen (nennen Sie sie, wie Sie möchten) und zu definieren options zfs zfs_autoimport_disable=0. Jetzt werden die Pools importiert und die zfs-Dateisysteme können entweder von zfs oder im Legacy-Modus eingehängt werden.

Ich verstehe diese Entscheidung nicht, aber jetzt funktioniert alles wie erwartet ...

Haha so einfach. Akzeptieren Sie Ihre Lösung als Referenz. tukan vor 6 Jahren 0
1
tukan

Sichern Sie zuerst die /etc/default/zfsund entfernen Sie sie dann.

Ich würde den legacyAnsatz empfehlen . Dadurch wird die ZFS-Funktion von Automount entfernt und es /etc/fstabwerden Informationen zum Mounten benötigt. Ich empfehle auch /dev/disk/by-idimmer zu verwenden, da es das am wenigsten schmerzhafte Setuop ist.

Da ich Ihre Einrichtung (Pool / Datensätze) nicht kenne, gebe ich ein Beispiel:

  1. Listen Sie zuerst Ihren Datensatz auf, den Sie möchten: zfs list Nehmen Sie den gewünschten Datensatz zBstoragepool/backup
  2. Zählen Sie Ihr storagepool/backupZFS, wenn es eingehängt ist. (Sie können über mount | grep zfsoder überprüfen zfs mount)
  3. Listen Sie Ihre Mountpoints mit auf zfs get mountpoint:
NAME PROPERTY VALUE SOURCE storagepool/backup mountpoint /storagepool/backup default 
  1. Ändern Sie Ihren Mountpoint zfs set mountpoint=legacy storagepool/backup

  2. Nun müssen Sie bearbeiten /etc/fstabüber sudooder rootEnter zweite Zeile (erste Zeile ist es zur Erläuterung der Details)

 <device alias dataset> <mountpoint> <filesystem type> <options> <dump> <fsckorder> storagepool/backup /mnt/backup zfs defaults 0 0 

Detailerklärung:

  • Das erste Feld (Speicherpool / Backup), in der Regel physisches Gerät / Remote-Dateisystem, das beschrieben werden soll, in Ihrem Fall Pool / Datensatz (HINWEIS: Es gibt keinen führenden Backslash ('/') für ZFS-Dataset !! (verursachte viele Probleme). )
  • Das zweite Feld (/ mnt / backup) gibt den Mountpunkt an, an dem das
    Dateisystem eingehängt wird.
  • Das dritte Feld (ZFS) ist der Typ des Dateisystems auf dem Gerät aus
    dem ersten Feld.
  • Das vierte Feld (noauto, suid, ro, user) ist eine (voreingestellte) Liste von Optionen, die das mount beim Einhängen des Dateisystems verwenden soll.
  • Das fünfte Feld (0), um zu entscheiden, ob ein Dateisystem gesichert werden soll. Wenn der Wert Null ist, ignoriert dump das Dateisystem.
  • Das sechste Feld (0) wird von fsck (dem Dienstprogramm zur Überprüfung des Dateisystems) verwendet, um die Reihenfolge zu bestimmen, in der Dateisysteme geprüft werden sollen.

Standardoption bedeutet: rw, suid, dev, exec, auto, nouser, and async Wenn Sie SSD verwenden, was unwahrscheinlich ist, empfehle ich die Option noatimeafter defaults.

Wenn Sie jetzt einen Neustart durchführen, sollte das ZFS-Dateisystem entsprechend der /etc/fstabDatei eingehängt werden .

Wichtiger Hinweis: Wenn Sie ein zFS-Vermächtnis mounten möchten, müssen Sie es mount -t zfs <dataset> <mountpoint>anstelle von verwenden zfs mount.

Hallo Tukan, ich habe bereits die Legacy-Option definiert und sie sind in der fstab, aber das Problem ist damit nicht gelöst. Peter B vor 6 Jahren 0
Tukan, auch vielen Dank für Ihre klare und detaillierte Veröffentlichung der fstab-Konfiguration. Dies ist sehr schön gepostet und klar definiert. Das wird sehr hilfreich sein. Peter B vor 6 Jahren 0
Ich freu mich, dass es dir gefällt! tukan vor 6 Jahren 0
0
A. Bee

@ Peter-B Ihre Lösung hat mein Problem mit dem Import von zpool beim Neustart behoben. Danke vielmals. Eine kleine Klarstellung für diejenigen, die mit der modprobe conf-Syntax nicht vertraut sind: Die Option muss in einer einzelnen Zeile stehen, dh.

options zfs zfs_autoimport_disable=0

Willkommen bei Super User! Das Q & A-Format der Website behält sich Antworten für die Lösung der Frage vor. Dieser Beitrag ist wirklich ein Kommentar und keine Antwort. Sie können jederzeit Ihre eigenen Beiträge kommentieren, und sobald Sie über eine ausreichende [Reputation] (http://superuser.com/help/whats-reputation) verfügen, können Sie [kommentieren Sie jeden Beitrag] (http: // superuser). de / help / privileges / comment). fixer1234 vor 5 Jahren 0