Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenZFS: Enterprise Storage mit Open Source

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
Tweet

More Decks by Wolfgang Stief

Other Decks in Technology

Transcript

  1. ‣ 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
  2. ‣ Preis-Leistung 
 maximale Kapazität aus minimaler Plattenanzahl ‣ zuverlässig,

    langzeitstabil 
 “Daten sind das neue Gold.” ‣ schnell ‣ hochverfügbar ‣ georedundant 
 Anforderungen an Enterprise Storage
  3. ‣ 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?
  4. ‣ 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
  5. 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
  6. ‣ “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
  7. ‣ 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
  8. Copy on Write ohne Snapshot (1/3) Checksumme A Checksumme B

    Checksumme C Checksumme Uberblock Checksumme AB Checksumme AC Checksumme AA ZFS Dataset
  9. 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
  10. 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!
  11. Copy on Write mit Snapshot (1/4) Checksumme A Checksumme B

    Checksumme C Checksumme Uberblock Checksumme AB Checksumme AC Checksumme AA ZFS Dataset
  12. 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
  13. 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
  14. 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
  15. ‣ 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
  16. ‣ 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
  17. ‣ 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
  18. ‣ 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! 

  19. ‣ 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?
  20. … 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
  21. ‣ 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
  22. ‣ 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
  23. ‣ 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