[Sammelthread] ZFS Stammtisch

Nach 6 Jahren kann man schon überlegen die Platten zu tauschen. Bei 6-10 Platten sehe ich Z2 als vdev der Wahl, egal ob mit hd oder ssd. Bei einem normalen Fileserver würde ich aber eventuell bei mechanischen Platten bleiben und um ein special vdev NVMe Mirror ergänzen (Hybrid Pool). Damit kann man je Dateisystem festlegen ob man Metadaten, kleine Dateien oder alle Dateien auf NVMe statt hd haben möchte. Die NVMe Größe je nach Nutzung wählen.

Wenn man jetzt 16TB hat und die Daten nicht zu sehr wachsen, könnte man auch einen ca 20TB+ HD Mirror überlegen. Die bisherigen Platten dann als Z1/2 Backup Pool nehmen.

Die ZFS Defaultwerte sind immer ok für unterschiedlichste Anwendungsmöglichkeiten.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Da es bei mir schon so lange her ist, eine Frage zum Replace der defekten Platte:

Ich habe die defekte Platte im Z2 Pool offline genommen, würde diese Platte jetzt ausbauen und durch eine neue Platte ersetzen. Anschließend über das Disk-Menü in napp-it die Funktion replace aufrufen. Das müsste doch alles sein, oder? Das Resilvering sollte ja dann automatisch anlaufen?
 
Offline nehmen ist bei hotplug Hardware z.B. LSI HBA nicht nötig. Die kann man einfach ziehen oder einstecken und das wird nach ein paar Sekunden erkannt. Dann Disk > Replace mit alt -> neu aufrufen und das wars. Sofern eine Platte nicht ganz tot ist, sollte man die neue Platte zusätzlich einbauen damit die Redundanz nicht verringert wird.
 
Moin
ich denke mal hier passt rein

Ich wollte mal irgendwann debian 13 auf zroot installieren, bin dann aber davon abgekommen warum auch immer
naja auf jedenfall hab ich mir diese Anleitung dazu erstellt, angepasst an eine VM laeuft sie nicht, auf dem Laptop laeuft es hab hier aber noch Probleme
Leider find ich die Original Anleitung nicht mehr wo man mal nachschauen kann wo der fehler liegt oder das so gemacht wurde und ich selbst bin zu doof dafuer :d

Code:
sudo -i
dmesg | grep -i efivars
ip a
apt update && apt install -y openssh-server
passwd user
Login Terminal ssh
sudo -i
apt install -y console-data
dpkg-reconfigure keyboard-configuration
setupcon
nano /etc/apt/sources.list
deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware
deb [trusted=yes] file:/run/live/medium trixie main non-free-firmware
apt update
apt install --yes linux-headers-$(uname -r)
apt install -y debootstrap gdisk parted zfs-dkms zfs-zed zfsutils-linux systemd-timesyncd
timedatectl set-ntp true
modprobe zfs && zfs version
. /etc/os-release
export ID
zgenhostid -f "0x$( date +%s | cut -c1-8 )"
lsblk -f
export DISK="/dev/nvme0n1"
export BOOT_PART="1"
export SWAP_PART="2"
export POOL_PART="3"
export BOOT_DEVICE="${DISK}p${BOOT_PART}"
export SWAP_DEVICE="${DISK}p${SWAP_PART}"
export POOL_DEVICE="${DISK}p${POOL_PART}"
wipefs -a $DISK
sgdisk --zap-all --clear $DISK
partprobe $DISK && sgdisk -p $DISK
sgdisk --list-types
sgdisk -n "${BOOT_PART}:1m:+1g" -t "${BOOT_PART}:ef00" -c 0:esp $DISK
sgdisk -n "${SWAP_PART}:0:+8g" -t "${SWAP_PART}:8200" -c 0:swap $DISK
sgdisk -n "${POOL_PART}:0:-10m" -t "${POOL_PART}:bf00" -c 0:pool $DISK
partprobe $DISK && sgdisk -p $DISK
echo 'passphrase' > /etc/zfs/zroot.key
chmod 000 /etc/zfs/zroot.key
export POOL_ID=/dev/disk/by-partuuid/$( lsblk -o PATH,PARTUUID | grep $POOL_DEVICE | awk '{ print $NF }' )
zpool create \
-o ashift=12 \
-o autotrim=on \
-O encryption=on -O keylocation=prompt -O keyformat=passphrase \
-O acltype=posixacl -O xattr=sa -O dnodesize=auto \
-O compression=lz4 \
-O relatime=on \
-O canmount=off \
-O mountpoint=/ \
-O keylocation=file:///etc/zfs/zroot.key \
-R /mnt \
rpool-lp01 $POOL_ID

