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

58

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

ExpressCache associe intelligemment et automatiquement les meilleurs attributs des disques SSD et HDD sans aucun effort ni connaissances préalables de la part de l'utilisateur, afin que les utilisateurs bénéficient 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é de composants en mode utilisateur et 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 seulement !

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.

haimg
la source
PrimoCache (pour Windows) peut le faire. il est spécialisé dans l'utilisation de la mémoire RAM en tant que cache, mais peut utiliser une partition SSD en tant que cache L2. Je ne pense pas que sa taille soit limitée. Il indique également que cela peut accélérer les temps de démarrage (même si vous utilisez un disque SSD et pas seulement). RAM).
BrainSlugs83

Réponses:

52

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.

Dédaigneux
la source
2
Merci pour la bonne réponse! En ce qui concerne le taux d '"épuisement professionnel", je pense que c'est maintenant la raison principale pour laquelle la plupart de ces produits sont destinés uniquement aux constructeurs. Par exemple, OCZ Synapse (cache SSD fourni avec Dataplex) est surapprovisionné à 50% ...
haimg
2
@Supercilious Pourquoi ne pas utiliser simplement un disque SSD SLC ou eMLC? Cela doit être plus efficace (et certainement plus fiable) que le remplacement fréquent de flashes MLC non fiables.
Miles Erickson
6
@Supercilious C'est là que tu me perds. Longévité légèrement supérieure? La longévité des mémoires SLC et eMLC est supérieure, et non légèrement supérieure , à des ordres de grandeur .
Miles Erickson
1
@Firebug Je suis inactif sur la pile depuis un certain temps, mais la réponse que j'ai postée est valable. Bien que les nouveaux SSD offrent une endurance en écriture beaucoup plus élevée, ils échouent encore assez rapidement. Sur mes machines (principalement HP DL360 G9 et certains Lenovo), je grave des dizaines de disques SSD pour chaque disque SAS ou SATA mécanique. En 2017, la durée de vie moyenne de mes SSD Samsung SM863a, les meilleurs que j'ai trouvés, était de 8 mois. C’est tout à fait correct et le coût de ma charge de travail en vaut vraiment la peine, mais cela vaut la peine de garder à l’esprit et une activité d’écriture constante tueront tous les disques SSD en un an.
Supercilious
1
@Firebug Oui, tout le travail est fait sur mes serveurs (principalement HP DL360 Gen9), la charge de travail est de 30% / 70% lecture / écriture et les SSD sont en train d'être martelés 24h / 24 à environ 300-350 Mo / s avec des des pics supérieurs à 500 Mo / s. Toutes les E / S sont aléatoires avec une taille de bloc de 64 Ko et des TRIM en bloc occasionnels de l'ensemble du SSD. Si vous utilisez un ordinateur de bureau, il faudra des années pour détruire ces disques SSD de centre de données, mais les disques SSD grand public disposent de 180 à 300 To TBW, ce qui est encore assez faible à l’OMI.
Supercilious
10

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 ...

Matej Kovac
la source
5

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).

Penartur
la source
1
Mon SSD est de 120 Go. Bien que cela soit suffisant pour un ensemble de travail ou un cache , cela ne suffit certainement pas pour héberger tous mes fichiers système + applications. Deuxièmement, je ne veux pas conserver, par exemple, le code exemple MSSDK (lu rarement) sur SSD et mon propre code auquel on accède 100 fois par jour, sur disque. De plus, j'aurais besoin de deux disques SSD pour le RAID - je ne confie jamais mes données à un seul disque, qu'il soit magnétique ou à l'état solide ...
haimg
2
Vous pouvez utiliser des liens symboliques et déplacer le cache du programme d'installation MSSDK / Windows / etc sur votre disque dur (tout en ayant des liens symboliques pointant vers de nouveaux emplacements à partir des chemins requis sur votre lecteur système); et mettez votre propre code sur SSD (la partie de celle-ci nécessitant un accès aléatoire rapide). Et utiliser des sauvegardes serait probablement une meilleure solution que de compter sur le RAID.
Penartur
3
+1 pour cette solution. En réalité, l’utilisation d’un disque SSD donnera de bien meilleures performances. Un autre niveau de cache ne présente probablement aucun avantage significatif, contrairement à l’utilisation d’un disque SSD pour votre partition système.
Jesse
1
J'utilise ssd pour les fichiers système et hdd pour le dossier personnel. J'ai remarqué que le disque dur est un goulot d'étranglement, alors vous devez lire beaucoup de fichiers dessus, par exemple, le feu-renard démarre d'abord après le démarrage.
aisbaa
2

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 $$$ ...

Les araignées
la source
3
Avez-vous un lien pour ce logiciel?
haimg
Je me demande s'il voulait dire "FancyCache" (maintenant connu sous le nom de PrimoCache)? - Il était en version bêta (et le prix final inconnu) à la date de publication de cette réponse (IIRC). Mais cela fait deux ans et il a un score de 21 points, alors je doute qu'il se reconnecte un jour et nous le dise. : - /
BrainSlugs83
2

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 de la mémoire RAM inutilisée, mais rien ne permet 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

Mokubai
la source
2

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 «rafraîchis» pour les accélérer. Il vaut mieux utiliser le disque dur le plus rapide que vous puissiez trouver, comme 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 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 permis d'accélérer la navigation sur Internet 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.

JDinFL
la source
2

On peut utiliser les technologies Windows I / O de ReadyDrive et ReadyBoost . Étant donné que ces technologies datent d'avant l'introduction des disques SSD, il existe peu d'informations indiquant 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 cet autre fil prétende 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 que 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 disque 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.

harrymc
la source
1
Le taux de défaillance des disques SSD est nettement inférieur à celui des disques durs traditionnels - il se peut que ce fût autrefois l'inverse, mais pas au moment de cette question et de sa réponse. Les cycles d'effacement des disques SSD suscitaient de vives inquiétudes il y a quelques années et tout le monde semblait oublier temporairement que les disques durs sont extrêmement fragiles et échouent régulièrement, souvent sans préavis. Le problème des cycles d'écriture n'est presque jamais un problème avec le nivellement par usure moderne, sauf si vous écrivez des téraoctets de données chaque semaine pendant plusieurs années.
thomasrutter
1

Télécharger ExpressCache

Avez-vous cherché 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 ...

Robert Koritnik
la source
Les deux nécessitent du matériel des fournisseurs respectifs. Le logiciel ne s'installera pas correctement s'il ne réussit pas les vérifications matérielles.
Dim
0

ExpressCache est un produit OEM uniquement. Je suis raisonnablement certain qu'il dispose de contrôles internes empêchant son utilisation sur du matériel autre que les constructeurs OEM licenciés.

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 d'équilibrer l'espace entre 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.

Tumbleweed_Biff
la source
-2

VeloSSD n'est pas nommé ici. Je ne peux pas donner une bonne réputation à ce logiciel, car il détruisait trop souvent mes données, mais un autre utilisateur a signalé que cela fonctionnait bien.

Vander
la source
2
Le simple fait d'ajouter un nom de produit à une liste de produits n'est pas considéré comme une réponse et cette "recommandation éclatante" n'est pas très utile. Avec un peu plus de rep, vous pouvez poster ceci en tant que commentaire.
Fix1234