OpenZFS

Aus C3D2
Version vom 14. Januar 2023, 18:21 Uhr von Vater (Diskussion | Beiträge) (→‎Verbünde)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Probleme wegen Aberglauben (Lizenz foo)

https://www.fsf.org/licensing/zfs-and-linux

Einführung

Dieser Abschnitt ist (bisher höchst) unvollständig!

Es soll eine "TL;DR" blitzartige Einführung stattfinden.

Funktionalitäten

  • Ermittlung vom Datenitigität
  • Verknüpfen von Geräten (RAID), (als Software) als ein Pool für ZFS
  • Festhalten von augenblicklichen Ständen (Schnappschuss)
  • Austausch (Ablegen) von Ständen zu anderen (auch in der Ferne erreichbaren) Pools für ZFS
  • eigene Heilen der Daten beim Verlust der Datenitigität von einem Teil der Daten
  • kein Netzwerkdateisystem
    Das kann Ceph.
  • kein Aufzeichnung jeder Änderung
    Das kann HAMMER.

schnellere Geräte nutzen

ZIL
ZFS Intent Log

Braucht es nur, wenn es mindestens zwei wesentlich schnellere Geräte zum Schreiben von Daten gibt, als wenn der übliche Massenspeicher vergleichsweise (arg) langsam ist.

schneller Massenspeicher als Zwischenspeicher für zu schreibende Daten

  • Sollte mindestens gespiegelt werden!
    Im Falle des Ausfalls des Gerätes wären alle aktuellen Transaktionen auf dem Zwischenspeicher (vor dem Schreiben auf den langsameren Massenspeicher) verloren, was problematisch ist.
L2ARC
Level 2 Adjustable Replacement Cache

Braucht eigentlich kein Mensch mehr!

Heutzutage kann das (bis auf ganz wenige Ausnahmefälle für außergewöhnliche Anwendungsfälle), insbesondere bei Servern, mit Arbeitsspeicher erschlagen werden.

schneller Massenspeicher als Zwischenspeicher für bereits gelesene Daten

Im Übrigen wird ohnehin standardmäßig für ARC (Level 1) über die Hälfte (etwa 5/8 (fünf Achtel), aber standardmäßig mindestens 1 GB) vom Arbeitsspeicher verwendet.
  • Kann nur einzeln stehen (kann nicht gespiegelt) werden!
    Es wäre auch verhältnismäßig sinnarm einen zusätzlichen Zwischenspeicher, der ohnehin noch auf dem "nomralen" Massenspeicher, noch einmal vorzuhalten.

ZFSonLinux

Debian

  • unter Debian 8 (Jessie)

<source lang="bash"> cd /root wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_4_all.deb dpkg -i zfsonlinux_4_all.deb </source>

<source lang="bash"> vi /etc/apt/sources.list.d/zfsonlinux.list

    1. This file is installed by the zfsonlinux package.
  1. / deb [arch=amd64] http://archive.zfsonlinux.org/debian jessie main
      1. deb-src http://archive.zfsonlinux.org/debian jessie main
  2. !! Enable these ONLY if you want/need the dailies - latest ZoL code !!

deb [arch=amd64] http://archive.zfsonlinux.org/debian jessie-daily main

      1. deb-src http://archive.zfsonlinux.org/debian jessie-daily main
  1. EOF

wget http://zfsonlinux.org/4D5843EA.asc -O - | apt-key add - </source>

SPL/ZFS installieren:

<source lang="bash"> apt-get update apt-get install debian-zfs

vi /etc/modules

      1. ZFS //

spl zfs

      1. // ZFS

update-initramfs -u -k all </source>

FIX: zfs-mount.service

<source lang="bash"> cat /lib/systemd/system/zfs-mount.service

which zfs which zpool </source>

falls zfs/zpool unter /usr/local liegen, dann nach /sbin kopieren

ZFS:

<source lang="bash"> lsmod | egrep "spl|zfs"

zpool status </source>

Debian 8 (Jessie) System mit (systemd-sysv/sysvinit-core)

<source lang="bash"> modprobe spl modprobe zfs

modprobe: ERROR: could not insert 'spl': Exec format error modprobe: ERROR: could not insert 'zfs': Exec format error </source>

