» »

ZFS na Linuxu

ZFS na Linuxu

Slashdot - Sun-ov podatkovni sistem je doživel modularno predelavo ter je sedaj s pomočjo modula FUSE na voljo tudi za Linux. Zaradi nekompatibilnosti licenc še ni bil dodan v samo jedro. Projekt pod imenom ZFS on FUSE naj bi omogočil uporabnikom Linuxa, da uporabijo podatkovni sistem ZFS, brez da je ta integriran v samo jedro. Kot delujoča možnost je bil potrjen tudi zagon sistema z ZFS particije. Trenutna hitrost dosega le polovično zmožnost originalnega, vendar razvijalci upajo, da se jim bo posrečilo, kot pri NTFS projektu za Linux.

Izvorna novica!

21 komentarjev

KoKi ::

nah, hvala.
# hackable

jinzo ::

To glih ni nova novica... ampak že kar nekaj časa staro spoznanje. Zaradi tega se je tudi sprožila velika polemika dvojnega licenciranja kernel-a ( pod gplv2 in gplv3 ). Linus in Sun-ov CEO sta si pravtako izmenjala par zanimivih mail-ov ter tudi povabilo na večerjo... zanimiv stuff.

Quikee ::

Sun-ov podatkovni sistem je doživel modularno predelavo, ter je sedaj razpoložljiv tudi za Linux, pod projektnim imenon FUSE.

Ugh.. to pa ni pravilno. FUSE je ogrodje namenjeno za preprosto izdelavo FS-jev, ki delujejo v uporabniškem prostoru. Z FUSE je recimo narejen tudi NTFS-3g. Prav tako je "ZFS FUSE" zaradi tega ker je implementiran na FUSE "imun" na probleme licenciranja.

Zaradi nekompatibilnosti licenc, še ni bil dodan v samo jedro.

Noja kar tako ga ne morejo dat v jedro - tudi če ne bi bilo problemov z licencami, bi še vedno obstajal arhitekturni problem kako ZFS sploh vključit v samo jedro, potem (re)implementacija in nato testiranje in odpravljanje napak (v mm veji jedra).

EDIT: Sam zdaj bolj stavim na btrfs/mdraid/lvm2 kombinacijo kot na ZFS.

Zgodovina sprememb…

  • spremenil: Quikee ()

MrStein ::

pod projektnim imenon FUSE

Ta stavek je mimo tako slovnično kot pomensko. Prosim za popravek.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Brane2 ::

Vse te zadeve, ki laufajo preko FUSEja, so precej počasne.

To sicer ni bistveno, če rabiš kompatibilnost z recimo NTFS in boš podatke itak bodisi prenesel na kak native FS ali pa jih prebral ali vpisal samo enkrat.

Cel "fora" ZFS-a naj bi bile performanse in je dostop nanj skozi FUSE v veliki večini primerov povsem nekoristen, saj je rezultat počasnejši od najslabše "native" rešitve...
On the journey of life, I chose the psycho path.

jlpktnst ::

Za linux data rescue system torej je dober, za vse ostalo pa raje LinuxOnFat32? :D

MrStein ::

Brane2:
Vse te zadeve, ki laufajo preko FUSEja, so precej počasne.

Ne bo držalo. Razen če tu podlo lažejo, pa noben tega ni opazil : http://www.ntfs-3g.org/performance.html

Cel "fora" ZFS-a naj bi bile performanse in je dostop nanj skozi FUSE v veliki večini primerov povsem nekoristen, saj je rezultat počasnejši od najslabše "native" rešitve...

Si izmeril ?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

madviper ::

Zaenkrat ima Brane2 prav, hitrosti preko FUSE-a dosegajo le polovične zmožnosti, torej za kaj več kot reševanje podatkov res ni primerno. Ampak stvar je še v razvoju, ne gre za dokončen produkt, zato tudi upajo, da se bodo hitrosti dvignile.

Ja novica ni najnovejša, o projektu je že bilo govoric. Vendar je to prva informacija, da je stvar potrjeno delujoča. Govorice pa so se predvsem vrtele okrog težav z različnimi licencami, kar je povzročalo težave z kompatibilnostjo.

Težave s prilagajanjem programske kode kot same, ni bilo nikjer označeno kot težavno. Kjer je volja se najde tudi rešitev (če le ni zram licenčne politike).
I'd like to do something crazy!

