Izdaja ZFS v Linuxu 0.8.0, implementacije ZFS za jedro Linuxa

Po skoraj dveh letih razvoja predstavljeno sprostitev ZFS na Linuxu 0.8.0, implementacija datotečnega sistema ZFS, pakirana kot modul za jedro Linuxa. Modul je bil testiran z jedri Linuxa od 2.6.32 do 5.1. Pripravljeni namestitveni paketi bodo kmalu na voljo bodo pripravljeni za glavne distribucije Linuxa, vključno z Debian, Ubuntu, Fedora, RHEL/CentOS. Modul ZFS on Linux je že vključen v distribucije Debian, Ubuntu, Gentoo, Sabayon Linux in ALT Linux.

V okviru ZFS na Linuxu je pripravljena implementacija komponent ZFS, ki se nanašajo tako na delovanje datotečnega sistema kot tudi na delovanje upravljalnika nosilcev. Implementirane so zlasti naslednje komponente: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) in ZPL (ZFS POSIX Layer). Poleg tega projekt omogoča uporabo ZFS kot zaledja za datotečni sistem gruče Luster. Delo projekta temelji na izvirni kodi ZFS, uvoženi iz projekta OpenSolaris in izboljšani z izboljšavami in popravki skupnosti Illumos. Projekt se razvija s sodelovanjem zaposlenih v Nacionalnem laboratoriju Livermore po pogodbi z ameriškim ministrstvom za energijo.

Koda se distribuira pod brezplačno licenco CDDL, ki ni združljiva z GPLv2, kar ne dovoljuje integracije ZFS v Linuxu v glavno vejo jedra Linuxa, saj mešanje kode pod licencama GPLv2 in CDDL ni dovoljeno. Da bi se izognili tej nezdružljivosti licence, je bilo odločeno, da se celoten izdelek distribuira pod licenco CDDL kot modul, ki ga je mogoče naložiti ločeno in je dobavljen ločeno od jedra. Stabilnost kodne baze ZFS na Linuxu je ocenjena kot primerljiva z drugimi datotečnimi sistemi za Linux.

