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...