Follow

Question bizarre d'un soir, bonsoir: Sous (et avec ), y a-t-il moyen de se servir d'un SSD comme d'un "cache" pour le contenu d'un HDD (plus grand) ?
Autrement dit, faire en sorte que de manière transparent le système mettre les fichiers du HDD couramment/récemment utilisés sur le SSD, sans avoir à tout copier sur le SSD (pas la place) ni à faire des transferts manuels ?

Un peu comme si l'on transformait ce couple SSD + HDD en SSHD en somme 😄

Merci d'avance 🙂

Une précision : je cherche un fonctionnement où le risque de perte du fichier à cause de ça est aussi proche de 0 que possible.
Pas à faire un cache volatile où la donnée est perdue en cas d'erreur/plantage/etc.

Merci pour vos retours 🙂

Du coup si je fais le bilan des options que j'ai découvertes, pour faire un cache d'un HDD sur un SSD il y a :
- -cache
- -cache
-
-

Voici ce que j'ai compris des conditions d'utilisation de chaque, vs mon besoin : ⬇️

outils de cache HDD-SSD : dm-cache 

- dm-cache requiert 3 partitions/supports de stockage : pour les données, le cache, et les métadonnées.
Il est conçu pour ne mettre en cache que progressivement et après de nombreuses lectures. Cf. redhat.com/en/blog/improving-r (ou encore people.redhat.com/mskinner/rhu).

outils de cache HDD-SSD : dm-cache 

Excellent pour la durée de vie du SSD (moins d'écritures "peu utiles"), pas pour les perfs d'écriture de nouvelles données (c'est pas mon objectif, et je préfère savoir que quand la copie est terminée, les données sont sur le HDD, pas encore en cache), et surtout peu adapté à mon besoin: je ne vais pas accéder souvent aux fichiers en dehors du court moment où je les utilise beaucoup, et ça va changer souvent.

outils de cache HDD-SSD : dm-cache 

Dans l'article cité, le gros du gain en performance arrive au bout de… plus de 15 lectures. La totalité, en ≥20 lectures.

Totalement inutile pour moi.

outils de cache HDD-SSD : dm-cache 

Par contre j'en déduis que dm-cache est extrêmement pertinent dans (au moins) 2 situations:

1) quand on n'a pas (les) moyen(s) de mettre son système d'exploitation sur un SSD de "grande" capacité (suffisante pour tout le système): avoir un (tout petit) SSD qui sert de cache au HDD du système &co peut faire gagner en confort (un genre de "SSHD" en gros)

outils de cache HDD-SSD : dm-cache 

2) quand on a un gros disque dur qui sert à la fois pour de l'archivage (donnée lues peu souvent, genre films, photos de famille…) et pour des données (surtout si volumineuses) fréquemment utilisées (logiciels, son jeu préféré du moment, cache de logiciel, …), et qu'au lieu de tout passer sur un SSD (et de se ruiner 💸) on veut "faire comme si" les données fréquemment utilisées étaient sur un SSD.

outils de cache HDD-SSD : dm-cache/lvm cache 

Bonus: c'est transparent, on n'a pas a gérer la priorisation nous-même (inconvénient: on ne peut pas le faire de toute façon). Ça peut être un bout du SSD du système qui y serait dédié.

En dehors de ces 2 situations, dm-cache est à peu près inutile (ou inefficient).
Je suppose que lvm-cache se comporte pareil (il est basé sur dm-cache) mais je n'ai pas trouvé d'information.

outils de cache HDD-SSD : lvm cache 

- lvm-cache implique d'avoir tout dans un volume logique de LVM.

Je n'ai pas envie de faire ça, alors qu'ayant tout en btrfs je peux me passer de cette complexité.
En plus, en cas de problème, je veux pouvoir simplement rebrancher le disque sur un autre ordinateur et le lire direct ou presque.

outils de cache HDD-SSD : bcache 

- bcache demande une partition (formatée) dédiée apparemment, mais il semblerait qu'on puisse éviter de formater avec ça github.com/g2p/blocks#converti - mais pas depuis un btrfs répartie sur 2 disques et 2 partition ? 🤔

