Az emberek egy biztonságos mechanizmust kerestek a fájlok cseréjére. Ma büszkén jelentjük be az új, nyílt forráskódú fájlszerver modult. A Psono ökoszisztéma legújabb komponenseként több problémát is megold:
És itt jön képbe a Psono. A Psono-t mindezeket a problémákat szem előtt tartva tervezték, és rendkívül rugalmas.
Felmerülhet a kérdés: hogyan néz ki ez a felhasználó számára? Egyszerű.
Remélem, ez elég egyszerű.
A motorháztető alatt a kliens néhány összetettebb lépést is elvégez, ám mindez rejtve marad a felhasználó elől:
Ezzel a mechanizmussal bármilyen fájlméret-problémát meg lehet oldani, hiszen a fájlok darabokra vannak bontva. Egyetlen fájl esetén is több szerver között lehet elosztani a feltöltést. Minden fájl (és minden más Psono-ban) titkosítottan hagyja el a kliens oldalt, mielőtt a szerverhez érkezne.
A felső részen egy tipikus felállás látható. Egy relé-szerver (egyszerű fordított proxy) néhány statikus fájlt szolgáltat (a webes klienst). A Webkliens a böngészőbe kerül, amely ezután REST API végpontokat hív meg a szerveren. A szerver egy Postgres adatbázist használ minden tartós adat tárolására. A Psono Webkliens és a Psono Szerver stateless-nek tekinthető, minden adat a Postgres adatbázisban van eltárolva.
Ha most egy fájlszervert szeretnél csatlakoztatni, először egy daraboló és klaszter konfigurációt kell létrehozni a szerveren, amelyet aztán a tényleges fájlszerver konfigurálásához használsz fel. Amint a fájlszerver elindul, automatikusan regisztrálja magát, és 10 másodperces időközönként továbbra is jelzi az elérhetőségét. Ha egy fájlszerver leáll, a szerver felismeri ezt, és nem irányít több klienset a leállt szerverhez. Amint visszajön, újra automatikusan regisztrál, és ismét elkezdi fogadni a klienskéréseket. A fenti képen minden darabot helyi tárhelyen tárolunk, és van egy relé szerverünk (az is lehet, hogy ugyanaz, mint a hagyományos szerver, kis környezetben a webklienssel) az SSL tehermentesítéshez.
A helyi tárhely mellett különböző háttértárolókat is használhatsz, sőt, vegyítheted is őket.
Jelenleg támogatott (a helyi tárolás mellett): Amazon S3, GCP Cloud Storage és Azure Blob Storage.
Több fájlszervert is használhatsz például a teljesítményproblémák orvoslására, ha szűk a sávszélesség. Lehet például, hogy távoli dolgozóid vannak, de az irodában csak nagyon szűkös az internetkapcsolat. Egy másik felhasználási eset lehet, hogy a helyi fájlokat még jobban akarod védeni, és
Egy olyan felállás, amely megoldja a teljesítményproblémát, és jobb elszigetelést ad, így nézhet ki:
Ebben a felállásban az „externál” darab forgalma kétirányú a helyszínek között, lehetővé téve a külsősöknek, hogy fájlokat töltsenek fel, amelyeket utána a dolgozók letölthetnek és viszont.
A helyszíni darabot (shard) viszont sosem szinkronizáljuk a távoli helyszínnel, így az jobban védve marad. Mivel az „externál” darabban lévő fájlok csak egyszer szinkronizálódnak, bármikor megváltoznak, akár 100 dolgozó is elérheti a fájlt ebből a darabból, anélkül, hogy 100-szor le kellene tölteni a távoli helyszínről. Vagy, ha feltöltesz egy fájlt, 100 külsővel is megoszthatod, anélkül, hogy 100-szor kéne feltölteni.
A sávszélesség előnye más távoli helyszínek összekapcsolására is használható, például egy ilyen felállással:
Ebben a felállásban minden helyszínnek saját fájlszervere van, és minden fájlt megosztanak a helyszínek között. Írást csak adott darabra lehet végezni, ami minden darabhoz egyirányú szinkront eredményez. Ez lehetővé teszi, hogy például New Yorkban dolgozók késedelem nélkül elérhessék a fájlokat.
A következő nagy téma a terheléselosztás. Mindez kényelmes, ha csak néhány dolgozód van, akik nem merítik ki a sávszélességet. Ha azonban 1000 dolgozód van, akik mind rendszeresen használják a fájlszervert, ez egyetlen szerver számára túlságosan is megnövelt sávszélesség-igénnyel jár. Szerencsére a Psono ezt is képes kezelni. Íme két lehetőség, amit a Psono fájlszervere kínál terheléselosztásra.
Ha már van terheléselosztód, amit használni szeretnél, akkor így nézhet ki a fellálásod:
Ebben a felállásban egy terheléselosztó végzi az SSL tehermentesítést. Két fájlszerver ül mögötte, amelyek ténylegesen kezelik a kéréseket. Mindkettő ugyanazt a darabot hirdeti, tehát vagy szinkronizálniuk kell a darabot, vagy van valamilyen közös tárolójuk. Lehet például GlusterFS-t vagy egyszerű rsync-et használni.
Az alternatíva, ha a klienst hagyod mindent terheléselosztani, ezzel egyszerűbb lesz a beállítás és olcsóbb is. Egy további terheléselosztó nélküli felállás így nézhet ki:
Mindezek a felállások egymásra építhetőek, pl. 3 darab, 2 szerverből álló klaszter. Mindegyik klaszter ugyanazt a darabot szolgálja ki, és egy szinkronizált (vagy közös) tárolóréteg van mögötte.
Remélem, sikerült jó képet adnom a Psono új és hatalmas fájlszerver moduljának képességeiről.