Il existe plusieurs façons d’utiliser un disque SSD en tant que cache pour votre disque dur normal. Ce n'est pas une idée nouvelle et a déjà plusieurs implémentations.
Sous Windows:
La meilleure implémentation est de NVelo: Dataplex - Il dispose d’un cache de lecture et d’un cache d’écriture facultatif. Malheureusement, comme ExpressCache, il n’est disponible que pour les constructeurs OEM. Le moyen le plus économique de l'obtenir est d'acheter un disque SSD OCZ, qui intègre un petit disque SSD dans un adaptateur PCIE et utilise le logiciel dataplex pour mettre en cache votre disque dur existant.
Cependant, il existe également des implémentations logicielles pures: FancyCache - Il fonctionne comme vous le souhaiteriez si vous souhaitez mettre en cache en lecture et en écriture la couche de bloc. Il existe principalement sous forme de cache mémoire, mais a récemment obtenu la prise en charge d'un cache SSD de deuxième couche (un peu comme le ZFS L2ARC), qui peut être arbitrairement volumineux.
Si vous cherchez seulement à maximiser le nombre d'IOPS au coût de la durabilité en écriture (parfaitement avec un onduleur par exemple), une alternative pourrait être quelque chose comme: SuperCache - Cela utilisera uniquement de la RAM, pas de SSD. Mais contrairement aux autres, dépassera heureusement 100 000 IOPS sur du matériel de base. Très utile pour la mise en cache du périphérique bloc contenant des index de base de données par exemple. Donner essentiellement des performances similaires à celles de RAM-Disk pour tout volume de taille (en supposant que le périphérique sous-jacent puisse suivre le volume en écriture).
Sous Linux, les choses sont un peu plus agréables:
Comme mentionné dans une précédente affiche, vous avez Flashcache - cela fonctionne plutôt bien, mais ses performances varient considérablement en fonction de votre charge de travail. Dans de nombreux cas, avec un accès limité, il ne fonctionnera pas aussi bien que prévu. Vous ne savez pas pourquoi, mais pour la plupart des charges de travail, c'est une excellente option.
La meilleure option (bien que le code ne soit pas encore tout à fait "prêt pour la production") est bcache (plus d'informations ici , même si certaines sont obsolètes). Les options mentionnées prennent en charge la mise en cache de plusieurs périphériques en mode bloc sur un seul cache. Il prend également en charge (même si je n'ai pas personnellement essayé, cela risque de ne pas encore fonctionner) plusieurs périphériques de cache, vous pouvez donc utiliser plusieurs disques SSD moins chers pour optimiser vos IOPS. Le code est dans un référentiel git: git: //evilpiepirate.org/~kent/linux-bcache.git . On parle de le fusionner dans la prochaine version du noyau, bien que cela n’ait pas encore été décidé.
Personnellement, je trouve que bcache est l’option la plus performante (ma charge de travail est principalement liée à une base de données, bien que je mette également en cache mon ordinateur portable principal dans son intégralité). D'après mon expérience, le débit en écriture séquentielle du disque dur constitue souvent le goulot d'étranglement, car le cache se remplit rapidement et que le disque dur doit écrire les secteurs mis en cache. Ceci est bien sûr pour une charge de travail lourde en écriture, dans une charge de travail en lecture-écriture plus équilibrée, les choses seront probablement différentes.
Je dois également vous avertir qu’à vitesse maximale, vous allez graver assez rapidement les limites d’écriture de votre disque SSD. Je suis actuellement sur mon troisième OCZ Vertex 3. Les disques SSD, bien que très rapides, ne sont tout simplement pas très durables, alors attendez-vous à les remplacer tous les quelques mois.