Udgivelse af ZFS on Linux 0.8.0, implementeringen af ZFS til Linux-kernen

Efter næsten to års udvikling præsenteret udgivelse ZFS på Linux 0.8.0, implementeringen af ZFS-filsystemet som et modul til Linux-kernen. Modulens funktionalitet er testet med Linux-kerners fra 2.6.32 til 5.1. Klar installationspakker vil komme snart. vil blive forberedt til de vigtigste Linux-distributioner, inklusive Debian, Ubuntu, Fedora, RHEL/CentOS. ZFS på Linux er allerede en del af distributionerne Debian, Ubuntu, Gentoo, Sabayon Linux og ALT Linux.

I forbindelse med ZFS på Linux er der forberedt implementeringer af ZFS-komponenter, der relaterer sig både til filsystemets funktionalitet og til funktionen af volumenhåndtereren. Specifikt er komponenter som SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) og ZPL (ZFS POSIX Layer) implementeret. Derudover giver projektet mulighed for at bruge ZFS som backend til det klyngebaserede filsystem Lustre. Projektets arbejde er baseret på den originale ZFS-kode importeret fra OpenSolaris-projektet og udvidet med forbedringer og rettelser fra Illumos-fællesskabet. Projektet udvikles med deltagelse af medarbejdere fra Livermore National Laboratory under kontrakt med det amerikanske energiministerium.

Koden distribueres under den frie CDDL-licens, som ikke er kompatibel med GPLv2, hvilket forhindrer integrationen af ZFS på Linux i den centrale kerneversion af Linux, da blanding af kode under GPLv2 og CDDL ikke er tilladt. For at omgå denne licenskompatibilitet blev det besluttet at distribuere produktet fuldstændigt under CDDL-licensen som et separat downloadbart modul, der leveres separat fra kernen. Stabiliteten af kodens base for ZFS på Linux vurderes at være sammenlignelig med andre filsystemer til Linux.