hruske ::

Trditev, da FUSE ni primeren za laufat datotečni sistem, se mi ne zdi realna. Če obstaja datotečni sistem, ki ima to, kar rabiš, npr. copy on write, zakaj pa ne bi poganjal ZFS prek FUSE? Ali pa če ti je npr. všeč ideja, da datoteke še zakompresiraš.

Ta projekt nima zveze z "govoricami" o različnih licencah, ker se ta projekt sploh ne tika jedra samega. O licencah so govorili oz. se pritoževali čez Sun na lkml.org, Schwartz pa je na svojem blogu malo razpihal stvar, ko je Torvaldsa povabil na večerjo. Par tednov nazaj. zfs-on-fuse pa je že lanski Google Summer of Code projekt, tako da ne vem komu je to uspelo povezat skupaj.

Edino kar je skupnega, je dejstvo, da je nekdo opazil da stvar dela in kot nadomestek ZFS v kernelu ponudil širši javnosti v na znanje, avtor novice na slo-techu pa vsebine novice ni dovolj dobro razumel.

Težave s prilagajanjem kode za vključitev v jedro SO. Poglej ReiserFS4, še vedno ni v jedru, ljudje pa se s tem ukvarjajo že precej lep čas. ZFS naj bi bil prav tako grajen precej monolitično (dejstvo je, da obsega funkcionalnost večih VFS nivojev) in se kot tak ne bi lepo prilegal v trenutno strukturo Linux jedra.
Rad imam tole državico. <3

Brane2 ::


Trditev, da FUSE ni primeren za laufat datotečni sistem, se mi ne zdi realna. Če obstaja datotečni sistem, ki ima to, kar rabiš, npr. copy on write, zakaj pa ne bi poganjal ZFS prek FUSE? Ali pa če ti je npr. všeč ideja, da datoteke še zakompresiraš.


Če s tem misliš name, nikoli nisem rekel, da je FUSE zguba časa. Le da je namenjen določenem področju uporabe in to zagotovo ni high performanse.

FUSE je namenjen pokrivanju mnogih FSov, ki so doslej v kernelu slabo napredovali, tu predvsem mislim na NTFS, čeprav je mnogo drugih primerov.

okolje kernela je precej špartansko in neprijazno. Milijarda enih programčkov in struktur in mnoge vplivajo na mnoge druge na velikokrat ne povsem očitne načine. Nekdo spremeni neko malenkost v schedulerju pa nekomu drugemo ud*izi nekaj v driverju za kamero itd itd.
Moduli in driverji, ki jih uporabljajo mnogi bodo v nekem času popravljeni oziroma prilagojeni, manj uporabljani pa ne.

Zato so se spomnili, da bi naredili FUSE vmesnik, ki bo omogočil zainteresiranim razvoj driverja kar v userspaceu, kjer je omejitev bistveno manj in je življenje lažje.

Seveda pa ima stvar svojo ceno. Prvi del cene je zanesljivost samega FUSEa, ki vpliva na zanesljivost še tako dobrega modula, druga pa je cena v hitrosti same kombinacije. Dodatno premetavanje podatkjov skozi FUSE seveda nekaj stane, driver pa se (domnevam) bori za procesorski čas ob ostalih taskih, ki trenutno laufajo in ni privilegiran.

Kar se kompresije tiče, me bolj zanima Reiserjev4 cryptocompress, ki opravlja hkrati lahko dve pomembni nalogi- stiska datoteke in jih hkrati ščiti pred nepooblaščenimi spremembami in krajo podatkov.

Folk ki je zadevo inštaliral in jo že nekaj časa intenzivno uporablja, je v glavnem zelo zadovoljen.

Jaz saem ga pičil gor ( zaenkrat brez cryptocompressa, ker ga še ne znam aktivirat ) in tako na prvi uč stvar leti zelo lepo...
On the journey of life, I chose the psycho path.

Quikee ::

Ja samo vprašanje je če "overhead" zaradi FUSE-a sploh kaj vpliva na samo hitrost, saj konec koncev v dani situaciji ni procesor in ne pomnilnik "bottleneck", ampak disk(i). Na podobno "finto" lahko v nekaterih situacija s kompresijo v ZFS in reisier4 + cryptcompress povečaš prepustnost, saj se samo kompresiranje ne pozna tolko, kolko se pozna tolko zmanjšana količina podatkov, ki se shranjuje na disk(e) (znajo pa postat latence problem).

