Verëffentlechung vun ZFS op Linux 0.8.0, Implementatioune vun ZFS fir de Linux Kernel

No bal zwee Joer Entwécklung presentéiert Fräisetzung ZFS op Linux 0.8.0, eng Implementatioun vum ZFS Dateiesystem verpackt als Modul fir de Linux Kernel. De Modul gouf mat Linux Kernels vun 2.6.32 bis 5.1 getest. Fäerdeg Installatiounspakete kommen geschwënn wäert virbereet ginn fir grouss Linux Verdeelungen dorënner Debian, Ubuntu, Fedora, RHEL / CentOS. Den ZFS op Linux Modul ass schonn an Debian, Ubuntu, Gentoo, Sabayon Linux an ALT Linux Verdeelungen abegraff.

Als Deel vun ZFS op Linux ass eng Implementatioun vun ZFS Komponenten am Zesummenhang mat der Operatioun vum Dateiesystem an dem Fonctionnement vum Volume Manager virbereet ginn. Besonnesch déi folgend Komponenten ginn ëmgesat: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) an ZPL (ZFS POSIX Layer). Zousätzlech bitt de Projet d'Fäegkeet ZFS als Backend fir de Luster Cluster Dateisystem ze benotzen. D'Aarbecht vum Projet baséiert op ursprénglechen ZFS Code importéiert vum OpenSolaris Projet a verbessert mat Verbesserungen a Fixer vun der Illumos Gemeinschaft. De Projet gëtt mat der Participatioun vu Mataarbechter vum Livermore National Laboratory ënner engem Kontrakt mam US Department of Energy entwéckelt.

De Code gëtt ënner enger gratis CDDL Lizenz verdeelt, déi mat GPLv2 inkompatibel ass, wat ZFS op Linux net erlaabt an d'Haaptzweig vum Linux Kernel integréiert ze ginn, well d'Vermëschung vum Code ënner GPLv2 an CDDL Lizenzen net erlaabt ass. Fir dës Lizenzinkompatibilitéit ze ëmgoen, gouf decidéiert de ganze Produkt ënner der CDDL Lizenz als separat loadbare Modul ze verdeelen, deen separat vum Kär geliwwert gëtt. D'Stabilitéit vum ZFS op Linux Codebase gëtt als vergläichbar mat anere Dateiesystemer fir Linux bewäert.

