Kan man ha en snabb SSD eller RAID som lokal filcache för nätverksdiskar?

Permalänk
Medlem

Kan man ha en snabb SSD eller RAID som lokal filcache för nätverksdiskar?

Visst är gigabit någorlunda snabbt att ansluta med till utdelade shares på filservern men ändå ganska långsamt jämfört med en modern SSD-disk eller kanske hårddiskar i raid. Så min fundering är om man skulle kunna använda lokala diskarna som cache för nätverksdiskarna?

På filservern kör jag FreeBSD med ZFS. Jag har läst om att man kan ha läscache på SSD, så kallad L2Arc för att få bättre läsprestanda. Visst det är väl bra men vad hjälper det nät det sitter en slö nätverkskabel (eller ännu värre trådlöst nätverk eller internet) mellan filservern och egna datorn... Så min tanke vore att man sätter någon motsvarande cachedisk i den lokala datorn istället så får den cacha alla filer man läser från filservern. Nästa gång man vill komma åt samma fil så går det snabbare. Visst sådan cachning sker redan i RAM-minnet men jag jobbar med ganska stora videofiler som är flera gigabyte stora så RAM-minnet räcker inte långt. I princip borde man kunna ha skrivcache också på snabba lokala diskar som synkar mot filservern i sin egna makliga takt men upplevs som snabba för användaren.
Detta borde vara ännu mer värdefullt när man jobbar över långsamma nätverk som internet eller trådlöst nätverk. Dropbox jobbar ju på liknande sätt. Lagringen på internet synkas mot en mapp på lokala hårddisken. Man jobbar mot denna lokala mapp som i sin tur synkas i långsammare hastighet mot "molnet". Som användare upplever man det snabbt även om det i själva verket går långsamt ut mot "molnet".

En sådan cache bör också minska nätverkstrafiken, för varför ska man hela tiden hämta ner samma filer om och om igen om de redan ligger lagrade på lokala disken. Det är bara när man skriver till filer eller när filer på fjärrlagringen förändras som allting måste synkas över nätverket.

Jag kör Linux på mina datorer och det finns ju en hel del serverlösningar, nätverksfilsystem och annat skojsigt så efter lite sökande hittade jag CacheFS: http://www.cyberciti.biz/faq/centos-redhat-install-configure-...
Man kan köra detta i kombination med NFS. Ser jättebra ut i teorin, men har någon testat det i praktiken?
Det jag tänker mig är att man monterar lagringen på filservern via CacheFS så att det ser ut som man har allt utrymme på filservern men i själva verket jobbar man mot lokal lagring som synkas och cacheas mot filservern. När lokala filcachen är full så kanske den minst använda filen kastas ut. Saknas någon fil i lokala cachen så hämtas den från filservern istället och läggs i cachen när man begär åtkomst till den. skulle filservern vara nere så borde man ändå kunna jobba mot de lokala filerna.

Borde inte detta vara en trevlig funktion i en bärbar dator där man sitter med slött trådlöst nätverk men kanske har en snabb lokal liten SSD-disk som skulle kunna rymma en hel del av det "working set" som man jobbar med? Även om internet / trådlösa nätet saknar täckning skulle man ändå kunna jobba med det mesta och så synkas allting när man väl får kontakt igen. Jag vet inte om just CacheFS funkar så.

Andra alternativ är väl att man bara synkar sin lokala disk mot någon mapp på servern, men då blir det ju bara en mindre del av den totala lagringsängden som synkas. Jag skulle alltså vilja ha en mindre lokal disk (som är betydligt större än RAM och snabbare än nätverket) som cache mot en stor nätverksdisk.

Antagligen får jag väl testa lite och se hur det funkar...

Permalänk
Medlem

Detta är jag också nyfiken på
Vore ju najs om man kunde konfigurera cachen också så den cachar de filer man tycker är viktigast. För dig kanske det är videofiler men för nån annan kanske det är program/systemfiler, typ om man har sin home på nätverksdisken. Jag provade att ha Warcraft3 på nätverksdisken och testade att lira från min windowsburk. Det gick, men fruktansvärt långsamt.

Visa signatur
Permalänk
Medlem

Egentligen borde det funka ganska automatiskt med prioriteringen för de filer man tycker är viktigast borde väl vara de filer man använder oftast, oavsett vilken sorts filer det är? Men en inställning för mappar som man alltid vill ha i sin cache vore najs (man kan tycka de är viktiga även om man inte använder dem ofta).

Typ att man i sin filhanterare kan högerklicka på en valfri mapp eller fil och välja alternativ som "ladda ner till cachen nu", "behåll alltid i cache" eller "ladda aldrig in i cache" och så sparas inställningen automatiskt i någon konfigureringsfil... Man ska alltid kunna se alla filerna på servern när man browsar sin share (filträdet bör altså cachas, alltså metadata) men innehållet i filerna kan antingen ligga lokalt eller på servern utan att man som användare ska behöva tänka på detta.

Ja detta är bara önskedrömmar, har inte testat vad man verkligen kan göra med exempelvis CasheFS...

Som det är nu sitter jag med lokala hårddiskar där jag manuellt laddar ner filer från servern för att jobba med. Men det känns som att det blir onödigt rörigt. Det där borde kunna automatiseras mera.

Hmmm, man kanske skulle börja läsa på lite om distribuerade filsystem.

Permalänk
Medlem
Skrivet av ronnylov:

Visst är gigabit någorlunda snabbt att ansluta med till utdelade shares på filservern men ändå ganska långsamt jämfört med en modern SSD-disk eller kanske hårddiskar i raid. Så min fundering är om man skulle kunna använda lokala diskarna som cache för nätverksdiskarna?

Gör inte AFS blandannat detta?

Permalänk
Medlem

Borde ju finnas något fungerande system med tanke på att det för Windows system på företag finns DFS. Vilket är cache för nätverkslagring om man har siter/nätverk kopplade över en wan-länk eller liknande. Dfs körs då på en server eller på klienterna i nätverket.