web-dev-qa-db-fra.com

Comment utiliser mon petit disque SSD en tant que cache pour un disque dur plus volumineux?

J'aimerais utiliser un (petit) disque SSD comme cache pour un disque dur de grande taille. Je sais que certains produits matériels le font: HighPoint RocketHybrid HBA , Intel SmartResponse et d’autres. J'ai trouvé un seul produit logiciel: ExpressCache de Diskeeper :

ExpressCache associe de manière intelligente et automatique les meilleurs attributs des disques SSD et HDD sans aucun effort ni connaissances préalables de la part de l'utilisateur. Les utilisateurs bénéficient ainsi du meilleur des deux mondes. performance dynamique et capacité évolutive. Étant donné que des disques SSD de 4 Go peuvent être utilisés, il constitue une solution extrêmement abordable pour les fabricants.

Composé du mode utilisateur et des composants en mode noyau, ExpressCache utilise le disque SSD comme cache intelligent, associé à un disque dur, pour améliorer les performances globales du système et accélérer considérablement le démarrage de Windows, les applications et les données.

Cependant, ce produit est OEM uniquement !

J'ai cherché des alternatives, sans succès ... Je ne peux pas comprendre cela: cela semble être une bonne idée, aucun matériel supplémentaire n'est nécessaire, et cela pourrait vraiment améliorer les performances du disque sans dépenser une fortune.

Donc, je demande si quelqu'un connaît un logiciel qui fait cela, que ce soit pour Windows ou Linux. Ou si vous pensez que c'est une mauvaise idée, j'aimerais savoir pourquoi.

Remarque: ReadyBoost n’est pas vraiment adapté à cela. Il est construit en partant du principe que les écritures sur disque sont très coûteuses, n’ont que très peu d’effet sur les systèmes disposant de beaucoup de RAM et ne s’adaptent pas correctement si votre SSD a une capacité de 100 Go ou plus.

58
haimg

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 possède une mise en cache en lecture et une mise en cache en écriture facultative. Malheureusement, comme ExpressCache, il n’est disponible que pour les constructeurs OEM. Le moyen le moins coûteux 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 - Cela fonctionne comme vous le souhaiteriez si vous vouliez mettre en cache en lecture et en écriture au niveau de la couche de blocs. 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 à maximiser les IOPS au prix de la durabilité en écriture (parfaitement avec un onduleur par exemple), une alternative pourrait être quelque chose comme: SuperCache - Ceci utilisera RAM seulement, 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é précédemment dans une affiche, vous avez Flashcache - Cela fonctionne plutôt bien, mais ses performances varient grandement 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. 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 bcache (plus d'informations ici , même si certains sont obsolètes) - Il offre les meilleures performances qu'un cache SSD encore essayé, et contrairement à toutes les autres options mentionnées, prend 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 peut 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, même si je cache également mon ordinateur 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.

52
Supercilious

Il existe un logiciel très intéressant pour Linux, utilisé par des serveurs très occupés:

https://github.com/facebook/flashcache

Sur un disque SATAII, 8 disques rotatifs magnétiques dans une configuration RAID6, mes performances sont considérablement améliorées. Lecture aléatoire avec périphérique SSD SATAIII flashcache (540 lectures, 420 écritures) saturant mon bus SATAII à près de 90-95% - J'ai 280 Mo de lecture (en période de pointe), 270 Mo en écriture (uniquement en charge simulée ... jamais atteinte en production) . Cela dure environ un an et demi maintenant. Le lecteur de disque écrit sont ... 20-30 Mo/s - utilisez le temps d’E/S disponible ...

10
Matej Kovac

Quelle est la taille de votre SSD?

Probablement le meilleur effet que vous obtiendrez en installant l’ensemble du système d’exploitation et du logiciel sur SSD, tout en stockant des volumes de données sur votre disque dur.

Si votre disque SSD est petit, il peut être utile de placer un fichier d'échange dessus. Je doute que Windows mette en cache une grande partie de vos fichiers, mais au moins, cela vous permettra de disposer de la mémoire des applications récemment utilisées et de la mémoire cache des fichiers, tout en permettant un basculement rapide vers des applications peu récentes (qui réside dans le fichier d'échange qui est, à son tour, sur SSD).

5
penartur

Bien qu'il soit certainement possible de charger tout un système d'exploitation et des applications sur un seul disque SSD, vous ne devriez probablement pas. Au fil du temps, les disques SSD ralentissent par une réécriture continue et doivent être «actualisés» pour accélérer leur sauvegarde. Il vaut mieux utiliser le disque dur le plus rapide que vous puissiez trouver, tel qu'un lecteur SATA 600 Gbps et obtenir une carte mère ou un autre contrôleur prenant en charge la mise en cache SSD au niveau matériel. Les cartes mères Asus ROG Maximus supportent toutes cette fonction intégrée.

