Share
Embed
OpenZFS: Enterprise Storage mit Open Source
Welche Erwartungen haben Unternehmen an ein Storage-System? Können Open-Source-basierte Lösungen diese Anforderungen erfüllen? Ist Open Source günstiger als herkömmliche, proprietäre Lösungen? Oder kann man das gar nicht vergleichen?
Am Beispiel OpenZFS werden konkrete Anforderungen betrachtet und Vorteile als auch Herausforderungen aufgezeigt.
Wolfgang Stief
October 13, 2022
Transcript
30 slides
-
‣ open minded geek and engineer ‣ Dipl.-Ing. Elektrische Energietechnik
‣ selbständig (2011), Mitgründer sys4 AG (2012) technisches Marketing und Technology Scout @ data://disrupted Teilzeitvorstand und Projektkümmerer @ sys4 AG Storage Consulting für Holstein IT Solutions ‣ Alteisen, Fotografie, Alteisenfotografie ‣ [email protected] https://www.linkedin.com/in/wstief/ @SpeicherStief / @stiefkind (Twitter) https://data-disrupted.de/ # whoami -
‣ Preis-Leistung maximale Kapazität aus minimaler Plattenanzahl ‣ zuverlässig,
langzeitstabil “Daten sind das neue Gold.” ‣ schnell ‣ hochverfügbar ‣ georedundant Anforderungen an Enterprise Storage -
‣ Volume Manager + Filesystem Zpool + ZFS ‣
“self-healing” mit Einschränkungen ‣ Copy on Write, Snapshots zfs send | recv ‣ getrennte Schreib- und Lesecaches ZIL, ARC, L2ARC ‣ Compression + Deduplication ‣ Encryption OpenZFS – What’s it all about? -
‣ 2001 ➛ Je ff Bonwick und Matt Ahrens arbeiten
an einem Nachfolger für UFS Motivation: fsck mit damals modernen, großen Platten dauert lange Wichtiges Designziel: Zuverlässigkeit/Performance von (teurem) Enterprise Storage, aber mit (billigen) unzuverlässigen SATA-Platten, Bitrot ‣ 2006 ➛ Initial Release mit Solaris 10 6/06 (≙ Solaris 10 Update 2) ab Mai 2008 OpenSolaris mit ZFS im Quellcode ‣ Forks von ZFS: FreeBSD, Linux, macOS Forks von OpenSolaris (mit ZFS): Illumos, OmniOS, SmartOS u. a. ‣ Januar 2010 ➛ Oracle kau ft Sun und schließt Zugang zum OpenSolaris Repository ‣ 2013 ➛ OpenZFS als “Umbrella Project” fasst parallele Entwicklung von FreeBSD, Linux, macOS zusammen ‣ 2017 ➛ OpenZFS on Windows (pre-release state) ‣ 2022 ➛ Amazon FSx for OpenZFS Geschichtswissenscha ft – Historie von ZFS -
Terminologie zpool Stripe, Mirror, RAID-Z, RAID-Z2, RAID-Z3 free vdev vdev
vdev vdev vdev vdev vdev L2ARC ZIL optional vdev HotSpare ZFS Dataset A ZFS Dataset B ZFS Dataset C -
‣ “Intelligenter Volume Manager” ➛ kennt belegte Blöcke ‣
Checksums auf allen Blöcken ➛ fletcher2, fletcher4, sha256, sha512, skein, edonr, blake3 ➛ o ff loading möglich: Intel Quick Assist Technology Adapter (QAT) ➛ sinnvoll nur mit ECC Memory ‣ Self-Healing ➛ funktioniert nur mit Redundanz (Mirror, RAID-Z) ➛ Scrubbing: alle (belegten) Blöcke (kein fsck!) ➛ Resilvering: nur out of date Blöcke (z. B. vdev-Tausch) ‣ Feature Flags (OpenZFS) vs. File System Version (Oracle ZFS) ➛ Flags sind modular und kumulativ ➛ nicht jede Implementierung kann notwendigerweise alle Feature Flags. Volume Manager und Filesystem -
‣ bestehende Blocks werden bei Änderung nicht überschrieben ➛
schneller ➛ Snapshots gibt’s (fast) für umme ‣ zfs snapshot datasetname@snapname ➛ read-only Snapshot ‣ zfs clone snapname datasetname ➛ Snapshot wird read-write als neues dataset ‣ zfs send | recv ➛ Snapshots ans andere Ende der Welt bewegen Copy on Write und Snapshots Checksumme A Checksumme B Checksumme C Checksumme Uberblock Checksumme A (neu) Checksumme AB Checksumme AC Checksumme AA Checksumme Uberblock' ZFS Dataset ZFS Dataset Snapshot -
Copy on Write ohne Snapshot (1/3) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme AB Checksumme AC Checksumme AA ZFS Dataset -
Copy on Write ohne Snapshot (2/3) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme A (neu) Checksumme AB Checksumme AC Checksumme AA ZFS Dataset -
Copy on Write ohne Snapshot (3/3) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme A (neu) Checksumme AB Checksumme AC Checksumme AA ZFS Dataset Fragmentierung! -
Copy on Write mit Snapshot (1/4) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme AB Checksumme AC Checksumme AA ZFS Dataset -
Copy on Write mit Snapshot (2/4) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme AB Checksumme AC Checksumme AA Checksumme Uberblock' ZFS Dataset ZFS Dataset Snapshot # zfs snapshot dataset@snapname -
Copy on Write ohne Snapshot (3/4) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme A (neu) Checksumme AB Checksumme AC Checksumme AA Checksumme Uberblock' ZFS Dataset ZFS Dataset Snapshot -
Copy on Write ohne Snapshot (4/4) Checksumme A Checksumme B
Checksumme C Checksumme Uberblock Checksumme A (neu) Checksumme AB Checksumme AC Checksumme AA Checksumme Uberblock' ZFS Dataset ZFS Dataset Snapshot -
‣ ZIL – ZFS Intent Log ➛ nur für
synchrone Writes ➛ kann auf eigenem vdev liegen (auch Mirror) ‣ ARC – Adaptive Replacement Cache ➛ schneller als Last Recently Used ➛ ARC ist im RAM und zwangsweise da ➛ L2ARC kann auf eigenem vdev liegen (SSD, NVMe) ➛ entwickelt 2006 @ IBM Research Caching @ ZFS RAM ARC L2ARC vdev ZIL vdev Transaction Group Zpool vdev vdev vdev vdev vdev vdev vdev sync write async write read -
‣ On-the-fly Compression ➛ Property per Dataset ➛
lzjb, lz4, gzip (1-9), zle ➛ zusätzliche Performance durch weniger I/O ‣ On-the-fly Deduplication ➛ braucht CPU und insbesondere Memory für DDT – Dedup Table ➛ DDT grob ca. 1-3 GB je 1 TB Daten ➛ Deduplication grei ft immer auf kompletten Pool ➛ DDT ist SPOF! ‣ Generell: Besser Compression als Deduplication Compression und Deduplication -
‣ Pool Resize ➛ add/remove vdev @ RAID-Z ‣
aktive Community ➛ monatliches OpenZFS Leadership Meeting (Youtube) ➛ jährliche OpenZFS Developer Conference (Youtube) ‣ “It’s done, when it’s done” ➛ alles Freiwillige, teilweise wird Arbeitszeit “gesponsort” ‣ Current: OpenZFS 2.1.6 https://github.com/openzfs Zukun f -
‣ Preis-Leistung maximale Kapazität aus minimaler Plattenanzahl ‣ zuverlässig,
langzeitstabil “Daten sind das neue Gold.” ‣ schnell ‣ hochverfügbar ‣ georedundant Anforderungen an Enterprise Storage – OpenZFS ✓ ✓ ± / ✓ 💰 (✓ ) ‣ RAID-Z, -Z2, -Z3 Compression, Dedup ‣ Checksumme je Block Resilvering ‣ ZIL, L2ARC (!HPC) ‣ externe Lösungen ‣ zfs send | recv asynchron only! -
‣ CDDL Common Development and Distribution License ‣
basiert auf Mozilla ‣ von Open Source Initiative für gut befunden (Januar 2005) ‣ CDDL vs. GPL in Linux Kernel darf nur GPL FreeBSD ist weniger religiös ‣ Entscheidend für Enterprise Deployment? Lizenzprobleme? -
… und Oracle ZFS? ‣ integraler Bestandteil von Solaris ‣
getrennter Entwicklungszweig ‣ andere Schwerpunkte (Database, Enterprise) ‣ Filesystem-Versionen anstatt Feature Flags ‣ anderes On-Disk-Layout inkompatibel ab ZFS Pool Version >28 -
‣ 2009: Übernahme FreeNAS FreeBSD Entwickler gingen Richtung Debian
‣ TrueNAS Core (formerly known as FreeNAS) TrueNAS Enterprise (FreeBSD) TrueNAS SCALE (Debian) ‣ SMB, NFS, iSCSI, FC, Cinder, S3 ‣ Appliance mit WebUI ➛ geprü ft e, zertifizierte Hardware ➛ Support, Wartung ‣ https://www.ixsystems.com/ Werbeblock (1/2) – iXsystems -
‣ IT-Systemhaus mit Fokus auf Open Source Lösungen ‣ TrueNAS®
Preferred Authorized Reseller ‣ Beratung, Planung, Installation, Wartung, Support ‣ https://truenas.de/ Werbeblock (2/2) – Holstein IT-Solutions -
‣ openzfs.org Developer Ressources, Community, Contribution ‣ OpenZFS Dokumentation
https://openzfs.github.io/openzfs-docs/ ‣ OpenZFS Youtube Channel https://www.youtube.com/c/OpenZFStalks ‣ Talk @ data://disrupted The Summit: ZFS – Was ist das und wie nutze ich das? https://youtu.be/uMvCq9Scdrc # cat /opt/ressources