Izdanje ZFS-a na Linuxu 0.8.0, implementacije ZFS-a za Linux kernel

Nakon gotovo dvije godine razvoja predstavio puštanje ZFS na Linuxu 0.8.0, implementacija ZFS datotečnog sustava zapakirana kao modul za Linux kernel. Modul je testiran s Linux kernelima od 2.6.32 do 5.1. Uskoro stižu gotovi instalacijski paketi bit će pripremljeno za glavne distribucije Linuxa uključujući Debian, Ubuntu, Fedora, RHEL/CentOS. Modul ZFS on Linux već je uključen u distribucije Debian, Ubuntu, Gentoo, Sabayon Linux i ALT Linux.

U sklopu ZFS-a na Linuxu pripremljena je implementacija ZFS komponenti vezanih kako za rad datotečnog sustava tako i za rad volume managera. Konkretno, implementirane su sljedeće komponente: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) i ZPL (ZFS POSIX Layer). Dodatno, projekt pruža mogućnost korištenja ZFS-a kao pozadine za datotečni sustav Luster klastera. Rad na projektu temelji se na izvornom ZFS kodu uvezenom iz projekta OpenSolaris i poboljšanom poboljšanjima i popravcima iz zajednice Illumos. Projekt se razvija uz sudjelovanje zaposlenika Nacionalnog laboratorija Livermore prema ugovoru s američkim Ministarstvom energetike.

Kod se distribuira pod besplatnom CDDL licencom, koja je nekompatibilna s GPLv2, što ne dopušta integraciju ZFS-a na Linuxu u glavnu granu Linux kernela, budući da miješanje koda pod GPLv2 i CDDL licencama nije dopušteno. Kako bi se zaobišla ova nekompatibilnost licence, odlučeno je da se cijeli proizvod distribuira pod CDDL licencom kao modul koji se može zasebno učitavati, a koji se isporučuje odvojeno od jezgre. Stabilnost ZFS-a na Linux bazi koda ocijenjena je kao usporediva s drugim datotečnim sustavima za Linux.