Cependant, jusqu'à ce que je construise ce nouveau système, j'ai trouvé un moyen de tirer parti des avantages d'un disque SSD. J'ai construit un cache de mémoire sur le SSD et même s'il en existe un sur mon disque dur principal, Windows semble utiliser automatiquement le SSD plus rapide à la place. J'ai également déplacé tout mon cache Internet Explorer sur le disque SSD, ce qui a accéléré le surf et la vidéo sur Internet au moins 2 ou 3 fois.

Je construirai mon nouveau système autour de la carte mère Asus Maximus VI Hero avec un processeur Intel i7 de 4e génération au format socket 1150. Semble être un bon niveau de performance sans dépenser des milliers pour y arriver. Le coût total devrait se situer entre 800 et 900 dollars, ce qui comprend une nouvelle version de Windows.

2
JDinFL

FancyFlash a fait le travail. J'ai mon propre serveur Hyper-V R2 @home pour mes laboratoires et j'ai un lecteur PCIe OCZ Revo hybride. Malheureusement, le pilote de cache intégré ne fonctionne qu'avec Windows 7. Pas de plan pour Windows Server 2008 R2. J'ai donc installé le pilote FancyFlash sur mon hôte Hyper-V et configuré mon disque SSD sur Revo Hybrid pour qu'il serve de cache pour le disque intégré à 1 To (où se trouvent mon disque dur virtuel). TaDa! Fonctionne et accélère beaucoup mes machines virtuelles! :)

J'espère que la version finale sera abordable $$$ ...

2
Spider_s

eBoostr est une application qui met en cache une grande partie des applications utilisées régulièrement afin d’accélérer votre système. En règle générale, il est conçu pour utiliser des clés USB ou des disques non utilisés RAM, mais rien ne permet en réalité de ne pas utiliser un disque SSD.

Il est disponible pour toutes les versions majeures de Windows et ressemble beaucoup à ce que vous recherchez.

  • eBoostr suit l'utilisation des applications sur votre système et peut pré-mettre en cache les données les plus fréquemment utilisées, ce qui réduit les délais de chargement et optimise les performances.
  • L'interface glisser-déposer facile à utiliser vous permet d'améliorer de manière sélective les applications de votre système ainsi que de hiérarchiser celles qui sont améliorées avec eBoostr.
  • Des temps de chargement réduits et un accès réduit au disque dur contribuent à prolonger la durée de vie de la batterie des ordinateurs portables et des netbooks à l'aide d'eBoostr

En savoir plus: http://www.eboostr.com/feature

2
Mokubai

On peut utiliser les technologies I/O Windows de ReadyDrive et ReadyBoost . Étant donné que ces technologies datent d'avant l'introduction des disques SSD, il est difficile de savoir si elles fonctionnent ou non avec les disques SSD.

Pour ReadyBoost, voyez quelques astuces sur Comment utiliser mon disque SSD en tant que disque cache ReadyBoost? , bien que ce autre fil prétend le contraire.

ReadyDrive est une fonctionnalité de Windows Vista qui permet aux ordinateurs Windows Vista ou ultérieurs équipés d'un lecteur hybride ou d'autres caches de mémoire Flash (tels qu'Intel Turbo Memory) de démarrer plus rapidement et de passer en veille prolongée plus rapidement.

Vous pouvez également placer le fichier de page sur le SSD, avec toutefois une amélioration attendue limitée si la mémoire de votre système est suffisante.

Comme le remarque Penartur, la meilleure amélioration viendra de l’installation de Windows sur le SSD.

2
harrymc

Télécharger ExpressCache

Avez-vous effectué une recherche sur Google pour ExpresCache? Je peux voir qu'on peut le télécharger depuis

  • SanDisk - lien à droite; ne fonctionne qu'avec les SSD SanDisk
  • Lenovo - lien ci-dessous dans le guide; pourrait avoir une dépendance matérielle aussi bien

Surtout chez Lenovo, vous pouvez télécharger une version x86 ou x64. Sandisk semble simplement proposer ExpressCacheSetup.exe et je ne sais pas quelle architecture il prend en charge. Peut-être un peut-être les deux ...

1
Robert Koritnik

ExpressCache est un produit OEM uniquement. Je suis raisonnablement certain qu'il dispose de contrôles internes qui l'empêchent d'être utilisé sur du matériel autre que les OEM sous licence.

Il semble qu’à l’heure actuelle, FancyCache soit le seul outil viable à usage général/non-oems. Je peux mal comprendre les choses, mais je penserais que quelque chose comme readyboost sur un SSD brûlerait assez rapidement ses cycles d'écriture. Pour moi, l’idée ici est de ne disposer que d’une lettre de lecteur pour couvrir le disque dur principal et le SSD, en plaçant sur le SSD les fichiers les plus consultés et généralement statiques et en stockant les fichiers les moins couramment utilisés et souvent modifiés sur le disque dur. Cela donnerait les avantages d'un disque SSD en termes de performances et la viabilité à long terme d'un disque dur sans que l'utilisateur ne soit obligé d'essayer de trouver un équilibre entre l'espace disponible sur le disque SSD et celui du disque dur. La nécessité de le faire est si évidente, du moins pour moi, que je suis abasourdi par le manque de solutions à ce besoin.

0
Tumbleweed_Biff