Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/10/2014, à 11:48

BrunoL

SSD comme cache d'un DD sata [Résolu]

Bonjour,

Doté d'un portable pouvant contenir 2 DD, je me pose le problème suivant :

Si j'équipe cette machine d'un SSD (120Go) et d'un disque dur (sata 1To) serait-il possible de faire du SSD un cache (très étendu wink  du sata ?

L'idée serait qu'à l'ouverture d'un fichier du sata il soit écrit sur le ssd, traité sur ce dernier et en fin de traitement "vidé" sur l'origine sata.

J'espère avoir été clair. J'ai trouvé quelques trucs en anglais sur le sujet mais ma maîtrise relative de la langue de shakespeare n'est pas suffisante sad

Si vous avez des pistes en français je suis preneur.

Par avance merci.

Dernière modification par BrunoL (Le 28/10/2014, à 20:29)

Hors ligne

#2 Le 24/10/2014, à 20:02

Foucal

Re : SSD comme cache d'un DD sata [Résolu]

Bonsoir,

Moi aussi j'ai le même problème, je cherche désespérément une bonne méthode (en tous cas que je puisse comprendre aisément...) pour faire ça. J'en ai trouvé 2 mais soit ça ne marche pas, soit il faut modifier grub.cfg et bon, j'suis pas trop chaud pour faire ça...
Dans les 2 cas on utilise flashcache. Ce que j'ai trouvé était en anglais, donc j'ai essayé de te traduire ça, mais je ne comprends pas forcément toutes les lignes...
Dans un terminal :

git clone git://github.com/facebook/flashcache
cd flashcache
sudo make -f Makefile.dkms

1ère méthode trouvée :
a) "Caching a non-root (not mounted at /) device" : déjà là je n'ai pas bien compris le sens de cette phrase désolé...
Dans un terminal :

sudo dmsetup remove -f -r /dev/sda1

où sda1 est ton SSD.
Puis :

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX

où "fcache is the created device (/dev/mapper/fcache)" (là je n'ai pas bien compris s'il fallait qu'on choisisse un nom ou pas...), /dev/sdaX ta partition SSD et /dev/sdbX ta partition HDD (pour moi c'était l'inverse, c'est-à-dire sda = HDD et sdb = SSD).

b) "Caching your root device" : même chose, pas bien compris...
Ici il faut utiliser un liveCD/USB de Ubuntu. Avant ça, dans un terminal :

cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf

Ensuite, modifier /boot/grub/grub.cfg et /etc/fstab afin de faire démarrer le système sur /dev/mapper/fcache : ici gros mystère (et surtout risque), modifier OK mais pour y mettre quoi ???
Puis reboot avec le liveCD/USB ; monte ta partition root (HDD) :

mount /dev/sdbX /mnt

Puis :

cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make
sudo make install

Démonte ton root :

sudo umount /mnt

Enfin :

sudo flashcache_create -p back fcache /dev/sdaX /dev/disk/by-uuid/[UUID]

où sdaX est ta partition SSD et [UUID] le UUID de ta partition root.
Redémarre.


2è méthode trouvée :
Modifie le fichier /etc/lvm/lvm.conf pour blacklister le SSD :

filter = [ "r|/dev/sdb|" ]

où sdb est ton SSD
Ensuite :

mkinitrd -f /boot/initramfs-$(uname -r).img $(uname -r)

sauf que la commande mkinitrd ne marche pas, j'ai cru comprendre qu'il fallait la remplacer par mkinitramfs directement.
Par la suite, il faut modifier le fichier /boot/grub/grub.cfg "and add this to the kernel line" (kernel line ?) :
rd_FLASHCACHE=/dev/HDD:/dev/SSD:fc_HDD
S'il y a (dans le même fichier) la ligne root=/dev/HDD, la changer en root=/dev/mapper/fc_HDD.
Redémarre.


Bon voilà tout ce que j'ai trouvé, je t'ai traduit ça comme je l'avais compris, mais je n'ai rien pu mener à terme parce que je ne comprends pas tout ce qui est dit (non pas que mon niveau d'anglais soit mauvais, je trouve juste que ça manque quelque peu d'infos...).
Il vaut cependant mieux attendre que quelqu'un d'un peu plus doué que moi passe ici pour donner son avis parce que je suis aussi un peu dans le vague...

Hors ligne

#3 Le 25/10/2014, à 10:37

cistes44

Re : SSD comme cache d'un DD sata [Résolu]

Salut,

Intéressantes vos questions ! Je n'ai pas d'expérience dans le domaine (ordinateur portable antique oblige), mais je peux toujours apporter une fraction de réponse.

@ Foucal : Pourrais-tu donner le lien original vers le tuto que tu as trouvé, s'il te plaît ?
Je pense que la seconde méthode correspond à la mise en place d'un cache pour le disque dur système (root, mais l'administrateur, mais la racine), alors que la première est faite pour faire un cache du disque système, mais cela demanderai à être vérifier. Mais pour le coup, tu devrais ouvrir un nouveau fil plutôt que de greffer ta question sur un fil déjà existant.

@ BrunoL : Personnellement, si j'avais une machine avec un SSD de 120 Go et un disque de 1 To, je mettrai les données sur le disque et le système avec les programmes sur le SSD, vu que les données n'ont souvent pas besoin d'une grande quantité de bande passante. Mais tu as sans doute une bonne raison de ne pas vouloir faire cela, et pour le coup, je ne pense pas que la solution donnée par Foucal te convienne. Si tu ne veux faire cela que pour certains fichiers qui s'ouvrent avec un programme unique, scripter le programme pourrait peut-être t'apporter la solution, mais mes connaissances s'arrêtent là.


Dell Latitude D830 et Thinkpad X220 - Xubuntu 16.04 et 18.04
En cas de problème, appliquez une pincée de poudre verte.
Et pensez aux parrains linux pour une aide IRL. %NOINDEX%

Hors ligne

#4 Le 25/10/2014, à 11:19

Foucal

Re : SSD comme cache d'un DD sata [Résolu]

Pour la 1ère méthode je ne trouve plus le lien désolé, mais j'vais c/c dans un bloc-note donc voilà le texte en vo :

"Building the Module
The first thing you do is install the building prerequisites: sudo apt-get install dkms build-essential linux-headers-$(uname -r)
Then snag the source: git clone git://github.com/facebook/flashcache

cd flashcache

Build and install the modules: sudo make -f Makefile.dkms

Creating a flashcache device
(In this example I use writeback caching -- the default -- but flashcache can do writearound and writethrough as well)

Caching a non-root (not mounted at /) device

sudo dmsetup remove -f -r /dev/sda1
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX

Where fcache is the created device (/dev/mapper/fcache), /dev/sdaX is the SSD partion (or whole disk) and /dev/sdbX is the HDD partition.

Caching your root device
There are a few more steps if you're caching your root device. You will need an Ubuntu LiveCD/USB for this section.

cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf

Edit /boot/grub/grub.cnf and /etc/fstab to boot from /dev/mapper/fcache (I don't believe this step is really necessary, but it says to). Be sure to write down the UUID of your original root device.
Reboot with the LiveCD/LiveUSB.
Mount your root device:

mount /dev/sda4 /mnt

(/dev/sda4 is my Linux root partition)

cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make
sudo make install

No need to do the whole DKMS setup in the live environment
Unmount the root device

sudo umount /mnt
sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]

Where fcache is the created device (it should be the same as you put in /etc/fstab and /boot/grub/grub.cnf, in my case it was fcache), /dev/sdbX is the SSD partition (or whole disk) and [UUID] is the UUID of your root partition.
Reboot!"

Et pour la 2è méthode il s'agit simplement du tuto que j'ai trouvé dans le fichier /home/.../flashcache/doc/dracut-flashcache.txt à partir de la ligne 52.

Je viens par ailleurs de trouver 2 autres tuto, mais pour la 12.04 et 13.10 :
http://blog.gerrit-tamboer.net/using-fl … ntu-12-04/
https://gist.github.com/PeloNZ/9752848

cistes44 a écrit :

Mais pour le coup, tu devrais ouvrir un nouveau fil plutôt que de greffer ta question sur un fil déjà existant.

J'ai l'impression qu'on se posait la même question non ?

Hors ligne

#5 Le 25/10/2014, à 20:11

BrunoL

Re : SSD comme cache d'un DD sata [Résolu]

Bonsoir,

Merci à tous les deux. Tudiou, compliqué tout cela.

J'ai progressé dans ma recherche qui, je précise, n'a pour but que d'utiliser le DD sata comme disque de data donc ni comme /home et encore moins comme système. Donc je ne touche ni à grub ni à d'autres modules système.

J'ai fait le tour de 3 solutions, bcache, dmcache et flashcache que j'ai viré rapidement (je sais plus pourquoi). bcache bien que simple a une documentation qui dépasse largement mes capacités à comprendre. Donc reste dmcache !

J'ai donc ... acheté un sata (le plus dur wink ) et choisi lvm fonctionnalité lvmcache roll

En effet, j'ai cru comprendre que lvm que j'utilise systématiquement offre une fonction cache. Je crois avoir lu qu'il s'agit de dmcache mais j'en suis pas sur. Cerise sur le gâteau il existe un man (7) lvmcache.

Je potasse un peu ce lvm et je pense le mettre en œuvre dans la semaine. J'y vais progressivement car s'agissant d'un portable les 2 DD sont cryptés avec LUKS et je me demande si pour le sata ce n'est pas une conner.. vis à vis des sauvegardes. Je penses que ecryptfs ou encfs sont plus adaptés donc je voudrais valider cela avant de mettre le cache.

A+

Dernière modification par BrunoL (Le 25/10/2014, à 20:19)

Hors ligne

#6 Le 26/10/2014, à 09:34

cistes44

Re : SSD comme cache d'un DD sata [Résolu]

Salut,

@ BrunoL : Pourrais-tu donner le détail de tes disques s'il te plait ? Car au travers de ton dernier message, j'ai l'impression que tu as 3 disques, deux internes (SSD + HDD) et un externe, non ? lvm est uns solution compliquée à mettre en place, et il est quasiment impossible de récupérer quoi que ce soit en cas de crash d'un disque ou du système de fichier. C'est pour cela que sur le forum, on déconseille habituellement l'usage de lvm. Malgré tout, lvmcache a l'air d'être un paquet très intéressant ; même s'il ne correspond pas à ce que tu as dit vouloir dans ton premier post :

BrunoL a écrit :

L'idée serait qu'à l'ouverture d'un fichier du sata il soit écrit sur le ssd, traité sur ce dernier et en fin de traitement "vidé" sur l'origine sata.

lvmcache ne fait pas cela.
Je n'ai pas tout à fait saisi la question que tu poses à la fin de ton dernier message, pour te répondre, il nous faut plus d'info pour qu'on parle bien des mêmes choses wink

@ Foucal : Tu as un tuto préféré ? Auquel cas, on pourra voir ce qu'on pourrait faire avec toi. Et je ne pensais pas que les questions étaient les mêmes, même si elles ne se sont pas très éloignées.


Dell Latitude D830 et Thinkpad X220 - Xubuntu 16.04 et 18.04
En cas de problème, appliquez une pincée de poudre verte.
Et pensez aux parrains linux pour une aide IRL. %NOINDEX%

Hors ligne

#7 Le 26/10/2014, à 21:28

BrunoL

Re : SSD comme cache d'un DD sata [Résolu]

Bonsoir,

ciste44, tu as raison après lecture je comprends qu'un cache ne fonctionne pas comme je le pensais. Il intervient en continue et pas seulement en fin de traitement. En fait cela correspond quand même à mon attente avec un gain assez sensible si j'en crois ce que j'ai pu lire.
Je dispose bien de 2 DD (sata 1T + SSD 120 Go).
Concernant lvm je ne partage pas ton point de vue. Certes au début j'ai un peu galéré mais les man sont exceptionnellement clairs et je n'ai jamais rien perdu malgré de nombreuses manip hasardeuses car avec le ssd et l'install initiale j'étais à l'étroit sur le ssd que j'ai donc restructuré à maintes reprises. Nota: l'install était une ubuntu14 standard avec tout en lvm (sauf boot) et j'ai tout redimensionné en dégageant un tiers de l'espace pour une partition data ... que je veux porter sur le sata.
Concernant le dernier point, après avoir mis LUKS sur le sata et implanté lvm je me suis rendu compte que mes sauvegardes (en l’occurrence rsync) ne pouvaient plus se faire sur les fichiers cryptés (comme avec encfs) mais :
- soit on sauvegarde tout le disque, à terme 1T et ceci même si seulement 10 octets ont évolué,
- soit on sauvegarde le DD décrypté afin de permettre la détection des seuls fichiers ayant évolués.
D'où mon actuelle interrogation. Mon objectif est d'avoir le minimum de transfert sur sauvegarde et faire transiter des fichiers cryptés donc, a priori exit LUKS.

J'espère avoir été clair et merci de ton attention. Concernant lvm et un crash disque, je passe mon tour faute d'avis éclairé hmm et pour cela je compte plutot sur mes sauvegardes quotidiennes ... voir mon dernier point.

Dernière modification par BrunoL (Le 26/10/2014, à 21:32)

Hors ligne

#8 Le 26/10/2014, à 21:39

PPdM

Re : SSD comme cache d'un DD sata [Résolu]

Salut
Je ne comprends pas trop l’intérêt de ce que tu veux faire.
Dans ton cas la solution la plus efficace est de mette le / sur le SSD et le /home soit sur le SSD avec une synchro sur le DD, soit directement le /home sur le DD.
Mais se servir du SSD comme cache est condamner a mourir prématurément,  de plus, je ne sais pas combien de RAM tu as mais si tu a plus de 2GO le cache ne sert a rien, tu auras toujours de la RAM de libre, sur mo PC de Vidéo avec 8GO de RAM je n'ai jamais réussi a dépasser les 3 GO d'utilisé avec un tas de truc ouvert.


La critique est facile, mais l'art est difficile !
L'humanité étant ce qu'elle est, la liberté ne sera jamais un acquit, mais toujours un droit à défendre !
Pour résoudre un problème commence par poser les bonnes questions, la bonne solution en découlera

Hors ligne

#9 Le 27/10/2014, à 19:46

BrunoL

Re : SSD comme cache d'un DD sata [Résolu]

Tiens curieux, j'ai répondu hier soir à PPdM mais ma réponse semble s'être perdue.

L'intérêt serait de n'avoir aucune différence de temps de réponse que les fichiers traités se trouvent sur le ssd ou sur le sata. Sata que j'ai choisi peu bruyant et peu gourmand en énergie donc un bourrin wink

Le / et les homes sont bien sur le ssd mais photos et films iront sur le sata.

Tu fais un lien entre la RAM et le cache I/O mais je pense que ton raisonnement vaut pour le swap et l'utilisation de la RAM par le noyau. Je ne suis pas sur qu'il vaille pour le cache I/O disque. Ceci dit j'ignore à quel gain m'attendre car j'avoue ne pas comprendre grand chose à ce mécanisme de cache mais sur le net des gains de 50% et 30% semblent obtenus ...  dans quelles conditions ???

J'ai un peu testé la solution ... un peu car la fonctionnalité lvm cache est disponible sur la version 2.2.112 or ubuntu offre la 2.2.98 donc pour le moment cela va calmer la réflexion hmm

Hors ligne

#10 Le 28/10/2014, à 20:40

BrunoL

Re : SSD comme cache d'un DD sata [Résolu]

Bon, je suis tombé sur une doc du constructeur DELL en anglais mais à ma portée et trés claire : "Linux Block Caching Choices in Stable Upstream Kernel"

Pour ceux que cela intéresserait avec ce doc dm-cache s'installe assez simplement (si on a un peu l'habitude de lvm).

Et les résultat sont là et, pour moi, assez surprenant mais j'ai testé très rapidement avec des dd de fichier de 1Go (cache système shunté) :
                                                 Écriture     Lecture séquentielle
sur "partition/lv" sans cache :      96 Mo        111 Mo
sur "partition/lv" avec cache :      80 Mo         300 Mo

Donc j'ai le beurre, l'argent du beurre mais pas la crémière wink

Ceci étant je continue car à l'évidence ce type de cache impacte significativement et je l'ai installer en version de base et ... sans rien comprendre. Donc ne peut que s'améliorer.

A+

Hors ligne

#11 Le 31/10/2014, à 15:05

cistes44

Re : SSD comme cache d'un DD sata [Résolu]

Salut,

Merci pour le retour, je m'y pencherai dessus à l'occasion. Et je suis heureux que tu aies trouvé quelque chose qui te convient.


Dell Latitude D830 et Thinkpad X220 - Xubuntu 16.04 et 18.04
En cas de problème, appliquez une pincée de poudre verte.
Et pensez aux parrains linux pour une aide IRL. %NOINDEX%

Hors ligne