Velike promjene:

  • Dodana ugrađena podrška za enkripciju pohranjenih podataka na razini datotečnog sustava i particija. Zadani algoritam šifriranja je aes-256-ccm. Predložena je naredba "zfs load-key" za učitavanje ključeva šifriranja;
  • Implementirana je mogućnost prijenosa šifriranih podataka prilikom izvršavanja naredbi 'zfs send' i 'zfs receive'. Kada se navede opcija "-w", podaci koji su već šifrirani u spremištu prenose se u drugo spremište kakvi jesu, bez međudešifriranja. Takvim kopiranjem podaci ostaju zaštićeni ključem pošiljatelja, što omogućuje korištenje ovog načina za backup nepouzdanim sustavima (u slučaju kompromitacije primatelja, napadač neće moći pristupiti podacima bez ključa);
  • Dodana je podrška za uklanjanje primarnih pogona iz spremišta za pohranu, povezanih pojedinačno i kao dio zrcala. Uklanjanje se provodi naredbom "zpool remove". Proces brisanja kopira podatke s izuzetog pogona na preostale primarne pogone u skupu;
  • Dodana je naredba "zpool checkpoint" za spremanje trenutnog stanja skupa s mogućnošću vraćanja daljnjih promjena na spremljenu točku u vremenu (stvara se snimka cijelog bazena). Ova značajka može biti korisna u procesu obavljanja potencijalno opasnog složenog administrativnog posla, koji u normalnim uvjetima dovodi do nepovratnih promjena (na primjer, aktiviranje zastavica za novu ZFS funkcionalnost ili brisanje podataka);
  • Dodana je naredba "zpool trim" za informiranje pogona koji se koriste u skupu o sektorima koji se više ne koriste. Korištenje operacije TRIM omogućuje povećanje učinkovitosti SSD-ova i sprječavanje degradacije njihovih performansi. Predloženo je novo svojstvo "autotrim" za omogućavanje kontinuiranog pozadinskog procesa prijenosa TRIM naredbi;
  • Dodana naredba "zpool initialize" za inicijalizaciju cijelog nedodijeljenog diskovnog prostora, što mu omogućuje da bude trenutačno spreman za upotrebu, bez degradacije performansi pri prvom pristupu (na primjer, kada hostirate virtualizirane pohrane kao što je VMware VMDK);
  • Dodana podrška za računovodstvo i kvote na razini projekta, uz prethodno dostupne kvote na razini korisnika i grupe. U biti, projekti su zaseban prostor objekata povezanih s posebnim identifikatorom (ID projekta). Povezivanje je definirano putem 'chattr -p' operacije ili putem nasljeđivanja atributa. Za upravljanje projektima predstavljene su naredbe “zfs project” i “zfs projectspace” koje vam omogućuju upravljanje stvaranjem projekata i postavljanje ograničenja prostora na disku za njih;
  • Dodana je mogućnost stvaranja Lua skripti za automatizaciju raznih poslova sa ZFS-om. Skripte se pokreću u posebnim izoliranim okruženjima pomoću naredbe "zpool program";
  • Implementirana nova biblioteka pyzfs, koji pruža stabilan API za administriranje ZFS-a iz Python aplikacija. Knjižnica je omot oko libzfs_core i pruža identičan skup funkcija, ali koristi bliže Python tipove;
  • Pomoćni programi arcstat, arcsummary i dbufstat postali su kompatibilni s Python 3. Pomoćni programi arcstat.py, arc_summary.py i dbufstat.py preimenovani su u verzije bez ekstenzije ".py";
  • Dodana podrška za Linux Direct IO (O_DIRECT) kernel sučelje, koje omogućuje pristup podacima bez međuspremnika i zaobilaženja predmemorije;
  • Uvedene optimizacije izvedbe:
    • Rad naredbi "scrub" i "resilver" ubrzan je zbog podjele u dvije faze (posebna faza je dodijeljena za skeniranje metapodataka i određivanje lokacije blokova s ​​podacima na disku, što omogućuje daljnju provjeru pomoću sekvencijalnih podataka čitanje);
    • Dodana podrška za klase dodjele,
      dopuštanje relativno malih SSD-ova da se skupe i koriste za pohranjivanje samo određenih tipova često korištenih blokova, kao što su metapodaci, DDT podaci i mali blokovi datoteka;

    • Poboljšana izvedba administratorskih naredbi kao što su
      "zfs list" i "zfs get", keširanjem metapodataka potrebnih za njihov rad;

    • Dodana podrška za paralelizaciju operacija dodjele blokova pokretanjem zasebnih procesa dodjele za svaku grupu metaploča. Na konvencionalnim sustavima dolazi do povećanja performansi od 5-10%, ali na velikim (8 128 GB SSD, 24 jezgre NUMA, 256 GB RAM-a), povećanje u operacijama dodjele blokova može doseći 25%;
    • Dodana je mogućnost odgođenog izvršenja naredbe "resilver" (ponovna izgradnja distribucije podataka uzimajući u obzir promjene u konfiguraciji pogona) - ako prethodna još nije dovršena prilikom pokretanja nove operacije, tada će se novi rukovatelj početi izvršavati tek nakon kraj prethodnog;
    • Optimizacije su dodane u ZIL (ZFS Intent Log) kako bi se omogućilo stvaranje i obrada blokova u prisustvu blokova koji se još uvijek obrađuju u pohrani;
    • Smanjeno vrijeme registracije za particije (zvol) u sustavu. Kada skup sadrži veliki broj particija, one su sada dostupne odmah nakon izvođenja "zpool importa";
    • Dodana podrška za hardverski ubrzani izračun SHA256 hashova i AES-GSM enkripcijskih operacija pomoću Intel QAT (Quick Assist Technology) čipova. Dodana podrška za hardversko ubrzanje Intel C62x čipseta i CPU Atom C3000.

Izvor: opennet.ru

Dodajte komentar