Večje spremembe:

  • Dodana vgrajena podpora za šifriranje shranjenih podatkov na ravni datotečnega sistema in particij. Privzeti algoritem šifriranja je aes-256-ccm. Za nalaganje šifrirnih ključev je bil predlagan ukaz "zfs load-key";
  • Implementirana možnost prenosa šifriranih podatkov pri izvajanju ukazov 'zfs send' in 'zfs receive'. Ko podate možnost »-w«, se podatki, ki so že šifrirani v področju, prenesejo v drugo področje, kakršni so, brez vmesnega dešifriranja. Pri takem kopiranju podatki ostanejo zaščiteni s ključem pošiljatelja, kar omogoča uporabo tega načina za varnostno kopiranje nezaupljivih sistemov (če je prejemnik ogrožen, napadalec brez ključa ne bo mogel dostopati do podatkov);
  • Dodana podpora za odstranjevanje primarnih pogonov iz pomnilniškega področja, povezanih posamično in kot del zrcala. Odstranitev se izvede z ukazom "zpool remove". Postopek brisanja kopira podatke iz izključenega pogona na preostale primarne pogone v skupini;
  • Dodan ukaz "zpool checkpoint" za shranjevanje trenutnega stanja bazena z možnostjo povrnitve nadaljnjih sprememb na shranjeno časovno točko (ustvarjen je posnetek celotnega bazena). Ta funkcija je lahko uporabna v procesu izvajanja potencialno nevarnega kompleksnega administrativnega dela, ki v normalnih pogojih vodi do nepopravljivih sprememb (na primer aktiviranje zastavic za novo funkcionalnost ZFS ali brisanje podatkov);
  • Ukaz »zpool trim« je bil dodan za obveščanje pogonov, ki se uporabljajo v skupini, o sektorjih, ki niso več v uporabi. Uporaba operacije TRIM omogoča povečanje učinkovitosti SSD-jev in preprečevanje poslabšanja njihove zmogljivosti. Predlagana je bila nova lastnost "autotrim", ki omogoča neprekinjen proces v ozadju prenosa ukazov TRIM;
  • Dodan ukaz »zpool initialize« za inicializacijo vsega nedodeljenega prostora na disku, kar omogoča, da je takoj pripravljen za uporabo, brez poslabšanja zmogljivosti ob prvem dostopu (na primer pri gostovanju virtualiziranih shramb, kot je VMware VMDK);
  • Dodana podpora za kvote na ravni računovodstva in projekta, poleg prej razpoložljivih kvot na ravni uporabnikov in skupin. V bistvu so projekti ločen prostor objektov, povezanih z ločenim identifikatorjem (ID projekta). Vezava je definirana z operacijo 'chattr -p' ali z dedovanjem atributov. Za upravljanje projektov sta predstavljena ukaza “zfs project” in “zfs projectspace”, ki omogočata upravljanje ustvarjanja projektov in nastavitev omejitev prostora na disku zanje;
  • Dodana možnost ustvarjanja skriptov Lua za avtomatizacijo različnih del z ZFS. Skripte izvajamo v posebnih izoliranih okoljih z ukazom "zpool program";
  • Izvedena nova knjižnica pyzfs, ki zagotavlja stabilen API za upravljanje ZFS iz aplikacij Python. Knjižnica je ovoj okoli libzfs_core in zagotavlja identičen nabor funkcij, vendar uporablja bližje tipe Python;
  • Pripomočki arcstat, arcsummary in dbufstat so bili združljivi s Python 3. Pripomočki arcstat.py, arc_summary.py in dbufstat.py so bili preimenovani v različice brez pripone ".py";
  • Dodana podpora za vmesnik jedra Linux Direct IO (O_DIRECT), ki omogoča dostop do podatkov brez medpomnjenja in mimo predpomnilnika;
  • Uvedene optimizacije delovanja:
    • Delo ukazov "scrub" in "resilver" je bilo pospešeno zaradi razdelitve na dve fazi (ločena faza je bila dodeljena za skeniranje metapodatkov in določanje lokacije blokov s podatki na disku, kar omogoča nadaljnje preverjanje z uporabo zaporednih podatkov branje);
    • Dodana podpora za razrede dodeljevanja,
      omogočanje združevanja relativno majhnih diskov SSD in njihove uporabe za shranjevanje samo določenih tipov pogosto uporabljenih blokov, kot so metapodatki, podatki DDT in majhni bloki datotek;

    • Izboljšano delovanje skrbniških ukazov, kot je npr
      "zfs list" in "zfs get", s predpomnilnikom metapodatkov, potrebnih za njuno delovanje;

    • Dodana podpora za paralelizacijo operacij dodeljevanja blokov z izvajanjem ločenih procesov dodeljevalnika za vsako skupino metaplošč. Pri običajnih sistemih se zmogljivost poveča za 5-10 %, pri velikih (8 128 GB SSD, 24 jeder NUMA, 256 GB RAM-a) pa lahko povečanje operacij dodeljevanja blokov doseže 25 %;
    • Dodana možnost zakasnjenega izvajanja ukaza "resilver" (ponovna izgradnja distribucije podatkov ob upoštevanju sprememb v konfiguraciji pogonov) - če prejšnji še ni dokončan ob zagonu nove operacije, se bo novi upravljalnik začel izvajati šele po prejšnji se je končal;
    • V ZIL (ZFS Intent Log) so bile dodane optimizacije, ki omogočajo ustvarjanje in obdelavo blokov ob prisotnosti blokov, ki jih še vedno obdeluje shramba;
    • Skrajšan čas registracije za particije (zvol) v sistemu. Ko bazen vsebuje veliko število particij, so zdaj na voljo takoj po izvedbi "zpool import";
    • Dodana podpora za strojno pospešen izračun zgoščenih vrednosti SHA256 in operacije šifriranja AES-GSM z uporabo čipov Intel QAT (Quick Assist Technology). Dodana podpora za strojno pospeševanje nabora čipov Intel C62x in CPE Atom C3000.

Vir: opennet.ru

Dodaj komentar