Btrfs

Btrfs vs OpenZFS

Btrfs vs OpenZFS
Datotečni sistem Btrfs ali B-drevo je najnovejši konkurent proti OpenZFS, verjetno najbolj odporni datotečni sistem tam zunaj. Oba datotečna sistema imata nekaj skupnih značilnosti, kot sta kontrolna vsota na podatkovnih blokih, transakcijskih skupinah in mehanizem kopiranja in pisanja, zaradi česar oba ciljata na uporabniške skupine. Kakšna je torej razlika in katero naj uporabite?

1. Mehanizem kopiranja na zapis (COW)

Oba datotečna sistema uporabljata mehanizem kopiranja in pisanja. To pomeni, da če poskušate spremeniti datoteko, noben datotečni sistem ne bo poskušal prepisati obstoječih podatkov na disku z novejšimi podatki. Namesto tega se novejši podatki zapišejo drugam in po zaključku operacije zapisovanja datotečni sistem preprosto pokaže na novejše podatkovne bloke in stari bloki se sčasoma reciklirajo. Ta mehanizem omogoča tako datotečnim sistemom, da imajo funkcije, kot so posnetki in kloniranje.

COW prav tako preprečuje robne primere, kot so delni zapisi, ki se lahko pojavijo zaradi panike v jedru ali izpada električne energije in lahko poškodujejo celoten datotečni sistem. Ko je COW na mestu, se je pisanje zgodilo ali se ni zgodilo, vmes ni.

2. Združevanje in RAID

Oba datotečna sistema nameravata odpraviti potrebo po upravitelju nosilcev, raidu in drugih abstrakcijah, ki se nahajajo med datotečnim sistemom in diski. To je bolj zanesljivo in zanesljivo kot strojni RAID krmilnik, preprosto zato, ker odpravlja eno samo točko okvare - sam RAID krmilnik.

OpenZFS ponuja stabilen, zanesljiv in uporabniku prijazen mehanizem RAID. Lahko zrcalite med pogoni, uporabite RAIDZ1, ki podatke razširi na 3 ali več diskov z enim paritetnim blokom. Tako lahko prenese okvaro 1 diska na Vdev. Podobno lahko RAIDZ2 uporablja 4 ali več diskov in zdrži do 2 diska, ki ne uspeta, podobno pa imamo RAIDZ3.

Tudi Btrfs ima te funkcije implementirane, razlika je preprosto v tem, da jih imenuje RAID, namesto RAIDZ itd. Nekatere bolj zapletene nastavitve matrike RAID, kot je RAID56, so v času pisanja tega besedila napačne in niso primerne za uporabo.

3. Licenciranje

Eden od razlogov, zakaj je OpenZFS prišel tako pozno v ekosistem GNU / Linux, je zaradi nezdružljivosti licenc z GNU GPL. Ne da bi se spuščali v preveč podrobnosti, je Btrfs pod GPL, ki uporabnikom omogoča, da vzamejo izvorno kodo in jo spremenijo, vendar bi morali biti spremembe objavljene tudi pod GPL in ostati odprtokodne.

Po drugi strani pa je OpenZFS licenciran pod CDDL, ki je veliko bolj dopusten in uporabnikom omogoča spreminjanje in distribucijo kode z večjo mero svobode.

4. Skupnosti in podjetja za njimi

OpenZFS ima za seboj množično skupnost. Skupnost FreeBSD, skupnost Illumos in številni drugi odprtokodni projekti se zanašajo na OpenZFS in tako prispevajo nazaj v datotečni sistem. Že od samega začetka je narasla večkrat glede na kodno osnovo, uporabniško bazo, funkcije in prilagodljivost. Podjetja, kot so Delphix, iXsystems, Joyent in številna druga, se zanašajo nanj in delajo pri svojih razvijalcih, ker je to osrednji del njihovega poslovanja. Mnogo več organizacij morda uporablja OpenZFS brez naše vednosti, zahvaljujoč licenci CDDL, jim ni treba izstopiti in takoj povedati, da jo uporabljajo.

Btrfs je imel Red Hat enega glavnih skrbnikov svoje skupnosti. Vendar je to nekaj časa nazaj doživelo velik udarec, ko je Red Hat opustil datotečni sistem, kar pomeni, da ga ne boste videli v nobenem prihodnjem RHEL-u in podjetje zanj ne bo zagotovilo komercialne podpore. SUSE pa je šel tako daleč, da je postal njihov privzetek in je še vedno uspešna skupnost, ki stoji za datotečnim sistemom s prispevki Facebooka, Intela in drugih 800 kilogramov težkih goril iz Silicijeve doline.

5. Zanesljivost

ZFS je bil zasnovan biti zanesljiv že od začetka. Ljudje imajo zpoole iz začetka 2000-ih, ki so še vedno uporabni in zanje zagotovo ne bodo tiho vračali napačnih podatkov. Da, nekaj je zalomilo datotek, ki so izginile za OpenZFS v Linuxu, toda glede na njegovo dolgo zgodovino je bil zapis presenetljivo čist.

Po drugi strani pa ima Btrfs težave že od samega začetka. Z napačnimi vmesniki za popravilo izgube podatkov in poškodb datotek. Tudi zdaj je v skupnosti malo za smeh. Naredi iz tega kar hočeš.

6. Podprti operacijski sistemi

Btrfs ima svoj izvorni datotečni sistem za Linux, medtem ko je bil ZFS zasnovan znotraj Sun-a za OS Solaris. Vendar je bil OpenZFS že zdavnaj prenesen na FreeBSD, Appleov OS X, odprtokodne izpeljanke Solarisa. Podpora za Linux je prišla nekoliko pozneje, kot bi predvidevali, toda tu je in korporacije se nanjo zanašajo. Tudi projekt za njegovo izvajanje v operacijskem sistemu Microsoft Windows precej napreduje, čeprav še ni povsem prisoten.

Zaključek: Opomba o monokulturah

Ves ta pogovor vas lahko prepriča, da uporabljate OpenZFS za varovanje svojih podatkov, kar pa ni slabo. Objektivno je boljši od Btrfs po značilnostih, zanesljivosti, skupnosti in še veliko več. Vendar na dolgi rok to na splošno morda ne bo dobro za odprtokodno skupnost.

V prispevku z naslovom, podobnem temu, avtor govori o nevarnosti monokultur. Spodbujam vas, da preberete to objavo. Bistvo tega je v tem - Možnosti so pomembne. Ena največjih prednosti odprtokodne programske opreme (in programske opreme na splošno) je, da imamo na voljo več možnosti. Obstajajo Apache in Nginx, BSD in Linux, OpenSSL in LibreSSL.

Če ima katera od teh ključnih tehnologij usodno napako, se svet ne bo nehal vrteti. Toda z razširjenostjo OpenZFS se je tehnologija shranjevanja spremenila v monokulturo. Torej, zelo bi rad, da razvijalci in sistemski programerji, ki to berejo, sprejmejo ne OpenZFS, ampak projekte, kot sta Btrfs in HAMMER.

Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...