zfs create -o canmount=noauto -o mountpoint=/ rpool-lp01/ROOT/${ID}
zfs mount rpool-lp01/ROOT

zfs create rpool-lp01/home
zfs create -o mountpoint=/root rpool-lp01/home/root
chmod 700 /mnt/root
zfs create -o canmount=off rpool-lp01/var
zfs create rpool-lp01/var/log
zfs create -o canmount=off rpool-lp01/usr
zfs create rpool-lp01/usr/local
zfs create rpool-lp01/var/games
zfs create rpool-lp01/var/lib/AccountsService
zfs create rpool-lp01/var/lib/NetworkManager
zpool set bootfs=rpool-lp01/ROOT/${ID} rpool-lp01

zpool export rpool-lp01
zpool import -N -R /mnt rpool-lp01
zfs load-key -L prompt rpool-lp01
zfs mount rpool-lp01/ROOT/${ID}
zfs mount rpool-lp01/home
mount -t zfs
udevadm trigger

debootstrap trixie /mnt
cp /etc/hostid /mnt/etc/
cp /etc/resolv.conf /mnt/etc/
mkdir /mnt/etc/zfs
cp /etc/zfs/zroot.key /mnt/etc/zfs/

mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -B /dev /mnt/dev
mount -t devpts pts /mnt/dev/pts

chroot /mnt /bin/bash
passwd
echo lp01 >  /etc/hostname
cat <<EOF > /etc/hosts
127.0.0.1 localhost
127.0.1.1 lp01 lp01.lan
EOF

nano /etc/apt/sources.list
deb http://deb.debian.org/debian trixie main contrib non-free-firmware
deb-src http://deb.debian.org/debian trixie main contrib non-free-firmware

deb http://deb.debian.org/debian-security trixie-security main contrib non-free-firmware
deb-src http://deb.debian.org/debian-security trixie-security main contrib non-free-firmware

deb http://deb.debian.org/debian trixie-updates main contrib non-free-firmware
deb-src http://deb.debian.org/debian trixie-updates main contrib non-free-firmware

apt update
apt install -y linux-image-amd64 linux-headers-amd64 zfs-initramfs console-setup curl dosfstools  efibootmgr locales firmware-linux  network-manager cryptsetup firmware-iwlwifi

echo "REMAKE_INITRD=yes" > /etc/dkms/zfs.conf

dpkg-reconfigure locales
echo "UMASK=0077" > /etc/initramfs-tools/conf.d/umask.conf
update-initramfs -u -k all
systemctl enable zfs.target
systemctl enable zfs-import-cache
systemctl enable zfs-mount
systemctl enable zfs-import.target
mkfs.vfat -F32 $BOOT_DEVICE
echo "PARTLABEL=esp   /boot/efi   vfat    defaults    0 0" >> /etc/fstab
mkdir -p /boot/efi
mount /boot/efi
zfs set org.zfsbootmenu:commandline="quiet" rpool-lp01/ROOT
zfs set org.zfsbootmenu:keysource="zroot/ROOT/${ID}" rpool-lp01
mkdir -p /boot/efi/EFI/ZBM
curl -o /boot/efi/EFI/ZBM/VMLINUZ.EFI -L https://get.zfsbootmenu.org/efi
cp /boot/efi/EFI/ZBM/VMLINUZ.EFI /boot/efi/EFI/ZBM/VMLINUZ-BACKUP.EFI
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
efibootmgr -c -d "$DISK" -p "$BOOT_PART" -L "ZFSBootMenu (Backup)" -l '\EFI\ZBM\VMLINUZ-BACKUP.EFI'
efibootmgr -c -d "$DISK" -p "$BOOT_PART" -L "ZFSBootMenu" -l '\EFI\ZBM\VMLINUZ.EFI'
adduser username
dpkg-reconfigure tzdata
dpkg-reconfigure console-setup
setupcon
dpkg-reconfigure keyboard-configuration
echo "swap PARTLABEL=swap /dev/urandom swap,offset=2048,cipher=aes-xts-plain64,size=512" >> /etc/crypttab
echo "/dev/mapper/swap    none    swap    defaults    0 0" >> /etc/fstab

