Portál AbcLinuxu, 4. června 2024 13:06


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
Mikos avatar 5.9.2005 10:56 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše SquashFS
Odpovědět | Sbalit | Link | Blokovat | Admin
A co prostě použít SquashFS? Nevím sice jaký používá kompresní algoritmus, ale je dělaný tak aby měl dobrý kompresní poměr a byl přitom i velmi rychlý. Používají ho prakticky všechny moderní LiveCD distribuce. Tak si buď udělat malou samostatnou partition a na ní mksquashfs, nebo prostě velký soubor ve tvém současném filesystemu, který budeš mountovat přes loop a uděláš na něm mksquashfs.

Ale není to pravda moc flexibilní řešení. FUSE by bylo na to co chceš ty lepší ;-) Pokud bys tedy ten filesystem do FUSE udělal tak, aby mohla jeho velikost růst s tím jak do něj budeš věci kopírovat (prostě abys nemusel mít na disku soubor jedné pevně dané velikosti mountovaný přes loop, ale soubor který by se dynamicky zvětšoval/zmenšoval podle toho co by v něm bylo). Podobně co sem tak četl pod FUSE funguje EncFS. Tak na něj kdyžtak koukni, jak tam je to řešeno ;-) A pokud chceš použít lzo kompresi, doporučuji využívat přímo onu knihovnu a né lzop utilitu.
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
5.9.2005 11:29 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: SquashFS
Na SquashFS jsem se samozřejmě díval. Nutný patch, a používá to pomalejší gzip.

Já už jsem kus práce udělal za těch pár hodin, mám to navrženo tak, že po připojení se to jen "přemapuje" do adresáře /var/lib/lzofs s tím, že se soubory mají komprimovat. Při implementaci toho komprimování jsem se práve zasek.

EncFS to má jednoduchý - soubory jsou stejně velké, takže i seeky jsou stejné. U komprese nikoliv.

Přirozeně, že používám liblzo, co jiného taky :-)
5.9.2005 11:36 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: SquashFS
Nutný patch do kernelu... (a ta čárka tam nemá být).

Napadlo mě, že bych to udělal tak, že po přimountování by to prošlo celý adresář /var/lib/lzofs a nezkomprimované soubory by to zkomprimovalo. Připojený FS by pak byl pouze pro čtení (adresáře a linky by však vytvářet šly stejně tak jako mazání - prostě jen WRITE by zahlásil DISK FULL nebo něco podobného).
Mikos avatar 5.9.2005 11:41 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: SquashFS
Aha, mě nějak z téhle věty: "a každý přístup bych musel "odskočit" na začátek souboru a zjist velikost bloku a zda je vůbec lzopem komprimován." přišlo, že chcete používat nějak onu utilitu lzop, ne přímo knihovnu lzo2 ;-)

Jinak SquashFS snad bude někdy přijatý přímo do oficiálního kernelu, vím že nějaké diskuze o jeho začlenění na LKML proběhly, jak to s tím ale v současnosti konkrétně vypadá netuším... co se týče jeho rychlosti, tak sem četl že je o dost rychlejší než třeba gzip komprimované ISO (pomocí mkzisofs), takže sem předpokládal že používá asi nějakou jinou kompresi než gzip. Ale možná je ta jeho rychlsotí výhoda v něčem jiném...

Ohledně té vaší poznámky k EncFS - znamená to tedy, že tenhle váš LZO userspace filesystem nebude umožňovat onu dynamickou velikost souboru v kterém je uložen? Je to principiálně nemožné nebo jen moc složité na implementaci?
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
5.9.2005 12:40 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: SquashFS
Knihovna není lzo2 ale lzo, lzo2 je něco jiného (jiný projekt). Odzkkočit na začátek si musím vždy, jednak zjistit, zda je soubor komprimován (magic file handler) a zejména načíst velikost komprimačního bloku. Ono to lze ošetřit taky u funkce open/close, pak ale budu muset trošku postudovat LTHREADS, protože to musí být vláknově zabezpečené (musel bych vytvořit globální pole handlerů).

Můj lzofs není uložen v jednom souboru, to je zbytečné. Chci ho používat ke kompresi adresářů, ve kterých jsou miliony malých textových souborů - tím bych úplně odstavil svůj rychlý XFS. Jak jsem naznačil, všechny soubory jsou uloženy jako obyčejné soubory ve /var/lib/lzofs, jenom jsou (budou) komprimovány.

Jsem hodně zvědav na rychlostní testy, lzo je při čtení někdy i rychlejší, než nezkomprimovaný soubor. To ale bude platit zřejmě jen u sekvenčním čtení velkých souborů.

Jelikož něco podobného chybí (existuje pouze projekt fuse-j-zip - javovský binding na FUSE s examplem "read only filesystem in ZIP"), asi to dotáhnu do konce.
Mikos avatar 5.9.2005 16:31 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: SquashFS
Může to být dobrý projekt, držím vám palce :-)

Co se týče toho ukládání souborů ve /var/lib/lzo - na tom se mi nelíbí to, že je to system-wide adresář. To opravdu není moc dobré řešení, jak z bezpečnostního hlediska tak z hlediska možné přenositelnosti souborů. Ty zkomprimované soubory by se určitě měly ukládat v uživatelově domovském adresáři. Např. tak, že by zadal 'lzofsmount /home/mikos/dokumenty' a ono by to onen adresář dokumenty zkomprimovalo (všechny jednotlivé nezkomprimované soubory v něm) a každý nový soubor který bys tam vytvoři/nakopíroval v době, kdy je to přimountované, by byl transparentně komprimován (a samozřejmě pak i zpětně dekomprimován).

Btw. v čem je to LZO verze 2 jiný projekt? Já koukal na domovské stránky autora LZO a tam je právě ke stažení už ta verze 2.01, stará verze 1 je tam ještě v adresáři LZO-v1. Z toho sem pochopil že LZO 2 je zjevně mnohem novější a lepší než LZO 1, ale tu verzi 1 tam nechal z důvodu že je to zpětně nekompatibilní či tak něco. Ale jsou to jen mé spekulace, nějak sem se tomu že bych to prostudoval moc nevěnoval, tak mě kdyžtak opravte :-)
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
5.9.2005 17:00 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: SquashFS
Aha, špatně jsem hledal, vygooglil jsem nějaký SSH-LZO2 projekt. Myslel jsem, že je to něco jiného. Ano, používám verzi 2.01, ovšem na mém Gentoo systému je to liblzo (balíček lzo). Žádná dvojka.

S tím domovským adresářem je to jasné, taky jsem o tom přemýšlel, ale narazil jsem na omezení FUSE - ještě jsem nepřišel na to, jak předat vytvářenému filesystému parametr. On se totiž "mountuje" tak, že se spustí user-program. Zkusím to nějakým parametrem, který nebude narušovat FUSE, případně to zadrátuji na "~/.lzofs" (symlinkem si to může každý dát na jiný disk - já osobně bych něchtěl v houmu věci, které se nemají zálohovat).

Díky za informace, určitě na to večer mkrnu a poreferuji :-)
msk avatar 5.9.2005 18:03 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: SquashFS
V konecnom dosledku mate pravdu, len by som doplnil, ze encfs neuklada do vlastneho fs, ktory ma namountovany ako loop, ale priamo zapisuje subory a adresare na disk, ako akekolvek ine subory. Takze problemy s resize odpadnu nadobro.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.