Il existe plusieurs façons d'utiliser un SSD comme cache pour votre disque dur ordinaire. Cette idée n'est pas nouvelle et a déjà été mise en œuvre à plusieurs reprises.
Dans Windows :
La meilleure mise en œuvre est celle de NVelo : Dataplex - Il dispose d'un cache en lecture et d'un cache en écriture facultatif. Malheureusement, comme ExpressCache, il n'est disponible que pour les OEM. Le moyen le moins cher de l'obtenir est d'acheter un SSD OCZ qui intègre un adaptateur PCIE avec un petit SSD et utilise le logiciel dataplex pour mettre en cache votre disque dur existant.
Il existe toutefois aussi des mises en œuvre purement logicielles : FancyCache - Il fonctionne comme on peut s'y attendre en effectuant une mise en cache en lecture et en écriture au niveau de la couche des blocs. Il existe principalement en tant que cache mémoire, mais il a récemment obtenu la prise en charge d'un cache SSD de deuxième couche (un peu comme le L2ARC de ZFS), qui peut être de taille arbitraire.
Si vous cherchez simplement à maximiser le nombre d'IOPS au détriment de la durabilité de l'écriture (ce qui est parfaitement possible avec un onduleur, par exemple), vous pouvez opter pour une solution de ce type : SuperCache - Cela n'utilisera que la RAM, pas de SSD. Mais contrairement aux autres, il dépassera allègrement les 100 000 IOPS sur du matériel de base. Très utile pour mettre en cache le périphérique de bloc contenant les index de base de données par exemple. Cela permet d'obtenir des performances similaires à celles d'un disque RAM, quelle que soit la taille du volume (en supposant que le périphérique sous-jacent puisse suivre le volume d'écriture).
Sous Linux, les choses sont un peu plus agréables :
Comme l'a mentionné un poster précédent, vous avez Flashcache - Il fonctionne plutôt bien, mais ses performances varient fortement en fonction de votre charge de travail. Dans de nombreux cas, avec une mauvaise localisation de l'accès, il ne sera pas aussi performant que vous pourriez l'espérer. Je ne sais 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 la suivante bcache (plus d'informations) aquí Il a les meilleures performances de tous les caches SSD que j'ai essayés jusqu'à présent, et contrairement à toutes les autres options mentionnées, il prend en charge la mise en cache de plusieurs périphériques de bloc sur un seul cache. Il prend également en charge (bien que je n'ai pas personnellement essayé, il se peut que cela ne fonctionne pas encore) plusieurs dispositifs de cache, de sorte que vous pouvez utiliser plusieurs SSD moins chers pour maximiser votre IOPS. Le code est dans un dépôt git : git://evilpiepirate.org/~kent/linux-bcache.git . Il est question de le fusionner dans la prochaine version du noyau, bien que cela n'ait pas encore été décidé avec certitude.
Personnellement, je trouve que l'option la plus performante est bcache (ma charge de travail est principalement liée aux bases 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 d'écriture séquentielle du disque dur est souvent le goulot d'étranglement, car le cache se remplit rapidement et le disque dur doit écrire les secteurs mis en cache, donc plus c'est rapide, mieux c'est. Ceci est bien sûr pour une charge de travail lourde en écriture, dans une charge de travail lecture-écriture plus équilibrée, les choses seront probablement différentes.
Je dois également vous prévenir qu'à pleine vitesse, vous allez dépasser les limites d'écriture de votre SSD assez rapidement. J'en suis actuellement à mon troisième OCZ Vertex 3. Les SSD, bien que très très rapides, ne sont tout simplement pas très durables, alors attendez-vous à devoir les remplacer tous les quelques mois.