useradd -m -G wheel -s /bin/bash username
passwd username

echo "%wheel ALL=(ALL:ALL) ALL" >> /etc/sudoers

exit
umount -l -n -R /mnt
zpool export rpool-lp01
reboot

zu den Problemen
auf dem Laptop hab ich ein Doppellogin fuer die Festplatte, ist die jetzt zweimal verschluesselt durch cryptsetup und ZFS?
wenn ich die Swap ueber die Anleitung erstelle braucht er ewig lang zum booten und wird als swappoff angezeigt, erstelle ich sie hinter gehts ratsfatz
Wenn ich
zfs create rpool-lp01/var/lib/AccountsService
zfs create rpool-lp01/var/lib/NetworkManager
bekomm ich die Fehlermeldung "parents are dont exist" hab aber keine ahnung warum

irgendwo ist da noch der wurm drin :-/
 
Wie groß isn der Overhead so bei HBAs?

Wenn ich nen 9400-16i an PCIe 3.0x1 häng, ist das blöd...? :hmm:
8 Gbit sind das mh?
2.5 Gbit hab ich momentan, 10 Gbit kommt sobald es 10GbE Switches gibt, die man(ich) daheim auch haben will, die Rechner werden allerdings mangels PCIe ne NIC per 10G USB bekommen.
Momentan hab ich ein Z1 aus 4-5x 20tb HDD dran (mit 2x M.2 SVDEV direkt am PCIe) und ein Mirror aus 2x 870 Evo.

Ich hätt schon noch nen PCIe 3.0x2 Slot (je nach Config auch x4), würde mir den aber gern frei halten.
 
OpenZFS unter OSX und Windows, aktueller Stand:

OpenZFS auf OSX 2.3.1 released


Verbesserungen rund um Raid-Z Expansion, vdev Rebalance und Fast Dedup

OpenZFS auf OSX 2.4 Release-Kandidat
Verbesserungen rund um Leistung und Management
Bekannte Probleme vor der Verwendung prüfen und neue Probleme melden

- schnellere Verschlüsselung
- Standard Quotas
- Special Vdev mit Slog-Funktionalität (perfekt für Hybrid-Pools)
- weniger Fragmentierung


OpenZFS unter Windows 2.3.1 Release-Kandidat 14

Bekannte Probleme vor der Verwendung prüfen und neue Probleme melden

Windows verhält sich bei Mounts, Volumes und Locking unterschiedlich zu Linux/Unix und hat viel mehr Hardware- und Softwareoptionen.
Aus diesem Grund ist der Windows-Port komplizierter als der Linux- oder OSX-Port und erfordert mehr Tests mit verschiedener Hard- und Software

Ich hoffe auf den gleichen Zustand unter Windows als auf OSX asap.
 
Öh, 2.3.1-RC14 ist aber nicht "neu" bzw. schon was älter.
 
2.3.1 rc 14 vom letzten November ist die neueste:
Danach kommen debug builds um die letzten Issueprobleme zu testen


neueste ist jetzt
 
Zuletzt bearbeitet:
Ich hab hier ein großes Z1 aus 4 Platten, welches über die Zeit erweitert wurde um einen SVDEV Mirror und später nochmal um eine weitere HDD auf 5 Platten im Z1.

Eigentlich müssen die Daten ja neu geschrieben werden, um a) ihre Metadaten am SVDEV zu haben und auch um "den richtigen Speicherplatz" zu verbrauchen, da wohl schon geschriebene Daten am Z1 weiterhin auf den 4 Platten liegen und nicht über 5 verteilt sind.

Gibts da eine Art "rewrite" Befehl, ähnlich wie ein Scrub oder so?
Ne elegante Lösung?
 
