ZFS Erfahrungen

Veröffentlicht von

Bei meinen Tests zur Performance eines SLOG Devices habe ich am Ende ziemlichen Mist gebaut. Die ersten Tests hatte ich mit SLOG Device gemacht, dann ohne und beim wieder hinzufügen habe ich beim Befehl das Wort "log" vergessen und hatte plötzlich ein einzelnes Device in meinem zpool. Mein erster Gedanke nach dem "Enter" war "Fuck"... Einzelne Devices lassen sich nämlich nicht einfach so entfernen. Und Daten die jetzt auf diesem Device landen, sind nicht mal gespiegelt weil es weder ein Mirror noch ein Raid-Z ist.

Richtig:

root@prox01:~# zpool add vol_raidz1 log /dev/disk/by-id/ata-Samsung_SSD_850_EVO_500GB_S2RBNXAH358685D-part1

Falsch, was ich gemacht habe:

root@prox01:~# zpool add vol_raidz1 /dev/disk/by-id/ata-Samsung_SSD_850_EVO_500GB_S2RBNXAH358685D-part1
root@prox01:~# zpool status
  pool: vol_raidz1
 state: ONLINE
  scan: scrub repaired 0B in 0 days 16:16:30 with 0 errors on Sun Aug 11 16:40:32 2019
config:

        NAME                            STATE     READ WRITE CKSUM
        vol_raidz1                      ONLINE       0     0     0
          raidz1-0                      ONLINE       0     0     0
            wwn-0x50014ee20d05dc08      ONLINE       0     0     0
            wwn-0x50014ee2623066ec      ONLINE       0     0     0
            wwn-0x50014ee2b7b0c6c0      ONLINE       0     0     0
            wwn-0x50014ee20cdb1ed3      ONLINE       0     0     0
          wwn-0x5002538d40bd8507-part1  ONLINE       0     0     0

errors: No known data errors

Tja, was nun? Nach Rücksprache mit meinem Kollegen von kernel-error.de war die beste Möglichkeit aus der einzelnen SSD einen Mirror zu machen und ein neues SLOG Device hinzuzufügen. Gesagt getan, 3 SanDisk SSD PLUS 120GB SSDs gekauft und Stück für Stück ausgetauscht.

SSD hinzufügen:

root@prox01:~# zpool attach vol_raidz1 wwn-0x5002538d40bd8507-part1 ata-SanDisk_SSD_PLUS_120GB_191319802167

Den Scrap und das damit verbundene resilvering abwarten und anschließend die falsche SSD gegen eine neue Tauschen:

root@prox01:~# zpool status
  pool: vol_raidz1
 state: ONLINE
  scan: resilvered 7.97G in 0 days 00:47:33 with 0 errors on Sun Sep  1 19:40:39 2019
config:

	NAME                                         STATE     READ WRITE CKSUM
	vol_raidz1                                   ONLINE       0     0     0
	  raidz1-0                                   ONLINE       0     0     0
	    wwn-0x50014ee20d05dc08                   ONLINE       0     0     0
	    wwn-0x50014ee2623066ec                   ONLINE       0     0     0
	    wwn-0x50014ee2b7b0c6c0                   ONLINE       0     0     0
	    wwn-0x50014ee20cdb1ed3                   ONLINE       0     0     0
	  mirror-1                                   ONLINE       0     0     0
	    wwn-0x5002538d40bd8507-part1             ONLINE       0     0     0
	    ata-SanDisk_SSD_PLUS_120GB_191319802167  ONLINE       0     0     0

errors: No known data errors

root@prox01:~# zpool offline vol_raidz1 wwn-0x5002538d40bd8507-part1
root@prox01:~# zpool replace vol_raidz1 wwn-0x5002538d40bd8507-part1 ata-SanDisk_SSD_PLUS_120GB_191303802742

Wieder den resilver Prozess abwarten und anschließend das SLOG Device wieder hinzufügen, diesmal richtig:

root@prox01:~# zpool status
  pool: vol_raidz1
 state: ONLINE
  scan: resilvered 7.92G in 0 days 00:49:28 with 0 errors on Sun Sep  1 21:01:20 2019
config:

	NAME                                         STATE     READ WRITE CKSUM
	vol_raidz1                                   ONLINE       0     0     0
	  raidz1-0                                   ONLINE       0     0     0
	    wwn-0x50014ee20d05dc08                   ONLINE       0     0     0
	    wwn-0x50014ee2623066ec                   ONLINE       0     0     0
	    wwn-0x50014ee2b7b0c6c0                   ONLINE       0     0     0
	    wwn-0x50014ee20cdb1ed3                   ONLINE       0     0     0
	  mirror-1                                   ONLINE       0     0     0
	    ata-SanDisk_SSD_PLUS_120GB_191303802742  ONLINE       0     0     0
	    ata-SanDisk_SSD_PLUS_120GB_191319802167  ONLINE       0     0     0

errors: No known data errors

root@prox01:~# zpool add vol_raidz1 log /dev/disk/by-id/ata-Samsung_SSD_850_EVO_500GB_S2RBNXAH358685D-part1
root@prox01:~# zpool status
  pool: vol_raidz1
 state: ONLINE
  scan: resilvered 7.92G in 0 days 00:49:28 with 0 errors on Sun Sep  1 21:01:20 2019
config:

        NAME                                                   STATE     READ WRITE CKSUM
        vol_raidz1                                             ONLINE       0     0     0
          raidz1-0                                             ONLINE       0     0     0
            wwn-0x50014ee20d05dc08                             ONLINE       0     0     0
            wwn-0x50014ee2623066ec                             ONLINE       0     0     0
            wwn-0x50014ee2b7b0c6c0                             ONLINE       0     0     0
            wwn-0x50014ee20cdb1ed3                             ONLINE       0     0     0
          mirror-1                                             ONLINE       0     0     0
            ata-SanDisk_SSD_PLUS_120GB_191303802742            ONLINE       0     0     0
            ata-SanDisk_SSD_PLUS_120GB_191319802167            ONLINE       0     0     0
        logs
          ata-Samsung_SSD_850_EVO_500GB_S2RBNXAH358685D-part1  ONLINE       0     0     0

errors: No known data errors

Weitere gelernte Dinge

Bei meinen eigenen Recherchen zu zu dem Problem bin ich auf andere Dinge gestoßen.

ZoL unterstützt smb und nfs Shares. Es ist dabei aber nur ein Wrapper und samba und nfs müssen vorinstalliert sein:

zfs set sharesmb=on vol_raidz1/video
zfs set sharenfs=on vol_raidz1/video

Alle ZFS Datasets mit Mountpoint und Sharesettings anzeigen lassen:

zfs list -r -o name,mountpoint,mounted,sharesmb

Das brauchte ich, weil bei meinen Versuchen am Anfang die ZFS Datasets nicht mehr automatisch gemounted wurden und der systemd Dienst zfs-share.service Fehler beim reboot brachte.

Grundsätzlich sollten zu einem zpool nur Platten mit der id hinzugefügt werden. Namen und Label sind vergänglich. Also immer unter /dev/disk/by-id/ nachsehen, wie die ID ist und diese nutzen!

Fazit

Das kann so erst mal weiter laufen und ist wieder Ausfallsicher. Sobald ZFS-on-Linux das Entfernen von Mirrors auf Root Ebene unterstützt, kommt das allerdings wieder weg. Die SSDs kann ich an anderer Stelle besser verwenden. Und schneller wird der zpool durch die Existenz von SSDs auch nicht weil sich die Geschwindigkeit an dem langsamsten Gerät orientiert. Vlt. mache ich daraus auch einen eigenen ZPOOL. Hab ja am Anfang geschrieben, dass ich drei von den SSDs gekauft habe und eine ist noch übrig 😉

Teile diesen Beitrag

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert