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

Nakon skoro dvije godine razvoja predstavljen pustiti ZFS na Linuxu 0.8.0, implementacija ZFS sistema datoteka upakovanog kao modul za Linux kernel. Modul je testiran sa Linux kernelima od 2.6.32 do 5.1. Uskoro gotovi instalacioni paketi će biti pripremljeni za glavne Linux distribucije uključujući Debian, Ubuntu, Fedora, RHEL/CentOS. ZFS na Linux modulu je već uključen u Debian, Ubuntu, Gentoo, Sabayon Linux i ALT Linux distribucije.

Kao dio ZFS-a na Linuxu, pripremljena je implementacija ZFS komponenti koje se odnose i na rad sistema datoteka i na funkcionisanje upravljača volumena. Konkretno, implementirane su sljedeće komponente: SPA (Storage Pool Allocator), DMU (Jedinica za upravljanje podacima), ZVOL (ZFS Emulated Volume) i ZPL (ZFS POSIX Layer). Dodatno, projekat pruža mogućnost korišćenja ZFS-a kao pozadine za Luster klaster fajl sistem. Rad projekta je zasnovan na originalnom ZFS kodu uvezenom iz OpenSolaris projekta i poboljšanom poboljšanjima i ispravkama iz Illumos zajednice. Projekat se razvija uz učešće zaposlenih u Livermorskoj nacionalnoj laboratoriji prema ugovoru sa Ministarstvom energetike SAD.

Kod se distribuira pod besplatnom CDDL licencom, koja nije kompatibilna sa GPLv2, što ne dozvoljava da se ZFS na Linuxu integriše u glavnu granu Linux kernela, jer nije dozvoljeno mešanje koda pod GPLv2 i CDDL licencama. Da 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čitati, a koji se isporučuje odvojeno od jezgre. Stabilnost ZFS-a na Linux kodnoj bazi ocijenjena je kao uporediva sa drugim sistemima datoteka za Linux.

Glavne promjene:

  • Dodata ugrađena podrška za enkripciju pohranjenih podataka na nivou sistema datoteka i particija. Zadani algoritam šifriranja je aes-256-ccm. Komanda "zfs load-key" je predložena za učitavanje ključeva za šifriranje;
  • Implementirana je mogućnost prijenosa šifriranih podataka prilikom izvršavanja naredbi 'zfs send' i 'zfs receive'. Kada navedete opciju “-w”, podaci koji su već šifrirani u spremištu se prenose u drugo spremište kao što jesu, bez međudešifriranja. Kod takvog kopiranja podaci ostaju zaštićeni ključem pošiljaoca, što omogućava korištenje ovog načina za pravljenje rezervnih kopija na nepouzdanim sistemima (ako je primalac kompromitovan, napadač neće moći pristupiti podacima bez ključa);
  • Dodata podrška za uklanjanje primarnih diskova iz spremišta za pohranu, povezanih i pojedinačno i kao dio ogledala. Uklanjanje se vrši naredbom "zpool remove". Proces brisanja kopira podatke sa izuzete disk jedinice na preostale primarne disk jedinice u spremištu;
  • Dodata je naredba "zpool checkpoint" za spremanje trenutnog stanja bazena s mogućnošću vraćanja daljnjih promjena na spremljenu tačku u vremenu (kreira se snimak cijelog bazena). Ova funkcija može biti korisna u procesu obavljanja potencijalno opasnog složenog administrativnog posla, koji u normalnim uslovima dovodi do nepovratnih promjena (na primjer, aktiviranje zastavica za novu ZFS funkcionalnost ili brisanje podataka);
  • Komanda "zpool trim" je dodana da informiše diskove koji se koriste u spremištu o sektorima koji više nisu u upotrebi. Upotreba TRIM operacije omogućava povećanje efikasnosti SSD-ova i sprečavanje degradacije njihovih performansi. Predloženo je novo svojstvo "autotrim" kako bi se omogućio kontinuirani pozadinski proces prenošenja TRIM komandi;
  • Dodata naredba "zpool initialize" za inicijalizaciju cijelog nedodijeljenog prostora na disku, što omogućava da bude odmah spreman za upotrebu, bez degradacije performansi pri prvom pristupu (na primjer, kada se hostuju virtuelizirane skladišta kao što je VMware VMDK);
  • Dodata podrška za računovodstvo i kvote na nivou projekta, pored prethodno dostupnih kvota na nivou korisnika i grupe. U suštini, projekti su poseban prostor objekata pridruženih posebnim identifikatorom (ID projekta). Vezivanje je definirano putem 'chattr -p' operacije ili putem nasljeđivanja atributa. Za upravljanje projektima, predstavljene su komande “zfs project” i “zfs projectspace”, koje vam omogućavaju da upravljate kreiranjem projekata i postavite ograničenja prostora na disku za njih;
  • Dodata mogućnost kreiranja Lua skripti za automatizaciju različitog rada sa ZFS-om. Skripte se pokreću u posebnim izolovanim okruženjima koristeći naredbu "zpool program";
  • Implementirana nova biblioteka pyzfs, koji pruža stabilan API za administriranje ZFS-a iz Python aplikacija. Biblioteka je omotač oko libzfs_core i pruža identičan skup funkcija, ali koristi bliže Python tipove;
  • Uslužni programi arcstat, arcsummary i dbufstat su kompatibilni sa Python 3. Uslužni programi arcstat.py, arc_summary.py i dbufstat.py su preimenovani u verzije bez ekstenzije ".py";
  • Dodata podrška za Linux Direct IO (O_DIRECT) interfejs kernela, koji omogućava pristup podacima bez baferovanja i zaobilaženja keša;
  • Uvedene optimizacije performansi:
    • Rad naredbi “scrub” i “resilver” je ubrzan zbog podjele u dvije faze (posebna faza je dodijeljena za skeniranje metapodataka i određivanje lokacije blokova sa podacima na disku, što omogućava dalju provjeru korištenjem sekvencijalnih podataka čitanje);
    • Dodata podrška za klase alokacije,
      omogućavanje 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šane performanse administratorskih naredbi kao što su
      "zfs list" i "zfs get", keširanjem metapodataka neophodnih za njihov rad;

    • Dodata podrška za paralelizaciju operacija alokacije blokova pokretanjem odvojenih procesa alokatora za svaku metaslab grupu. Na konvencionalnim sistemima, postoji povećanje performansi od 5-10%, ali na velikim (8 128 GB SSD, 24 jezgra NUMA, 256 GB RAM-a), povećanje operacija dodjele blokova može doseći 25%;
    • Dodana je mogućnost odgođenog izvršavanja naredbe "resilver" (ponovna izgradnja distribucije podataka uzimajući u obzir promjene u konfiguraciji pogona) - ako prethodna još nije završena prilikom pokretanja nove operacije, tada će se novi rukovatelj početi izvršavati tek nakon prethodni je završen;
    • Dodane su optimizacije u ZIL (ZFS Intent Log) kako bi se omogućilo kreiranje i obrada blokova u prisustvu blokova koji se još uvijek obrađuju u skladištu;
    • Smanjeno vrijeme registracije za particije (zvol) u sistemu. Kada bazen sadrži veliki broj particija, one su sada dostupne odmah nakon "zpool importa";
    • Dodata podrška za hardverski ubrzano izračunavanje SHA256 heševa i operacija AES-GSM enkripcije koristeći Intel QAT (Quick Assist Technology) čipove. Dodata podrška za hardversko ubrzanje Intel C62x čipseta i CPU Atom C3000.

izvor: opennet.ru

Dodajte komentar