Hab mal ne Frage zum Importieren eines zpools.
Den hatte ich vorher aus TrueNAS exportiert. Der Pool hat ein paar verschlüsselte Datasets mit der Methode "Phassphrase", man muss also jedesmal ein Passwort eingeben, wenn ich die entsprechenden Datasets öffnen möchte.
Auf dem System läuft jetzt Debian 13.
Mit "zpool import" wird mir der Pool auch angezeigt mit "Status: online" und beiden Festplatten.
Soweit so gut!

Bildschirmfoto_20260315_184300.png


Jetzt verstehe ich aber nicht ganz, wie ich den Pool richtig importiere, da hier die Beschreibungen im Netz teilweise gegeteilig sind.
Einmal heißt es man kann den Pool einfach mit "zpool import poolname" importieren, anders heißt es wieder man soll das auf keinen Fall so tun.
Da habe ich mir kurzerhand das Wiki von Arch Linux geschnappt (dort sind meist die Erklärungen recht gut).
Und dort steht nun folgendes:

"Use the -l flag when importing a pool that contains encrypted datasets keys, e.g.:# zpool import -l -d /dev/disk/by-id bigdata"

Jetzt bin ich letztendlich komplett verwirrt. Wie importiere ich nun diesen Pool richtig. Mounte ihn richtig und entschlüssele die Datasets?
 
bei -l werden halt die keys direkt beim importieren abgefragt, wenn du nur import ohne parameter nutzt, hast du wahrscheinlich die Datasets angzeigt aber kannst nicht zugreifen? Das ist nach meinem Verständnis der einzige Unterschied. Hab neulich mal damit auf Cachyos rumgespielt als ich versucht habe meine SSD auf die ich ZFS replication von Truenas mache zu testen und es mit -l gemacht.

Dass du die keys auf deinem system hinterlegen kannst und dann mit Referenz auf das keyfile mounten kannst weißt du ja bestimmt? Dann musst du das nicht jedesmal reinkloppen.

"Auf gar kein Fall machen" ist glaube ich übertrieben hier, -l ist mutmaßlich die beste Option aus o.g. Gründen.
 
Dass du die keys auf deinem system hinterlegen kannst und dann mit Referenz auf das keyfile mounten kannst weißt du ja bestimmt? Dann musst du das nicht jedesmal reinkloppen.
Aber genau das möchte ich. Das eben kein Key auf dem System liegt.
Unter TrueNAS wurde das ensprechende Dataset durch Eingabe der Phassphrase (Passwort) entsperrt.
 
Ok, wenn die Option ohne -l funktioniert hat und du beim ersten Zugriff gefragt wirst dann passt das doch perfekt für dich.

*edit*
Sorry hab ich vielleicht falsch gelesen, fragt er dich ohne -l überhaupt danach? Weil ansonsten musst du natürlich -l nutzen und dabei die passphrase angeben.
 
Ok, wenn die Option ohne -l funktioniert hat und du beim ersten Zugriff gefragt wirst dann passt das doch perfekt für dich.

*edit*
Sorry hab ich vielleicht falsch gelesen, fragt er dich ohne -l überhaupt danach? Weil ansonsten musst du natürlich -l nutzen und dabei die passphrase angeben.
Der Pool hat mehrere Datasets, welche mit und welche ohne Verschlüsselung.

Probiert habe ich noch keinen der beiden Befehle, da ich ja von euch wissen möchte, was korrekt wäre 😅
 
Und haben alle von denen die verschlüsselt sind die gleiche passphrase? Dann müsstest du mit -l eigentlich alle direkt entschlüsseln. Würde es einfach testen, wüsste jetzt nicht was da kaputt gehen soll :) Selbstverständlich hast du ja mehrere Backups ;)
 
Ja ich hab Backups, aber ich habe keine Lust wieder von vorne mit der Einrichtung anzufangen.
Da warte ich lieber bis sich jemand meldet, der sich damit richtig auskennt 😅
 
Such mal nach dem Befehl zfs rewrite - da du ja Backups hast, kannst ja mutig sein :d
No, isn NoBackup Volume, großteils zumindest. :fresse:
Die wichtigeren Sachen schon, aber ja... die Menge kannst halt nicht sinnvoll backuppen, das isses am Ende nicht wert. Außerdem... Nervenkitzel. Wie Arbeiten unter Spannung.
 