Main Ännerungen:

  • Agebauten Ënnerstëtzung fir d'Verschlësselung vu gespäichert Daten um Niveau vum Dateiesystem a Partitionen dobäigesat. De Standard Verschlësselungsalgorithmus ass aes-256-ccm. De Kommando "zfs load-key" gouf proposéiert fir Verschlësselungsschlësselen ze lueden;
  • Implementéiert d'Fäegkeet fir verschlësselte Donnéeën ze transferéieren wann Dir d''zfs send' an 'zfs receive' Kommandoen ausféiert. Wann Dir d'Optioun "-w" spezifizéiert, ginn d'Donnéeën, déi schonn am Pool verschlësselt sinn, an en anere Pool transferéiert wéi et ass, ouni Zwëschentschlësselung. Mat sou enger Kopie bleiwen d'Donnéeën duerch de Schlëssel vum Sender geschützt, wat et erlaabt dëse Modus fir Backup op onvertrauenswierdeg Systemer ze benotzen (wann den Empfänger kompromittéiert ass, kann den Ugräifer net op d'Donnéeën ouni de Schlëssel zougräifen);
  • Ënnerstëtzung bäigefüügt fir primär Drive aus engem Späicherpool ze läschen, souwuel individuell an als Deel vun engem Spigel verbonnen. D'Entféierung gëtt mam Kommando "zpool remove" duerchgefouert. De Läschprozess kopéiert d'Donnéeën aus dem ausgeschlossene Fuert op déi verbleiwen primär Drive am Pool;
  • De Kommando "zpool Checkpoint" bäigefüügt fir den aktuellen Zoustand vum Pool ze späicheren mat der Fäegkeet fir weider Ännerungen op de gespäicherten Zäitpunkt zréckzekréien (e Schnappschëss vum ganze Pool gëtt erstallt). Dës Fonktioun kann nëtzlech sinn am Prozess vun enger leeschtungsfäheg geféierlech komplex administrativ Aarbecht, déi ënner normal Konditiounen zu irreversibel Ännerungen féiert (zum Beispill, Fändelen fir nei ZFS Funktionalitéit aktivéieren oder Daten läschen);
  • De Kommando "zpool trim" gouf bäigefüügt fir d'Drives ze informéieren déi am Pool benotzt ginn iwwer Secteuren déi net méi am Gebrauch sinn. D'Benotzung vun der TRIM Operatioun mécht et méiglech d'Effizienz vun SSDs ze erhéijen an d'Degradatioun vun hirer Leeschtung ze verhënneren. Eng nei "Autotrim" Eegeschafte gouf proposéiert fir de kontinuéierleche Backgroundprozess z'erméiglechen fir TRIM Kommandoen z'iwwerdroen;
  • Added "zpool initialize" Kommando fir all net allokéierten Disk Space ze initialiséieren, wat et erlaabt datt se direkt prett sinn fir ze benotzen, ouni Leeschtungsverschlechterung um éischte Zougang (zum Beispill wann Dir virtualiséiert Späichere wéi VMware VMDK hostt);
  • Zousätzlech Ënnerstëtzung fir Comptabilitéits- a Projetsniveau Quoten, zousätzlech zu virdrun verfügbare Benotzer- a Gruppeniveau Quoten. Am Wesentlechen sinn Projeten e separaten Raum vun Objeten, déi mat engem separaten Identifizéierer (Projet ID) assoziéiert sinn. D'Verbindung gëtt definéiert iwwer d''chattr -p' Operatioun oder iwwer Attribut Ierfschaft. Fir d'Projetmanagement ginn d'Befehle "zfs project" an "zfs projectspace" präsentéiert, déi Iech erlaben d'Schafung vu Projeten ze verwalten an d'Disk Space Limite fir si ze setzen;
  • Füügt d'Fäegkeet Lua Scripten ze kreéieren fir verschidde Aarbecht mat ZFS ze automatiséieren. Skripte ginn an speziellen isoléierten Ëmfeld mat dem Kommando "zpool Programm" benotzt;
  • Nei Bibliothéik ëmgesat pyzfs, déi e stabile API fir d'Verwaltung vun ZFS vu Python Uwendungen ubitt. D'Bibliothéik ass e Wrapper ronderëm libzfs_core a bitt en identesche Set vu Funktiounen, awer benotzt méi no Python-Typen;
  • D'arcstat, arcsummary, an dbufstat Utilities goufen kompatibel mat Python 3. D'arcstat.py, arc_summary.py, an dbufstat.py Utilities goufen ëmbenannt op Versiounen ouni d'".py" Extensioun;
  • Zousätzlech Ënnerstëtzung fir d'Linux Direct IO (O_DIRECT) Kernel-Interface, déi Zougang zu Daten erlaabt ouni Puffer an de Cache ëmzegoen;
  • Leeschtung Optimisatiounen agefouert:
    • D'Aarbecht vun de Kommandoen "Scrub" a "Resilver" gouf beschleunegt wéinst der Spaltung an zwou Phasen (eng separat Phase gouf fir d'Scannen vun Metadaten zougewisen an d'Plaz vun de Blocken mat Daten op der Disk ze bestëmmen, wat weider Verifizéierung mat sequentiellen Donnéeën erlaabt liesen);
    • Zousätzlech Ënnerstëtzung fir Allocatiounsklassen,
      Erlaabt relativ kleng SSDs ze poolen a benotzt fir nëmme bestëmmten Typen vun allgemeng benotzte Blocken ze späicheren, wéi Metadaten, DDT-Daten a kleng Dateieblocken;

    • Verbesserte Leeschtung vun Admin Kommandoen wéi z
      "zfs Lëscht" an "zfs kréien", andeems d'Metadaten déi néideg sinn fir hir Operatioun ze cachen;

    • Ënnerstëtzung bäigefüügt fir Paralleliséierung vu Blockallokatiounsoperatiounen andeems se separat Allocatorprozesser fir all Metaslab Grupp lafen. Op konventionell Systemer gëtt et eng Leeschtungserhéijung vu 5-10%, awer op grouss (8 128 GB SSD, 24 Kär NUMA, 256 GB RAM), kann d'Erhéijung vun der Blockallokatiounsoperatioune 25% erreechen;
    • D'Méiglechkeet vun der Verspéidung vun der Ausféierung vum Kommando "Resilver" bäigefüügt (Datenverdeelung nei opzebauen andeems d'Verännerungen an der Konfiguratioun vun den Drive berécksiichtegt) - wann dee virdrun nach net ofgeschloss ass beim Start vun enger neier Operatioun, da fänkt den neien Handler nëmmen no auszeféieren. déi virdrun ass fäerdeg;
    • Optimisatiounen goufen op den ZIL (ZFS Intent Log) hinzugefügt fir d'Schafung an d'Veraarbechtung vu Blocken an der Präsenz vu Blocken ze erméiglechen, déi nach ëmmer vun der Späichere veraarbecht ginn;
    • Reduzéiert Aschreiwung Zäit fir Partitionen (zvol) am System. Wann e Pool eng grouss Zuel vu Partitionen enthält, sinn se elo direkt verfügbar nodeems se "zpool Import" gemaach hunn;
    • Zousätzlech Ënnerstëtzung fir Hardware beschleunegt Berechnung vun SHA256 Hashes an AES-GSM Verschlësselungsoperatioune mat Intel QAT (Quick Assist Technology) Chips. Zousätzlech Ënnerstëtzung fir Hardware Beschleunegung vum Intel C62x Chipsatz an CPU Atom C3000.

Source: opennet.ru

Setzt e Commentaire