Troboj datotečnih sustava: ZFS vs BTRFS vs EXT4

Dolaskom ZFS podrške na Linux probudila se zainteresiranost Linux korisnika, entuzijasta i administratora za njegovo isprobavanje. Iako ZFS na području datotečnih sustava i nije tako nov, dosad je bio namijenjen samo korisnicima BSD-a, (Open)Solarisa te ostalih Unixoida.

Predstavljanjem ZFS podrške također se u igru ubacuje jedan stari poznanik – BTRFS. Iako je već dosta vremena dostupan u kernelu, nije bio tako interesantan jer je još uvijek u aktivnom razvoju. S obzirom na to da ZFS treba ručno uključiti u kernel, a BTRFS je još uvijek nestabilan, postavlja se pitanje ima li smisla pružiti priliku ovim datotečnim sustavima? Ext4 se pokazao kao vrlo stabilan i pouzdan.

ZFS je došao na Linux

ZFS je došao na Linux

 

BTRFS

BTRFS je skraćenica od B-Tree File System, često nazivan i “Better Filesystem” kao i “Butterfuss“, “Butter FS”. BTRFS je sada ne baš tako novi datotečni sustav, koji razvijaju Oracle, Red Hat, Fujitsu, Intel, SUSE i mnogi drugi. Licenciran je pod GPL licencom i kao takav dostupan svakome. Njegov rad zasnovan je na principu CoW – Copy On Write ili, doslovno prevedeno, kopiraj tijekom pisanja.
CoW ima prednosti, ali i nedostataka. Može imati negativan efekt u radu s velikim datotekama koje imaju malo nasumičnih pisanja. Primjerice, takve su datoteke s bazama podataka ili slike virtualnih mašina. CoW se može isključiti mountanjem s “nodatacow” opcijom.

BTRFS projekt je započet 2009. godine i još uvijek nema stabilno izdanje. Smatra se da je još pod “heavy developmentom” ili aktivnim razvojem, što znači da se savjetuje samo za testiranje uz preporučuje se redovit backup podataka. Kako je integriran u linux kernel, to ga čini zanimljivim za isprobavanje.

Najznačajnije stavke su:

  • snapshot (snimak) – mogu biti samo za čitanje ili i za pisanje
  • pool (polje ili bazen, doslovni prevod)
  • 2^64 byte == 16 EiB maksimalna veličina datoteke
  • Efikasno pakiranje malih datoteka
  • Efikasno indeksiranje direktorija
  • Dinamička alokacija čvorova
  • Subparticije (podparticije?)
  • Kompresija (zlib i LZO)
  • Konverzija postojećih ext3/ext4 datotečnih sustava

I još dosta toga.
 

ZFS

ZFS (Zetta Filesystem) je malo stariji projekt od BTRFS-a. Razvio ga je Sun Microsystems. To je ujedno datotečni sustav i upravitelj logičkim particijama (LVM).

ZFS je utemeljen kao softver otvorenog koda licenciran pod CDDL licencom (Common Development and Distribution License). Poput BTRFS-a, ZFS također posjeduje storage poolove. Kako nije pod GPL licencom, to onemogućava integraciju u izvorni kod linux kernela, no, to mu je omogućilo da se proširi s Open Solarisa na FreeBSD, OS X, FreeNAS, NetBSD i OpenIndianu. Za 7 godina aktivnog razvoja ZFS se razvio u stabilan i zreo datotečni sustav, a također se može naći i neophodna dokumentacija kao i podrška u bilo kojoj Solaris/BSD udruzi.

Sve module i alate ćete morati sami doinstalirati ili nabaviti odgovarajući userspace driver kako bi mogli iskoristiti prednosti ZFS-a.
Njegove prednosti do izražaja dolaze kod diskova velikih kapaciteta kao i u radu s velikim datotekama čime nadmašuje popularni Ext4. Zbog toga je pogodan za servere, ali i na desktopu bi trebao biti solidan izvođač.

Najbitnije značajke ZFS datotečnog sustava:

  • Zaštita od gubitka podataka
  • Podrška za velike diskovne kapacitete
  • Integracija koncepta datotečnog sustava i upravitelja particijama
  • Snapshotovi
  • CoW (copy-on-write) klonovi/preslike
  • Kontinualna provjeru integriteta i automatska popravka
  • RAID-Z
  • nativni NFSv4 ACLs.

Od ovih treba posebno izdvojiti RAID-Z i scrub.

RAID-Z predstavlja softverski RAID. Može raditi u 3 režima rada:

  • RAID-Z1 – vrlo sličan RAID-5, moguć je rad s jednim oštećenim diskom
  • RAID-Z2 – vrlo sličan RAID-6, moguć je radi i s dva oštećena diska
  • RAID-Z3 – rad je moguć i s tri oštećena diska.