wenn du das nur entschlüsseln willst kannste einfach

echo "$PASSWORD" | zfs load-key "$ENCRYPTED_VOLUME"

also z.B.

in der CLI eingeben und anschliessend evtl noch mounten mit

zfs mount "$ENCRYPTED_VOLUME"



also z.B.
echo "geheimespwd" | zfs load-key "tank/cryptomatic"
zfs mount "tank/cryptomatic"


der mountpoint ist im ZFS (Sub)Volume definiert.
 
Zuletzt bearbeitet:
Im Normalfall sind die gecrypteten subvolumes - das heisst wie hier in meinem Beispiel von tank

tank ist normalerweise schon vorhanden - man importiert nur wenn überhaupt die "unterste" ebene

Import ist immer am Anfang wenn das komplette volume gecrypted ist und nicht nur das subvolume also dann vor load-key

Import heisst nur importe das ZFS Volume egal ob das gecrypted ist oder nicht - das spielt für import noch keine Rolle das steht ganz ganz am Anfang und heisst nur importiere irgendwas mit ZFS.

Mit
zfs list -o name,encryption,keystatus,encryptionroot

kannst Du dir einen Überblick verschaffen was wo wie als subvolume hängt

bei mir z.B.


Code:
root@dailyserver:/custom/scripte/startstuff# zfslist -o name,encryption,keystatus,encryptionroot
NAME                ENCRYPTION   KEYSTATUS    ENCROOT
zfstank             off          -            -
zfstank/encrypted   aes-128-gcm  available    zfstank/encrypted
zfstank/notcrypted  off          -            -

Und da wo überall nicht encryption off steht machste halt den load-key für den Name x/y und evtl den zfs mount (der mount wird meist automatisch gemacht)

Man kann auch das "Main Volume" hier zfstank crypten aber macht eigentlich niemand. meist ist das gecryptete in der Form x / y
 
Zuletzt bearbeitet:
Hä, was? Irgendwie stehe ich gerade total aufm Schlauch 😅

Also ich hab nen Pool exportiert von einem anderen System, nennen wir ihn mal Pool1.
Auf diesem Pool1 liegen mehrere Datasets, eins davon ist verschlüsselt.

Ich will den Pool1 nun in ein anderes System importieren, und dieses verschlüsselte Dataset mounten (dien anderen Datasets ignorieren wir jetzt auch al).
Dann müsste es doch so ablaufen, wenn ich es jetzt richtig verstanden habe:
  1. zpool import Pool1
  2. echo "geheimespwd" | zfs load-key "Pool1/cryptomatic"
  3. zfs mount "Pool1/cryptomatic"

Korrekt? Oder hab ich da jetzt was durcheinander gebracht?

Den Pool1 muss ich nur einmal importieren, korrekt?
Beitrag automatisch zusammengeführt:

der mountpoint ist im ZFS (Sub)Volume definiert.
Das bedeutet, der Mountpoint ist das gleiche wie auf dem alten System?
 
genau so ist es - aber dein subpool wird wohl kaum cryptomatic heissen das musste den Namen nehmen der halt da genutzt wurde

den findest nach dem import raus mit

zfs list -o name,encryption,keystatus,encryptionroot

Ja den Pool1 musste im Normalfall nur 1 x importieren ab dann ist der automatisch immer verfügbar


Ja der versuchrt den erstmal an den gleichen mountpoint zu legen wie im alten System der ist halt im ZFS Volume gespeichert.

Das kannste aber meine ich mit Angabe eines Zielverzeichnisses ändern

also "zfs mount Pool1/geheim /Zielverzeichnis" weiss aber nicht ob man da noch einen Parameter braucht hab ich schon ewig nicht mehr gemacht aber man kann den von Hand auch woanders hinmounten mit zfs mount das weiss ich noch :d

Sonst kannste das auch mit "zfs set mountpoint=/dahinsolls Pool1/geheim" setzen und zwar egal ob der Pool verschlüsselt ist oder nicht
 