Zgodovina sprememb…

  • spremenil: Quikee ()

Mavrik ::

V bistvu glavni razlog za FUSE niti približno ni kernel okolje kot tako (še posebej za NTFS ne, pri ZFS je že malo bolj stvar problematična), ampak licence. Namreč, ne smejo oni dat v kernel neGPL stvari, kar jim uspešno preprečuje dat NTFS in ZFS direktno v kernel.
The truth is rarely pure and never simple.

Brane2 ::

In kako je potem ntfs support v kernelu?
On the journey of life, I chose the psycho path.

Zgodovina sprememb…

  • polepsal: Brane2 ()

Brane2 ::

Quikee:

Niti ne. Kaj misliš, da se bo zgodilo, če tvoj driverski task ne pride pravi čas do CPU časa ?

Hja, podatki bodo čakali v bufferju nanj. In če te podatke rabi nek drug task, bo s tem čakal tudi sam.

Se pravi, obremenitev CPUja s taski bo neposredno vplivala na samo hitrost tega filesistema.
On the journey of life, I chose the psycho path.

Zgodovina sprememb…

  • spremenil: Brane2 ()

chaos_AK ::

Brane: linuxov kernel je monoliten - je en sam velik program. Pa ni tako neprijazen za programirat, sploh če se držiš bolj 'uporabniške' strani - npr. pisanje driverjev. Če greš pa globlje, te pa lahko hitro začne bolet glava.

Glede hitrosti FUSE-a: res je, da userland driverji izgubijo na prednosti, ki bi jo imeli, če bi delovali kot del kernela v privilegiranem načinu, je pa možno, da driver deluje enako hitro ali pa celo hitreje. Če si predstavljaš npr. nek ftp strežnik, ki mora dosti brati po nekem datotečnem sistemu. v primeru da je gonilnik v uporabniškem prostoru, se večino časa izvajajo samo context switchi med procesom ftp strežnika in procesom gonilnika, kernel ima pa zelo malo dela. Če je pa gonilnik del kernela, se pa mora poleg context switcha izvajat še mode switch (iz uporabniškega v privilegiran način procesorja), ki pa ponavadi traja precej dlje zaradi dodatnih registrov, ki jih je potrebno shraniti / prebrati.

Sicer zfs-ja ne poznam, vem pa da je avtorjem ntfs-3g delo zelo dobro uspelo, in se hitrost oz. počasnost delovanja preko FUSE-a ne opazi. Tistim, ki imate na računalniku linux in kakšne ntfs particije, ga zelo priporočam ...

LP!
You must die ... I alone am best!

Brane2 ::

Brane: linuxov kernel je monoliten - je en sam velik program. Pa ni tako neprijazen za programirat, sploh če se držiš bolj 'uporabniške' strani - npr. pisanje driverjev. Če greš pa globlje, te pa lahko hitro začne bolet glava.



Pa saj pisanje poštenega FS v kernelu je en prekleto velik glavobol. Povezano je praktično z VSEM.
Sicer pa, tega nisem jaz pogruntal, so izjavile pametnejše glave, ki dejanjsko razvijajo in vzdržujejo te zadeve.
Zakaj misliš, da je razvoj ReiserFS-a in sploh Reiser4-ke trajal tako dolgo in tako postopoma in zakaj se je med tem časom marsikateri sistem temeljito usul ?


Glede hitrosti FUSE-a: res je, da userland driverji izgubijo na prednosti, ki bi jo imeli, če bi delovali kot del kernela v privilegiranem načinu, je pa možno, da driver deluje enako hitro ali pa celo hitreje. Če si predstavljaš npr. nek ftp strežnik, ki mora dosti brati po nekem datotečnem sistemu. v primeru da je gonilnik v uporabniškem prostoru, se večino časa izvajajo samo context switchi med procesom ftp strežnika in procesom gonilnika, kernel ima pa zelo malo dela. Če je pa gonilnik del kernela, se pa mora poleg context switcha izvajat še mode switch (iz uporabniškega v privilegiran način procesorja), ki pa ponavadi traja precej dlje zaradi dodatnih registrov, ki jih je potrebno shraniti / prebrati.