Za razliku od Ext datotečnih sustava, za provjeru integriteta i popravak pogrešaka, ZFS koristi scrub.

Osnovne razlike između scrub i fsck:

  • fsck mora biti pokrenut offline, odnosno na neaktivnom datotečnom sustavu, što znači da datotečni sustav ne smije biti montiran i korišten tijekom izvršavanja,
  • fsck obično provjerava samo metapodatke, dok pojedinačne podatke ne, što znači da podaci mogu ostati oštećeni ili nečitljivi i nakon “popravki”
  • scrub ne zahtijeva ZFS za svoje izvršavanje. Osnova njegovog rada je da se izvršava na aktivnom, montiranom datotečnom sustavu
  • scrub provjerava sve, uključujući meta i pojedinačne podatke.

 

Snapshotovi i storage poolovi
Snapshotovi ili preslike su glavna odlika ZFS-a. Zasnovani su na CoW principu. Moguće je zadržati stare blokove podataka, dok ZFS piše nove podatke, omogućujući snapshot verziji datotečnog sustava da se održava. Budući da su podaci već ranije zapisani na disku, kreiranje snapshota teče dosta brzo.

Storage pools ili polja za pohranu baziraju se na virtualnim poljima za pohranu nazvanim virtual storage pools ili zpools. Stvaraju ih virtualni uređaji (virtual devices ili vdevs) koji su načinjeni od blokova uređaja kao što su datoteke, diskovne particije ili čak čitavi diskovi. Tradicionalni datotečni sustavi smješteni na jednom uređaju zahtjevaju upravitelja diskovima i particijama za korištenje više od jednog uređaja. ZFS-ov storage pool (zpool) dosta sliči računalnom RAM-u po načinu rada.
 

EXT4

Ext4 je žurnalistički datotečni sustav, nastao kao nasljednik Ext3. Prvo stabilno izdanje nastalo je 2008., a razvojna inačica predstavljena je 2006. godine. Zapravo, Ext4 je uzeo većinu stvari od postojećeg Ext3, pretrpjevši određene izmjene.

Osnovne značajke su:

  • Veličina datotečnog sustava – Ext4 teoretski podržava diskove kapaciteta do 1 exbibajta (1 EiB) i datoteke do 16 tebibajtova (TiB)
  • Opsezi – nadomještaju tradicionalnu blok shemu korištenu u Ext2 i Ext3. Jedan opseg može udomiti do 128 MiB međuprostora s veličinom blokova od 4 KiB
  • Podrška za starije verzije – Ext4 podržava prethodne Ext2 i Ext3 datotečne sustave, međutim, Ext3 nije u potpunosti kompatibilan s Ext4 što je i logično
  • Brža provjera datotečnog sustava
  • Alokator multiblokova
  • Odgođena alokacija
  • Povećanje ograničenja subdirektorija na 32,000

Iako je unaprijeđen u odnosu na Ext3 i ima poboljšanu zaštitu podataka, Ext4 počiva na zastarjeloj tehnologiji.
 

ZAKLJUČAK:

Promatrajući jedan i drugi datotečni sustav možemo primijetiti da ZFS i BTRFS imaju nekolicinu dobrih zajedničkih im karakteristika.
Oba FS-a omogućavaju administratorima rad s velikom količinom podataka koja kruži na mnogo uređaja za pohranu podataka. Oba FS-a imaju snapshote (preslike) i podržavaju povratak i transfer složenih datotečnih sustava na drugu mašinu. BTRFS, za razliku od ZFS-a, je kompatibilan s Ext4 datotečnim sustavom (koji je najčešći na Linux strojevima) što znači da je moguće BTRFS konvertirati u Ext4 i obratno.
S druge strane, ZFS, uz pomoć polja (poolova), podržava eksportiranje s drugih operativnih sustava na Linux, kao što smo već prije spomenuli (BSD i Solaris), što administratorima sustava može biti jako korisno.
BTRFS posjeduje značajnu diff” stavku koja omogućava korisnicima uspoređivanje sadržaja datoteke koja trenutno egzistira s prethodnom verzijom te datoteke. To može biti idealno razvijateljima softvera da prate promjene u kodu ili dokumentaciji koristeći snapshotove. No, pored toga, još uvijek je u fazi utemeljivanja na Linuxovom tlu. Ext4 je možda iz toga razloga još uvijek najkorišteniji, a ujedno je i stabilan. Uostalom, nema neke bitne novotarije koje nude druga dva datotečna sustava. Uglavnom je brz i pouzdan, no u nekim slučajevima, kao npr. kod velikih datoteka i slika, ZFS i BTRFS nadmašuju Ext4.

Da biste koristili bilo koji od ova dva, morate obrisati MBR i kreirati GPT particijsku tablicu.

