Ett distribuerat filsystem (DFS) står inför många utmaningar som inte finns i ett centraliserat filsystem. Därför är dess krav mer komplexa och krävande. Dessa krav kan i stort sett kategoriseras som:
i. Datahantering och tillgänglighet:
* skalbarhet: Möjlighet att hantera ett växande antal klienter, filer och lagringsnoder utan betydande prestandaförstöring. Detta inkluderar både horisontell skalbarhet (tillsats av fler noder) och vertikal skalbarhet (ökar kapaciteten för enskilda noder).
* Tillgänglighet och feltolerans: Systemet bör förbli i drift även om vissa noder eller nätverksanslutningar misslyckas. Detta involverar ofta tekniker som datareplikation, redundans och automatisk failover. Högtillgänglighetsmätningar (t.ex. 99,99%) önskas vanligtvis.
* Data konsistens: Att upprätthålla datakonsistens över flera noder är avgörande. Olika konsistensmodeller finns (t.ex. stark konsistens, eventuell konsistens) och valet beror på applikationens behov. Systemet måste tydligt definiera och garantera den valda konsistensmodellen.
* Datavhållbarhet: Skydda data från förlust på grund av hårdvarufel, mjukvarufel eller andra oförutsedda händelser. Detta involverar vanligtvis flera kopior av data och robust feldetekterings-/korrigeringsmekanismer.
* Datalokalitet: Lagring av data nära klienterna som får åtkomst till den ofta för att minimera latens. Detta kräver intelligenta strategier för dataplacering och routing.
* dataintegritet: Att säkerställa data förblir oförändrade och korrekta. Detta involverar kontrollsummor, versionering och andra tekniker för att upptäcka och förhindra korruption.
ii. Prestanda och effektivitet:
* hög genomströmning: Möjlighet att hantera en stor volym av läs- och skrivoperationer effektivt.
* låg latens: Minimera den tid det tar att komma åt och hämta data.
* Effektivt resursutnyttjande: Optimera användningen av lagring, nätverksbandbredd och bearbetningskraft.
* metadatahantering: Effektivt hantera metadata (filnamn, storlekar, behörigheter etc.) över flera noder.
iii. Säkerhet och åtkomstkontroll:
* Autentisering och auktorisation: Säkert verifiera användarnas identitet och kontrollera åtkomst till filer baserat på behörigheter.
* Datakryptering: Skydda data från obehörig åtkomst genom att kryptera dem både under transport och i vila.
* Access Control Lists (ACLS): Implementera granulär kontroll över vem som kan läsa, skriva och köra filer.
* Revision: Spåra användaraktivitet för att säkerställa ansvarsskyldighet och upptäcka säkerhetsöverträdelser.
iv. Ledning &administration:
* Centraliserad ledning: Verktyg för att övervaka systemhälsa, hantera lagringskapacitet och konfigurera systemparametrar.
* Enkel distribution och underhåll: Enkelhet i att ställa in, konfigurera och underhålla systemet.
* Övervakning och loggning: Mekanismer för att spåra systemets prestanda och identifiera potentiella problem.
* Säkerhetskopiering och återhämtning: Robusta mekanismer för att säkerhetskopiera data och återställa den vid fel.
v. Andra överväganden:
* interoperabilitet: Möjlighet att integrera med andra system och applikationer.
* Portabilitet: Möjlighet att köra på olika hårdvaru- och mjukvaruplattformar.
* Extensibility: Möjlighet att enkelt lägga till nya funktioner och funktionalitet.
Dessa krav innebär ofta avvägningar. Till exempel kan stark konsistens leda till lägre genomströmning, medan hög tillgänglighet kan kräva mer lagrings- och nätverksresurser. De specifika kraven för en DFS kommer att bero på applikationens behov och egenskaperna hos miljön där den fungerar.