Zuletzt bearbeitet:
Musst halt schauen ob damit weiterkommst - aber denke schon - wenn nicht schau ich sicher hier nochmal rein, vielleicht sehr ich was woran es hängen könnte, ich weiss zwar auch nicht alles über ZFS aber halt ein wenig - nutze das glaub seit es das auf FreeBSD 8(?) gab - bisher sogar ohne Datenverluste.

Da Du - habe ich gesehen - auch so Startup scripte gebastelt hast kannst ja evtl auch in meinem nachschauen, evtl siehst ja da noch was (ich decrypte mein ZFS automatisch beim Systemstart wenn es daheim ist und mein Passwortserver läuft)

Hehe und ja ich nutze da noch [ statt [[ etc - ist halt ein älteres Script das von Server zu Server gezogen ist aber muss ich mal überarbeiten :d

Meine Server laufen immer als LANG=C also grep-safe.

Bash:
#!/bin/bash

# Variables
POOL_NAME="zfstank"
ENCRYPTED_VOLUME="zfstank/encrypted"
NOTCRYPTED_VOLUME="zfstank/notcrypted"
ENCRYPTED_MOUNT_POINT="/tank"
NOTCRYPTED_MOUNT_POINT="/tanknotcrypted"
PASSWORD_PROG="curl -s --max-time 14 --connect-timeout 10 -X POST http://vitoconnect-aux.fritz.box/get-pass -d \"id=dailyserver\""

# Function to check if a ZFS pool is imported
is_pool_imported() {
  zpool list -H -o name | grep -q "^$POOL_NAME$"
}

# Function to check if a ZFS volume is already mounted
is_volume_mounted() {
  zfs list -H -o mounted $1 2>/dev/null | grep -q "yes"
}


# Import the pool if not already imported
if ! is_pool_imported; then
  echo "ZFS pool $POOL_NAME is not imported. Importing..."
  zpool import "$POOL_NAME"
  if [ $? -ne 0 ]; then
    echo "Error: Failed to import ZFS pool $POOL_NAME."
    exit 1
  fi
else
  echo "ZFS pool $POOL_NAME is already imported."
fi

# Check if the encrypted volume is already mounted
if is_volume_mounted "$ENCRYPTED_VOLUME"; then
  echo "$ENCRYPTED_VOLUME is already mounted at $ENCRYPTED_MOUNT_POINT. Skipping password prompt and mount."
else
  # Fetch the password for the encrypted volume from the HTTP server
  echo "Fetching password for $ENCRYPTED_VOLUME..."
  while true; do
    PASSWORD=$(bash -c "$PASSWORD_PROG")

    if [ -n "$PASSWORD" ]; then
      break
    else
      echo "Password not available, retrying in 5 seconds..."
      sleep 5
    fi
  done

  # Pipe the password to zfs load-key
  echo "$PASSWORD" | zfs load-key "$ENCRYPTED_VOLUME"
  if [ $? -ne 0 ]; then
    echo "Error: Failed to load key for $ENCRYPTED_VOLUME."
    exit 1
  fi

  # Mount the encrypted volume
  zfs mount "$ENCRYPTED_VOLUME"
  if [ $? -ne 0 ]; then
    echo "Error: Failed to mount $ENCRYPTED_VOLUME to $ENCRYPTED_MOUNT_POINT."
    exit 1
  else
    echo "$ENCRYPTED_VOLUME mounted at $ENCRYPTED_MOUNT_POINT."
  fi
fi

# Check if the unencrypted subvolume is already mounted
if is_volume_mounted "$NOTCRYPTED_VOLUME"; then
  echo "$NOTCRYPTED_VOLUME is already mounted at $NOTCRYPTED_MOUNT_POINT. Skipping mount."
else
  # Mount the unencrypted subvolume
  zfs mount "$NOTCRYPTED_VOLUME"
  if [ $? -ne 0 ]; then
    echo "Error: Failed to mount $NOTCRYPTED_VOLUME to $NOTCRYPTED_MOUNT_POINT."
    exit 1
  else
    echo "$NOTCRYPTED_VOLUME mounted at $NOTCRYPTED_MOUNT_POINT."
  fi
fi

exit 0
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh