J'ai un nouveau SSD, je ne veux pas le porter, mais je veux quand même en utiliser pour stocker des fichiers de données avec l'ancien disque dur

9

J'ai acheté un nouveau SSD Samsung 850 EVO de 250 Go pour mon ordinateur portable que je souhaite utiliser comme périphérique de stockage principal, ainsi que l'ancien disque dur de 250 Go à 7500 tr / min que je mets dans l'ancienne baie de DVD avec un caddy d'adaptateur.

À l'heure actuelle, le disque dur n'a qu'une seule grande partition ext4 contenant le système d'exploitation, les applications et les fichiers de données. Je veux utiliser le disque dur pour stocker des données, mais je ne veux pas manquer l'occasion d'obtenir l'amélioration de la vitesse du SSD en le faisant.

Je veux combiner disons une partition de 50 Go ou plus petite sur le SSD et la fusionner avec la partition sur le disque dur afin que les fichiers les moins modifiés des fichiers les plus consultés soient automatiquement déplacés vers le SSD.

J'ai regardé des caches comme EnancheIO et Bcache , mais ils ne semblent pas ce que je veux, car (corrigez-moi si je me trompe):

  • L'espace occupé par la partition de cache est soustrait de la quantité d'espace disponible.
  • Le cache accélère l'accès aux fichiers les plus consultés, qu'ils soient également les moins souvent modifiés, ce qui va à l'encontre de l'objectif de ne pas vouloir épuiser le SSD.

Est-ce que ce qui précède est correct, ou un cache (lequel de ces deux?) Pourrait m'aider à atteindre mon objectif? Si ce qui précède est correct, connaissez-vous une autre solution viable?

Un système de fichiers union , comme OverlayFS , serait-il utile ici? Si vous avez surveillé le disque dur pour les fichiers les plus consultés (en gardant une trace de leur atimequotidien) et identifié les moins modifiés parmi eux (en gardant une trace de leur mtime), en théorie, vous pouvez déplacer ces fichiers vers le SSD, libérant de l'espace sur le HDD, tandis que le système de fichiers union pourrait rendre tout cela transparent pour l'utilisateur.

Est-ce que cela fonctionnerait?

Fabio A.
la source
En théorie, vos exigences sont réalisables. La solution la plus réalisable consiste à publier une demande de fonctionnalité sur le traqueur de bogues bcache demandant une autre stratégie de stockage de fichiers sur le bcache.
Adam Ryczkowski
... Et oui, la taille de la partition bcache sera "mangée" loin du stockage total disponible. C'est par conception, car bcache est indépendant du système de fichiers. Cette conception vous donne l'avantage de ne stocker que la partie la plus fréquemment modifiée d'un fichier , ce qui devrait être avantageux avec, par exemple, des données de base de données.
Adam Ryczkowski
Consultez également le projet, qui peut être facilement modifié pour répondre à vos besoins (ou peut même le prendre en charge): romanrm.net/mhddfs
Adam Ryczkowski
@Fabio: aucun commentaire, aucune acceptation, mais vous êtes en ligne. Des problèmes avec la réponse ci-dessous?
Fabby
1
@Fabby, je viens juste d'avoir le temps d'examiner les réponses et les commentaires, même si j'étais en ligne, je ne pouvais pas passer du temps à le faire. Je vais y arriver maintenant.
Fabio A.

Réponses:

3

Vous avez quelques options selon ce que vous essayez d'accomplir:

  • Utilisation bcache: Vous pourrez manger votre gâteau, mais pas le conserver.

    Oui, la quantité d'espace que vous réservez pour la mise en cache sera exactement comme l'opposé d'un fichier d'échange: la quantité que vous spécifiez sera "retirée" de la quantité totale d'espace disque et donnée au sous-système de mémoire pour être utilisée comme tampons pour l'autre disque dur.
    Pour contrôler quels fichiers sont mis en cache, utilisez quelque chose comme vmtouchpour affiner la bcachemise en cache.

  • Utilisez LVM: vous pourrez garder votre gâteau, mais pas le manger.

    Vous pouvez utiliser le gestionnaire de volumes logiques pour créer un volume qui contient à la fois le SSD et le disque dur en créant un grand /homevolume qui contient l'espace des deux, mais:

    1. Vous n'aurez aucun contrôle sur le fichier qui va sur le SSD et celui sur le disque dur
    2. Si vous perdez l'un des deux disques, vous perdez toutes les données et devrez restaurer à partir de la sauvegarde !!!
  • Utilisez un système manuel: vous pourrez conserver votre gâteau et le manger.

    Partitionnez le lecteur dans des systèmes de fichiers séparés: mettez /le SSD et /homele disque dur. En plus de cela, vous devriez mettre tous les fichiers dans /media/FastDatalesquels vous voulez aller rapidement et créer un lien symbolique entre les originaux et ceux /media/FastData si et seulement si ces fichiers résident dans votre/home (sinon ils résident déjà sur le SSD de toute façon)

Remarque 1: J'ai un petit SSD et un grand disque dur, donc j'utilise encore un autre système: /sur le SSD et /homesur le disque dur et ne vous embêtez pas à optimiser davantage ...
Note 2: Un système de fichiers union ne vous aidera pas plus que le système manuel ...
Note 3: Voici quelques conseils supplémentaires pour ne pas épuiser votre SSD à partir du point 4 et au-delà

Fabby
la source
3
Comme vous n'avez jamais accepté de réponse sur ce site auparavant: Si cette réponse vous a aidé, n'oubliez pas de cliquer sur le gris à gauche de ce texte, ce qui signifie Oui, cette réponse est valable ! ;-)
Fabby
Conseils supplémentaires fournis dans une note supplémentaire! ;-)
Fabby
Merci pour la réponse et le pointeur vers vmtouch, mais - pour ne pas être impoli - à part cela, je ne vois aucune information supplémentaire sur ce que je me suis dit dans la question elle-même, est-ce là? L'idée d'utiliser un FS syndiqué était qu'il aurait alors été transparent pour l'utilisateur de savoir où les fichiers ont été placés - que ce soit sur le SSD ou sur le disque dur - sur la base que le processus de déplacement de fichiers d'un média vers le d'autres seraient totalement automatiques. En y pensant, il pourrait également être mis en œuvre avec des liens symboliques, ce qui pourrait s'avérer plus facile à mettre en œuvre.
Fabio A.
Dans l'ensemble, il semble qu'il n'y ait pas de solution appropriée à ma question, mais j'accepterai votre réponse comme valable puisque vous avez aidé à faire comprendre qu'il n'y a pas encore de solution appropriée. Je vous remercie.
Fabio A.
@FabioA. Eh bien, cela dépend de votre définition de «bon». Symlinking fait l'affaire "de manière transparente" pour l'utilisateur final (une fois que l'administrateur l'a configuré) ... mhddfsa les mêmes inconvénients de ma lvmsolution. Grazie mille pour l'acceptation et la faveur retournée: Q a voté! ;-)
Fabby