Il semble mettre en cache dès la première écriture (donc c'est efficace dès la lecture suivante).

outils de cache HDD-SSD : bcache 

Y'a même une page de wiki sur bcache + btrfs 🙂 wiki.archlinux.org/title/Bcach

Côté performances par contre, d'après ce (vieux) benchmark l'intérêt semble quand même limité: phoronix.com/scan.php?page=art

outils de cache HDD-SSD : bcachefs 

- bcachefs ça ressemble à du Btrfs mais avec le cache en plus, en gros. Il semble résoudre pas mal de problème de bcache (au hasard, les problèmes de veille: bcache.evilpiepirate.org/FAQ/).

Pas envie d'un nouveau système de fichier de ce genre (avec tout à réapprendre, interfacer…) et surtout, ça veut dire formater le stockage btrfs existant. Pas pour moi.

outils de cache HDD-SSD: détails techniques 

J'ai appris aussi la différence entre "Write-through" et "Write-back", les deux n'étant pas toujours possible (ex: Zfs semble ne savoir faire que le premier, bcache les deux):

- Write-through écrit sur la destination finale et sur le cache en même temps. C'est aussi lent que la destination finale, mais à la fin les données sont bien sauvegardées.

outils de cache HDD-SSD: détails techniques 

- Write-back écrit d'abord sur le cache puis (en fin d’utilisation ? 🤔) sur la destination finale. Si y'a le moindre problème entre temps, les données sont perdues (sauf si y'a un système plus sophistiqué de mis en place ?).

Donc clairement, du Write-through pour moi 🙂

outils de cache HDD-SSD: détails techniques 

Il y a aussi le pass-through, où le cache est ignoré au moment de l'écriture (il se remplira après si besoin). Ça sert pour la maintenance : à tester absolument pour être certain⋅e de pouvoir récupérer les données si le SSD dysfonctionne.

Voilà pour les infos que j'ai pu récolter, en espérant que ça serve à d'autres 😃

@Lapineige Peut-être que LVM-cache est ce que tu cherches à faire. systutorials.com/docs/linux/ma

Cela nécessite un stockage installé sur LVM, je suppose que c'est ce qu'utilise Synology (cf les messages de @tishirtassi )

@Lapineige

J'ai lu quelqu'un sur Twitter qui vient de ragequite sur bcache parce que ça ne semble pas stable d'un noyau à l'autre, et il a perdu des données.

Du coup ça refroidit bien, hein.

@Lapineige comme le hierarchical storage manager de MVS.
Pas à ma connaissance.
C'est effectivement une idée intéressante, mais je pense que les SSD supplanteront les disques de grosse capacité avant que ce ne soit réalisé.

@Lapineige par contre des fabricants de hdd intègrent de la mémoire non volatile à leurs disque pour faire cache et ainsi accélerer les accès aux fichiers fréquemment accedés.

@sebsauvage
Il se dit dans les milieux autorisés que Windows sait déjà le faire, mais se le réserve sur les versions Server.
@Lapineige

@sebsauvage @Lapineige Avec Btrfs je sais pas, mais avec LVM tu peux (et tu peux coller du Btrfs sur le volume LVM après).

@Lapineige #ZFS fait ça très bien. Je ne crois pas que ce soit possible avec #Btrfs.

@Lapineige apt show bcache-tools: Bcache permet d'utiliser des disques SSD comme des caches pour d'autres périphériques

@Lapineige Oui, avec lvmcache (et donc indépendant du système de fichier).
Par exemple: wiki.archlinux.org/title/LVM#C

Bien sûr il faut que le HDD à cacher soit déjà géré par LVM, ce qui par ailleurs offre beaucoup d'autres facilités

Page de man man7.org/linux/man-pages/man7/

@plumbear donc si l'on n'a pas déjà configuré tout ça avec LVM (tout est en Btrfs, je n'avais pas ce besoin) c'est mort sans une réinstallation ?

@Lapineige simplement, oui.
En revanche si on dispose d'assez d'espace libre en parallèle on peut migrer le système dans un ou des LV classiquement par copie des systèmes de fichiers. Il faut bien planifier l'opération, avoir des backups à jour, ... c'est un peu plus risqué :-)

(exemple, en gros: thegeekdiary.com/centos-rhel-c )

@plumbear ok, merci du retour 🙂

Je garde l'idée sous le coude, mais a priori la solution à base de bcache me semble moins galère à mettre en place 🤔

@Lapineige de mon point de vue ce n'est pas très différent puisqu'il faut préparer la partition au format requis pour bcache ou LVM.

Mais ta question m'a incité à aller regarder à nouveau bcache (merci pour cela! :-) et dans la FAQ on trouve un lien vers un petit outil qui permet de convertir entre partition/LV/bcache en place
github.com/g2p/blocks

@plumbear j'ai l'impression que ça me serait plus contraignant (sans convertir tout le système) que bcache, tout en faisant doublon avec btrfs (pour le redimensionnement des partitions).

Intéressant, je note 🙂
Pas mis à jour depuis 8 ans par contre, ça n'inspire pas confiance.

Sign in to participate in the conversation
La Quadrature du Net - Mastodon - Media Fédéré

Mamot.fr est un serveur Mastodon francophone, géré par La Quadrature du Net.