Meilleure technologie disponible pour le cache de disques en couches sous Linux

3

Je viens d'acheter un Phenom à 6 cœurs avec 16 Go de RAM. Je l'utilise principalement pour la compilation et l'encodage vidéo (et web / db occasionnel). Je constate que toutes les activités sont liées au disque et que je ne peux tout simplement pas nourrir les 6 cœurs. J'achète un raid SSD entre le disque dur et les fichiers tmpfs.

Je souhaite configurer un système de fichiers "en couches" dans lequel les lectures sont mises en cache sur tmpfs mais les écritures se font en toute sécurité sur le disque SSD. Je veux que les fichiers (ou blocs) qui n'ont pas été lus récemment sur le SSD soient ensuite réécrits sur un disque dur en utilisant une couche compressée de FS ou de blocs.

Donc, fondamentalement, on lit: - Vérifiez les fichiers tmpfs - Vérifiez le disque SSD - Vérifiez le disque dur HD

Et écrit: - Droit sur SSD (pour la sécurité), puis tmpfs (pour la vitesse)

Et périodiquement, ou lorsque l’espace devient faible: - Déplacez les fichiers les plus fréquemment utilisés sur une couche.

J'ai vu quelques projets d'intérêt. CacheFS, cachefsd, bcache semblent assez proches, mais j'ai du mal à déterminer lesquels sont pratiques. bcache semble un peu risqué (adoption précoce), cachefs semble lié à des systèmes de fichiers spécifiques du réseau.

Il y a des projets "union" unionfs et aufs qui vous permettent de monter des systèmes de fichiers l'un sur l'autre (généralement un périphérique USB via un DVD), mais les deux sont distribués sous forme de correctif et j'ai l'impression que ce type de montage "transparent" allait devenir un noyau fonctionnalité plutôt qu'un FS.

Je sais que le noyau a un cache disque intégré, mais cela ne semble pas bien fonctionner avec la compilation. Je constate une amélioration de la vitesse 20x lorsque je déplace mes fichiers source vers tmpfs. Je pense que c’est parce que les tampons standard sont dédiés à un processus spécifique et que la compilation crée et détruit des milliers de processus au cours d’une construction (devinez-y). Il semble que je veuille vraiment que ces fichiers soient précachés.

J'ai lu tmpfs peut utiliser la mémoire virtuelle. Dans ce cas, est-il pratique de créer un fichier tmpfs géant avec permutation sur le disque SSD?

Je n'ai pas besoin de démarrer le système de fichiers en couches résultant. Je peux charger grub, kernel et initrd d’ailleurs si besoin est.

Donc c'est le fond. Je suppose que la question a plusieurs composantes:

  • Recommandé FS et / ou couche de bloc pour le SSD et le disque dur compressé.
  • Paramètres mkfs recommandés (taille de bloc, options etc ...)
  • Technologie de cache / montage recommandée pour lier les couches de manière transparente
  • Paramètres de montage requis
  • Options de noyau requises, correctifs, etc.
SpliFF
la source

Réponses:

0

À l'heure actuelle, il n'y a rien de niveau de production pour faire cela.

Voici les deux options que je considérerais cependant:

  • bcache est un correctif de noyau pour utiliser un disque SSD en tant que cache pour des lectures et écritures aléatoires. Il peut être utilisé avec n'importe quel système de fichiers.
  • KQInfotech a une version bêta fermée de natvie ZFS 2 pour Linux. La date de disponibilité générale devait être fixée à début décembre 2010, mais elle a été repoussée au 5 janvier et à nouveau au 14 janvier.

Je n'ai utilisé aucune de ces options sous Linux. J'ai cependant utilisé ZFS sur OpenSolaris et FreeBSD.

Jeff Strunk
la source