<source lang="bash"> ls -all /sbin | egrep "fsck.zfs|zdb|zed|zfs|zhack|zinject|zpios|zpool|zstreamdump|ztest"

cp /sbin/fsck.zfs /usr/local/sbin cp /sbin/zdb /usr/local/sbin cp /sbin/zed /usr/local/sbin cp /sbin/zfs /usr/local/sbin cp /sbin/zhack /usr/local/sbin cp /sbin/zinject /usr/local/sbin cp /sbin/zpios /usr/local/sbin cp /sbin/zpool /usr/local/sbin cp /sbin/zstreamdump /usr/local/sbin cp /sbin/ztest /usr/local/sbin </source>

<source lang="bash"> apt-get install zfsonlinux

apt-get update; apt-get upgrade; apt-get dist-upgrade apt-get remove --purge debian-zfs libnvpair1 libuutil1 libzfs2 libzpool2 spl spl-dkms zfs-dkms zfsutils dkms apt-get update; apt-get upgrade; apt-get dist-upgrade </source>

<source lang="bash"> apt-get install debian-zfs </source>

unterschiedliche version magic

Fehler:

<source lang="bash"> zavl: version magic '3.18.7-grsecwetu+ SMP mod_unload modversions KERNEXEC_BTS UDEREF REFCOUNT GRSEC ' should be '3.18.7-grsecwetu+ SMP mod_unload modversions KERNEXEC_BTS UDEREF REFCOUNT STACKLEAK_PLUGIN GRSEC ' grsec: more alerts, logging disabled for 10 seconds zavl: version magic '3.18.7-grsecwetu+ SMP mod_unload modversions KERNEXEC_BTS UDEREF REFCOUNT GRSEC ' should be '3.18.7-grsecwetu+ SMP mod_unload modversions KERNEXEC_BTS UDEREF REFCOUNT STACKLEAK_PLUGIN GRSEC ' </source>

Laden erzwingen bei "Versionsbezeichungsdifferenz"

<source lang="bash"> modprobe --force-vermagic spl modprobe --force-vermagic zfs

zpool status </source>

module laden erzwingen
  • trotz unterschiedlicher Versionsangabe (ignores vermagic and modversion attributes)

damit sind nicht die module optionen (parameter) gemeint z.B. bei "modinfo MODULNAME -F parm"

<source lang="bash"> touch /etc/modprobe.d/spl.conf touch /etc/modprobe.d/zfs.conf </source>

<source lang="bash"> vi /etc/modules

      1. ZFS //

spl # force=1 zfs # force=1

      1. // ZFS

</source>

zpool mirror erstellen

<source lang="bash"> zpool create -o ashift=12 zbackup mirror /dev/mapper/vg-zstorage1 /dev/mapper/vg-zstorage2

lxc-ls | xargs -L1 -I {} zfs create zbackup/lxc/{} </source>

Red Hat

Ubuntu

Kompatibilität

Eine der nennenswerten Vorteile von ZFS ist die Verfügbarkeit bei vielen Betriebssystemen. Eigentlich ist daher auch Kompatibilität - über das einzelne Betriebssystem hinweg - eines der großen Ansprüche. Dies ergibt sich schon allein durch das allgemeine Organisation von ZFS als Gemeinschaft als OpenZFS.

Aber es kann - wegen fehlenden Funktionstonalität in der Implementierung bei den verschiedenen Betriebssystemen - zu Problemen bei der Kompatibilität kommen. ZFS erkennt das und benennt die Funktionstonalität, die Probleme bei der Kompatibilität verursacht.

Ein kleines Beispiel:

  • Erstellen des Pools (zfs create) mit Fedora (26)
  • Importieren des Pools (zfs import) mit TrueOS stable (FreeBSD 12.0-CURRENT #66)
This pool uses the following feature(s) not supported by this system:
        org.zfsonlinux:userobj_accounting (User/Group object accounting.)
All unsupported features are only required for writing to the pool.
The pool can be imported using '-o readonly=on'.

Kompatibilität bei Bootloadern

Kompatibilität bei GRUB 2

Verbünde

aka Cluster

Ergänzungen

ZFSBootMenu

podcasting

Siehe auch