ZFS Pool - beim zweiten Mal richtig machen

Probleme mit Samba, NFS, FTP und Co.
Antworten
degudejung
Beiträge: 8
Registriert: 17.11.2009 19:13:28

ZFS Pool - beim zweiten Mal richtig machen

Beitrag von degudejung » 07.12.2021 16:06:09

Hallo,
bevor ich mein aktuelles System mit Debian 10 OpenMediaVault 5 aufgesetzt habe, hatte ich einiges ausprobiert, was allesamt neu für mich war; Proxmox VE, Unraid usw. Möglicherweise habe ich schon in diesem Zug meinen heutigen Problem-Pool ("pool1") erzeugt, ich kann es aber nicht mehr reproduzieren.

Code: Alles auswählen

zpool history pool1
beginnt mit

Code: Alles auswählen

History for 'pool1':
2021-06-19.00:46:29 zpool create -f -o ashift=12 pool1 mirror /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi2 mirror /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi3 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi4 cache /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi5 log /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi6
2021-06-19.00:47:12 zfs set omvzfsplugin:uuid=10fec703-e159-4847-9977-709571776a4f pool1
2021-06-19.00:47:56 zfs create -p pool1/dataset0
Mit diesen Disk-Identifiern kann ich aber heute nicht mehr anfangen. Und damit beginnt das Problem.

Code: Alles auswählen

root@omv:~# zpool status pool0
  pool: pool0
 state: ONLINE
  scan: scrub repaired 0B in 00:43:05 with 0 errors on Sun Nov 14 01:07:06 2021
config:

	NAME                                             STATE     READ WRITE CKSUM
	pool0                                            ONLINE       0     0     0
	  mirror-0                                       ONLINE       0     0     0
	    ata-Samsung_SSD_870_EVO_1TB_S626NF0R404122Y  ONLINE       0     0     0
	    ata-Samsung_SSD_870_EVO_1TB_S626NF0R216648P  ONLINE       0     0     0

errors: No known data errors
...das sieht ja OK aus. Hier sind die Disks mit einen nachvollziehbaren Identifier zugeordnet. Nicht so bei pool1:

Code: Alles auswählen

root@omv:~# zpool status pool1
  pool: pool1
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: resilvered 510M in 00:00:20 with 0 errors on Tue Dec  7 15:38:31 2021
config:

	NAME        STATE     READ WRITE CKSUM
	pool1       ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    sda     ONLINE       0     0     0
	    sdc     ONLINE       0     0     0
	  mirror-1  ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	    sdd     ONLINE       0     0     7

errors: No known data errors
Die Laufwerksbezeichnungen sda, sdb usw. ändern sich bei meinem Server nämlich scheinbar geradezu beliebig nach Neustarts bzw. beim Anschließen weiterer Geräte und damit stürzt dann regelmäßig pool1 zusammen, bzw. wird faulted/degraded weil ein Device nicht gefunden werden kann.

Was ich suche: Ich würde pool1 gerne "auseinandernehmen" so, dass die Datasets, Daten usw. erhalten bleiben. Nach dem Auseinandernehmen würde ich den de-facto exakt gleichen Pool wieder zusammensetzen, allerdings diesmal nicht über kryptische Label oder sich verändernde Laufwerksbezeichnungen sondern sauber und ordentlich z.B. mit

Code: Alles auswählen

zpool create -f -o ashift=12 pool1 mirror /dev/disk/by-id/ata-ST2000DM008-2FR102_ZFL3WVDB /dev/disk/by-id/ata-WDC_WD20EFRX-68AX9N0_WD-WCC300507648 mirror /dev/disk/by-id/ata-ST4000VN008-2DR166_ZGY96B7E /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH9N73J
Am Ende will ich also nur erreichen, dass der Pool aus sich nicht ständig verändernden Items zusammengesetzt wird und damit stabiler wird. Kann mir jemand sagen, wie ich das möglichst datenschonend erreiche? Schonmal ein Dankeschön vorab!

degudejung
Beiträge: 8
Registriert: 17.11.2009 19:13:28

Re: ZFS Pool - beim zweiten Mal richtig machen

Beitrag von degudejung » 07.12.2021 18:17:30

OK, ich beantworte die Frage mal selbst für alle, die ggf. mal das gleiche Problem haben. Nach weiterem Herumstöbern in den Foren habe ichd die einfache Lösung gefunden.

1. den Pool einmal "irgendwie" importieren

Code: Alles auswählen

zpool import pool1
In meinem Fall führte das dazu, das der Pool korrekt importiert wurde. ABER bei einem Neustart würde er wieder zerfallen, da die Ordnung nur über sda, sdb etc. hergestellt wird und somit nicht persistent ist. Ist in diesem Fall aber egal, denn es folgt ohnehin sofort:

2. den Pool sauber exportieren

Code: Alles auswählen

zpool export pool1
In meinem Fall habe ich dann den Server heruntergefahren, alle Geräte angeschlossen wie ich es brauchte und neu gestartet. Erwartungsgemäß waren die Laufwerksbezeichnungen nun wieder andere.

3. Nun den Pool mit dem spezifischen Disk-by-ID-Befehl importieren

Code: Alles auswählen

zpool import -d /dev/disk/by-id pool1
4. Nun wurde, wie gewünscht, die Konfiguration "stabil" angelegt, wie ein "zpool status" zeigt:

Code: Alles auswählen

root@omv:~# zpool status -v pool1
  pool: pool1
 state: ONLINE
  scan: resilvered 277M in 00:00:15 with 0 errors on Tue Dec  7 17:39:25 2021
config:

	NAME                        STATE     READ WRITE CKSUM
	pool1                       ONLINE       0     0     0
	  mirror-0                  ONLINE       0     0     0
	    wwn-0x5000c500c945ed74  ONLINE       0     0     0
	    wwn-0x50014ee2b3263f4c  ONLINE       0     0     0
	  mirror-1                  ONLINE       0     0     0
	    wwn-0x5000c500c97ce566  ONLINE       0     0     0
	    wwn-0x5000c500c97daf58  ONLINE       0     0     0

errors: No known data errors
4. [optional] Einmal scrubben empfohlen

Code: Alles auswählen

zpool scrub pool1
Fertig. In meinem Fall blieb die Konfiguration nun endlich auch nach Neustarts etc. persistent.

Antworten