Vigtige ændringer:

  • Indbygget understøttelse af kryptering af lagrede data på filsystem- og partitionsniveau er blevet tilføjet. Som standard bruges algoritmen aes-256-ccm til kryptering. Kommandoen «zfs load-key» er foreslået til indlæsning af krypteringsnøgler;
  • Muligheden for at overføre krypterede data under udførelse af kommandoerne «zfs send» og «zfs receive» er implementeret. Ved at angive indstillingen «-w» overføres allerede krypterede data i puljen til en anden pulje som de er, uden mellemliggende dekryptering. Ved denne form for kopiering forbliver data beskyttet af afsenderens nøgle, hvilket gør det muligt at bruge denne tilstand til backup på usikre systemer (i tilfælde af kompromittering af modtageren, kan angriberen ikke få adgang til dataene uden nøglen);
  • Understøttelse af fjernelse af primære drev fra lagringspuljen er blevet tilføjet, både forbundet enkeltvis og som en del af et spejl. Fjernelsen udføres med kommandoen «zpool remove». Under fjernelsen kopieres data fra det udelukkede drev til de resterende primære drev i puljen;
  • Kommandoen «zpool checkpoint» er blevet tilføjet for at gemme den aktuelle tilstand af puljen med mulighed for at gå tilbage til det gemte tidspunkt (et snapshot af hele puljen oprettes). Denne funktion kan være nyttig under udførelsen af potentielt farlige komplekse administrative opgaver, der normalt fører til uoprettelige ændringer (f.eks. aktivering af flag for ny ZFS-funktionalitet eller rensning af data);
  • Kommandoen «zpool trim» er blevet tilføjet, hvilket giver mulighed for at informere de anvendte drev i puljen om sektorer, der ikke længere bruges. Anvendelse af TRIM-operationen kan forbedre SSD-drevets effektivitet og forhindre nedgang i deres ydeevne. For at aktivere en kontinuerlig baggrundsproces til udsendelse af TRIM-kommandoer er der introduceret en ny egenskab «autotrim»;
  • Kommandoen «zpool initialize» er blevet tilføjet for at initialisere al ikke-allokeret diskplads, hvilket giver hurtig klarhed til brug uden at reducere ydeevnen ved første adgang (f.eks. ved placering af virtualiserede lagringsløsninger som VMware VMDK);
  • Understøttelse af regnskab og kvoter på projektniveau er blevet tilføjet, hvilket supplerer de tidligere tilgængelige kvoter på bruger- og gruppe niveau. I bund og grund er projekter separate objektrum, der er knyttet til et særskilt ID (project ID). Bindingen bestemmes gennem operationen ‘chattr -p’ eller gennem arving af attributter. Kommandoerne «zfs project» og «zfs projectspace» er blevet præsenteret til styring af projektoprettelse og angivelse af diskpladsgrænser;
  • Muligheden for at oprette Lua-scripts til automatisering af forskellige opgaver med ZFS er blevet tilføjet. Scripts køres i specielle isolerede miljøer ved hjælp af kommandoen «zpool program»;
  • En ny biblioteksimplementering er blevet realiseret pyzfs, der tilbyder et stabilt API til administration af ZFS fra applikationer skrevet i Python. Biblioteket er en binding til libzfs_core og giver et identisk sæt funktioner, men anvender mere Python-venlige typer;
  • Kompatibiliteten med værktøjerne arcstat, arcsummary og dbufstat er sikret i Python 3. Værktøjerne arcstat.py, arc_summary.py og dbufstat.py er blevet omdøbt til versioner uden filtypen ‘.py’;
  • Support til Linux Kernel Direct IO (O_DIRECT) er tilføjet, hvilket muliggør adgang til data uden buffering og omgå caching;
  • Præsentation af præstationsoptimeringer:
    • Hastigheden på kommandoerne ‘scrub’ og ‘resilver’ er forbedret ved at opdele dem i to faser (en separat fase til scanning af metadata og bestemmelse af placeringen af de data blokke på disken, hvilket muliggør en efterfølgende kontrol ved hjælp af sekventiel læsning af data);
    • Støtte til datalægningsklasser (Allocation classes) er tilføjet,
      som gør det muligt at inkludere relativt små SSD-drev i puljen og anvende dem til opbevaring af bestemte typer ofte anvendte blokke, såsom metadata, DDT-data og små blokke med filer;
    • Ydelsen af administrationskommandoer, såsom
      ‘zfs list’ og ‘zfs get’, er forbedret ved at cache de metadata, der er nødvendige for deres funktion;
    • Støtte til parallelisering af blok tildelingsoperationer er tilføjet ved at starte separate ‘allocator’ processer for hver gruppe af metaslab. På almindelige systemer er der observeret en præstationsforøgelse på 5-10%, men på store systemer (8 128 GB SSD, 24-core NUMA, 256 GB RAM) kan stigningen i blok tildelingsoperationer nå op på 25%;
    • Muligheden for udskudt udførelse af kommandoen ‘resilver’ (omfordeling af data med hensyn til ændringer i konfigurationen af drev) er tilføjet — hvis der kører en ny operation, mens den tidligere ikke er afsluttet, vil den nye behandler først blive udført, når den tidligere er færdig;
    • Optimeringer er tilføjet i ZIL (ZFS Intent Log), der muliggør oprettelse og behandling af blokke, mens der stadig behandles blokke af lagringen;
    • Tiden til at registrere partitioner (zvol) i systemet er blevet forkortet. Når puljen indeholder et stort antal partitioner, bliver de nu tilgængelige straks efter ‘zpool import’ er udført;
    • Understøttelse af hardwareaccelereret beregning af SHA256 hashes og AES-GSM krypteringsoperationer ved brug af chips, der understøtter Intel QAT (Quick Assist Technology), er blevet tilføjet. Understøttelse af hardwareaccelerationsværktøjer fra Intel C62x chipset og CPU Atom C3000 er også blevet tilføjet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster