CacheFS est une famille de technologies logicielles conçues pour accélérer l'accès aux fichiers du système de fichiers distribué pour les ordinateurs en réseau. Ils stockent des copies ( caches ) de fichiers sur une mémoire secondaire, généralement un disque dur local , de sorte que si un fichier est à nouveau consulté, il peut être récupéré localement à des vitesses beaucoup plus élevées que celles généralement autorisées par les réseaux.
Le logiciel CacheFS est utilisé sur plusieurs systèmes d'exploitation de type Unix . La version Unix originale a été développée par Sun Microsystems en 1993. Une autre version a été écrite pour Linux et publiée en 2003.
Les systèmes de fichiers réseau dépendent d'une liaison réseau et d'un serveur distant ; l'obtention d'un fichier à partir d'un tel système de fichiers peut être beaucoup plus lente que l'obtention du fichier en local. Pour cette raison, il peut être souhaitable de mettre en cache les données de ces systèmes de fichiers sur un disque local, ce qui peut potentiellement accélérer les accès futurs à ces données en évitant d'avoir à aller sur le réseau et à les récupérer à nouveau. Le logiciel doit vérifier que le fichier distant n'a pas changé depuis sa mise en cache, mais cela est beaucoup plus rapide que de relire l'intégralité du fichier.
Antérieur de la technique
Sprite utilisait des caches de blocs de disque volumineux. Ceux-ci étaient situés dans la mémoire principale pour obtenir des performances élevées dans son système de fichiers. Le terme CacheFS n'a trouvé que peu ou pas d'utilité pour décrire les caches dans la mémoire principale.
Version Grossmont
La première implémentation de CacheFS, en assembleur 6502, était un cache à écriture directe développé par Mathew R Mathews au Grossmont College. Il a été utilisé de l'automne 1986 au printemps 1990 sur trois ordinateurs Apple IIe sans disque dur avec une mémoire principale de 64 Ko pour mettre en cache des fichiers d'un serveur de fichiers Nestar sur Big Board, un périphérique de mémoire secondaire DRAM de 1 Mo partitionné en CacheFS et TmpFS. Les ordinateurs exécutaient Pineapple DOS, un dérivé d'Apple DOS 3.3 développé dans le cadre d'une suite au système informatique pédagogique financé par la NSF de WR Bornhorst. Les fonctionnalités de Pineapple DOS, y compris la mise en cache, n'étaient pas nommées ; le nom CacheFS a été introduit sept ans plus tard par Sun Microsystems.
Version soleil
La première implémentation de CacheFS sous Unix a été développée par Sun Microsystems et publiée dans la version 2.3 du système d'exploitation Solaris en 1993, dans le cadre d'un ensemble de fonctionnalités étendues pour la suite NFS ou Network File System connue sous le nom d' Open Network Computing Plus (ONC+) . Elle a ensuite été utilisée dans d'autres systèmes d'exploitation UNIX tels qu'IRIX (à partir de la version 5.3 en 1994).
Version Linux
Les systèmes d'exploitation Linux utilisent désormais couramment une nouvelle version de CacheFS développée par David Howells. Howells semble avoir réécrit CacheFS à partir de zéro, sans utiliser le code original de Sun.
Le système de fichiers Linux CacheFS est actuellement conçu pour fonctionner sur les systèmes de fichiers Andrew File System et Network File System (NFS).
Terminologie
En raison de son nom similaire à celui de FS-Cache, la terminologie de CacheFS est déroutante pour les non-initiés. CacheFS est un backend pour FS-Cache et gère le stockage et la récupération des données. FS-Cache transmet les requêtes de netfs à CacheFS.
Cache FS
La fonction/couche de cache entre les backends de cache, tout comme CacheFS et NFS ou AFS.
Cache backends
CacheFS
CacheFS est un système de fichiers pour la fonction FS-Cache. Un périphérique de stockage en mode bloc peut être utilisé comme cache en le montant simplement . Il ne nécessite aucune activation particulière et est désactivé en le démontant.
Fichiers cache (démon)
Démon utilisant un système de fichiers existant ( ext3 avec user_xattr ) comme cache. Le cache est lié avec « cachefilesd -s ».
Statut du projet
En 2010, le travail sur le projet semblait au point mort et certaines personnes tentaient de relancer le code et de le mettre à jour.
Caractéristiques
L'installation peut être conceptualisée par le schéma suivant :
Cette fonction (connue sous le nom de FS-Cache) est conçue pour être aussi transparente que possible pour un utilisateur du système. Les applications doivent pouvoir utiliser les fichiers NFS normalement, sans avoir connaissance de l'existence d'un cache.