Na Vama je da odlučite hoćete li pružiti priliku “mlađim” tehnologijama. ZFS i BTRFS bi vrijedilo isprobati. Autor ovih redaka je uspio uspostaviti ZFS na svom Arch Linuxu i prvi utisci su jako pozitivni.
Savjet: probajte kreirati snapshot, eksportirati pool, pokušajte vratiti ili uništiti podatke i promotrite kako će se koji datotečni sustav ponašati u određenim situacijama. Izbor je Vaš, a ako ste avanturističkog duha, želite biti u tijeku ili imate server koji radi s velikim podacima, svakako pošaljite ZFS i BTRFS na testnu vožnju.

Usporedba 1:

gzip kompresija

 

Usporedba 2:

Preformanse čitanja

 

PostMark Benchmark:

PostMark benchmark

 
Izvor:Wikipedia
Autor: Dino O.

Click to rate this post!
[Total: 0 Average: 0]
VN:F [1.9.22_1171]
Stari sustav ocjenjivanja
Rating: 5.0/5 (5 votes cast)
Troboj datotečnih sustava: ZFS vs BTRFS vs EXT4, 5.0 out of 5 based on 5 ratings

You may also like...

8 komentara

  1. Grof napisao:

    Nije ZFS baš za desktop mašine. Tamo bih ja ipak preporučio Ext4.
    Pogledajte usporednu tablicu brzine Ext4 i ZFS-a i sve će vam biti jasno 😉
    http://www.phoronix.com/scan.php?page=news_item&px=MTM1NTA

    • Slamd64 napisao:

      Zato sam i naveo da je dobar kod velikih podataka i naravno diskova velikog kapaciteta. U standardnim uslovima je u pravilu prilicno sporiji od ext4.

  2. Captain Hook napisao:

    Kakvu to zaštitu od gubitka podataka ima ZFS? hvala

    • Grof napisao:

      Uglavnom preko RAID-Z-a, te s pomoću nadmoćnije “scrub” provjere podataka na FS-u.

      RAID-Z u osnovi radi kao RAID-5 polje, što skroz pojednostavljeno znači:
      Ako ti rikne jedan disk u polju podaci se NE gube. Dovoljno ga je samo zamijeniti ispravnim. Jedino, ako bi riknula dva diska (u Z1 sustavu) onda gubiš podatke, no koja je šansa da ćeš izgubiti istovremeno oba diska? Zanemariva!
      Minus ovakvog sustava jest da za RAID-Z moraš imati minimalno 3 diska, a slobodan prostor u takvom polju mjeri se kao disk-1 (dakle tri diska od 100 GB daju ti 200 GB sigurnog prostora za pohranu – što je bolja iskoristivost nego kod mirroringa)

    • Slamd64 napisao:

      ovo je vise bio neki generalni osvrt. stvarno bi se o svakom posebno dalo jos dosta pisati, a sama prica je obicnom korisniku pravi smor i vjerovatno bi odustao od citanja, mada smatram da je i ovo previse za pocetnika. jedna od stvari koja nije ovdje navedena, a spada pod zastitu podataka je checksum. mozda znas kako radi checksum kad skines npr neki veliki zip file. on poredi blok po blok te arhive, datoteke ili sta god da je i trazi da li se velicina tog bloka poklapa sa onim u checksumu, te javlja ti ako je ostecena. tako slicno i kod ZFS-a. ako se poklapa, onda ce ti blokovi biti “vraceni”. dalje imas snapshotove koji prave sliku ranijeg stanja neke datoteke i moze je vratiti ako ti sadasnje stanje datoteke nije rezultat koji si zelio postici. potom scrub koji vrsi provjeravanje valjanosti svake datoteke, za razliku od fscka koji vrsi provjeru samo “najvaznijih” metapodataka. i onda jos softverski raid koji sadrzi sve podatke na vise virtualnih diskova, tako da ako jedna podparticija bude ostecena, taj isti podatak je na drugom.sto se tice samog podesavanja, btrfs je lako uspostaviti, jer je vec integrisan u Linux kernel, ali je zato eksperimentalan, dok je zfs stabilan, ali podesavanje istog zahtjeva malo vise posla. linkovi i upute za instalaciju nisu iz tog razloga ukljuceni u recenziju, jer se postupak moze razlikovati od distre do distre. zato imaju wikiji. ako nekoga zanima kako da predje s ext4 na zfs ili btrfs moze pitati na forumu.

      • Brane2 napisao:

        @grof:

        Šansa gubitka više od jednog diska i nije tako zanemariva. Da jeste, ne bi bilo RAID-6

  3. Slamd64 napisao:

    eto Grof ti je dao jos bolji odgovor po pitanju RAID-Z kao jedne od mjera zastite podataka.

  4. juzer napisao:

    nije baš da je važno ali ext4 je povećao broj poddirektorija sa 32 na 64 tisuće.
    Inače odličan članak…