Ne vidim velike logike v tem. Vsak context switch te stane. Prvič zaradi spremebe v TLBjih in posledično temu flushanimi CPU cachei in drugič zaradi potrebnega preverjanja posredovanih podatkov. Ravno tako kot mora kernel preveriti podatke, ki mu jih da userland proces, jih mora tudi ta tvoj driver, pa če je v kernel spaceu ali pa userlandu. Poleg tega pa tak proces ne more vsega sam, torej potrebuje podporo v kernelu ( sicer FUSE-a ne bi bilo) in spet smo pri prehodu med procesi/naslovnimi prostori itd. Čisto možno je, da pri FUSEu plačaš ceno prehoda dvakrat- prvič ko kernel skozi FUSE posreduje podatke ustreznemu driverju in drugič, ko gredo ti podatki skozi FUSE na disk ali z njega.


Sicer zfs-ja ne poznam, vem pa da je avtorjem ntfs-3g delo zelo dobro uspelo, in se hitrost oz. počasnost delovanja preko FUSE-a ne opazi. Tistim, ki imate na računalniku linux in kakšne ntfs particije, ga zelo priporočam ...


Bomo probali...
On the journey of life, I chose the psycho path.

Zgodovina sprememb…

  • spremenil: Brane2 ()

BigWhale ::

> linuxov kernel je monoliten - je en sam velik program

No, to ni povsem res... V osnovi je monoliten ja. Ni pa povsem monoliten.

chaos_AK ::

BigWhale: Je monoliten. Je tudi modularen, vendar to ne pomeni da je kaj manj monoliten.

Brane2:
Zakaj misliš, da je razvoj ReiserFS-a in sploh Reiser4-ke trajal tako dolgo in tako postopoma in zakaj se je med tem časom marsikateri sistem temeljito usul ?

Ne vem, mogoče ma to kakšno povezavo s tem, da je bil ta Reiser tip obsojen (oz. obtožen) umora svoje žene? :) Zato je pa tudi kar nekaj distribucij zamenjalo privzeti datotečni sistem iz Reiserja v ext3 ...
You must die ... I alone am best!

Brane2 ::

Bi je obtožen par mesecev nazaj, r4 se pa razvija ohoho, kar nekaj let.

Sploh pa je ista zgodba z ext2/3/4.

Razvijalci se držijo strogo evolucijskega načela in ne spreminjajo obstoječih konceptov, ravno zaradi velikega truda ki je potreben za pošten debug in shakeup na vseh različnih strojih.
On the journey of life, I chose the psycho path.

Brane2 ::

Je pa tale r4 videti strupeno dober, vsaj v konceptu.


Sem izbrskal nekaj drobnarij o pluginih in konceptu in sliši se zelo zanimivo.

Dela tudi lepo, le da cryptocompress še ne dela tako kot bi moral. "Kompresija" ki jo dosega, je bolj podobna ekspanziji.

A nič ne de, stvar je šele v alfa fazi. Zanimivo, da sploh nekako dela sedaj. Mene bolj zanima "crypto" del, s katerim se bo dalo imeti varen strežnik, ne ba bi se moral zaj* s cryptoloopi itd.
On the journey of life, I chose the psycho path.

Brane2 ::

in btw, odhod idstribucij z Reiserja nima _nobene_ zveze s Hansovim privat življenjem, temveč s tem,d a je na račun razvoja r4 zanemaril obstoječe stranke na uveljavljenem ReiserFS v 3, ki ga ni vzdrževal, kot bi ga moral.

To,d a ga ni v kernelu, je zaradi krega o potrebni spremembi konceptov v kernelu, ustreznosti sourcea itd.

A večina teh stvari je odpravljena do te mere, da se počasi že govori o tem,d a bo šel r4 v mainstream...
On the journey of life, I chose the psycho path.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

solaris

Oddelek: Operacijski sistemi
112044 (1575) Ales
»

Izšel FreeBSD 7.0

Oddelek: Novice / Ostala programska oprema
155654 (3071) jELKO
»

Izšla Nexenta CP 1.0

Oddelek: Novice / Ostala programska oprema
62681 (1979) Jst
»

ZFS na Linuxu

Oddelek: Novice / Ostala programska oprema
213046 (1997) Brane2
»

Zettabyte File System (ZFS) tudi v operacijskih sistemih za široko rabo

Oddelek: Novice / Operacijski sistemi
264406 (2790) Brane2

Več podobnih tem