#1 Le 28/10/2010, à 15:37
- helly
defragmenter ext4
Bonjour à tous !
Bon déjà oui je sais, l'ext4 se défragmente tout seul à l'usage et tout.
Mais voilà, j'ai sur mon serveur sur partition ext4 qui me sert exclusivement au p2p, et le p2p a franchement tendance à fragmenter.
Cette partition n'est pleine qu'à 40 % et elle est déjà 40 % fragmentée .
Aussi, connaîtriez vous une commande ou un truc pour forcer la défragmentation d'une partition en ext4 ?
(autre que tout copier sur un autre média et re-copier à l'origine, c'est pas très optimal quoi ^^')
Merci beaucoup, bonne journée !
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#2 Le 28/10/2010, à 15:39
- rmy
Re : defragmenter ext4
plop, sujet qui m'intéresse.
récupération de données: vrac–topic unique–mon site pro pour les particuliers : www.diskcard.fr– Je recycle volontiers tous vos disques durs HS (ou pas).
Le site pro pour les pros, spécialiste recupération de données RAID, NAS et serveurs: www.vodata.fr
Hors ligne
#3 Le 28/10/2010, à 15:52
- Hoper
Re : defragmenter ext4
A ma connaissance, il n'existe pas vraiment d'outil pour ça.
Et la meilleure chose à faire est effectivement une recopie complète du volume. (Note qu'avec LVM, et à condition que tu ai encore de la place bien sur, ca peut se faire assez facilement et sans rien changer à tout le reste, puisque il suffira après la copie de renommer les LV et de supprimer l'ancien).
Cela dit, quand tu as le problème sur un très gros volume, ca devient effectivement intéressant de vouloir travailler fichier par fichier, et de ne re-copier que ceux qui sont vraiment fragmentés. J'avais fait un petit script pour faire précisément ça... Je ne l'ai pas testé sur ext4, mais je ne vois pas pourquoi il y aurait un soucis.
#!/bin/bash
## Syntaxe
if [ $# -ne 1 -o ! -d "$1" ]
then
echo " "
echo " Syntaxe : $0 repertoire"
echo " ex : $0 /home/toto/documents"
echo " "
exit 1
fi
## Creation de la liste des fichiers a traiter
find "$1" -mount -type f -print > /tmp/sdefrag.lst
## Verification de la presence de filefrag
which filefrag >/dev/null
if [ $? -ne 0 ]
then
echo " "
echo " Impossible de trouver la commande filefrag !"
echo " Sur ubuntu cette commande se trouve dans le paquet e2fsprogs..."
echo " "
exit 2
fi
FF=`which filefrag`
IFS="
"
for i in `cat /tmp/sdefrag.lst`
do
RESULT=`$FF "$i" | cut -d ':' -f 2`
NBREALEXT=`echo $RESULT | awk '{print $1}'`
NBPERFECTEXT=`echo $RESULT | awk '{print $7}'`
if [ ! -z "$NBPERFECTEXT" ]
then
# Le fichier est fragmente
if [ "$NBREALEXT" -ge `expr $NBPERFECTEXT \* 10` ]
then
echo "$i semble tres fragmente ("$NBREALEXT" extends) "
cp "$i" "$i"tmp
rm "$i"
mv "$i"tmp "$i"
echo "resultat apres recopie : `$FF "$i" | cut -d ':' -f 2 | awk '{print $1 $2}'` "
echo " "
fi
fi
done
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#4 Le 28/10/2010, à 16:01
- cep
Re : defragmenter ext4
plop, sujet qui m'intéresse.
et tu as utilisé e2freefrag pour vérifier le taux de fragmentation ? 40% me parait beaucoup. 20% à la rigueur.
Hors ligne
#5 Le 28/10/2010, à 16:04
- helly
Re : defragmenter ext4
Non, j'ai eu le retour de cette commande via fsck.
Pour ton script je le comprend pas trop mais je te fais confiance :
Il semble qu'il faille le lancer en root, ok.
J'ai donc testé
sudo defrag /home/helly
Ça mouline 5 minutes, puis
open: No such file or directory
Ça re-mouline 5 minutes, puis ça s'arrête.
Pas de message, rien…
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#6 Le 28/10/2010, à 16:15
- Hoper
Re : defragmenter ext4
Heu.... Je m'en suis encore servi il y a pas très longtemps...
Tu peux me copier le contenu de /tmp/sdefrag.lst ?
Juste quelques lignes, pour vérifier que déjà ce fichier à été crée correctement.
Mais... c'est quand même super louche... Tu est sur que t'a pas fait d'erreur dans le copier/coller ? )
Sinon, pour information, il n'affiche effectivement rien si il ne trouve aucun fichier vraiment très fragmenté dans le répertoire en question. Ce qui m'étonne c'est l'erreur open file...
Autre truc, pourrait tu copier le résultat de la commande :
sudo filefrag un_fichier
(un fichier contenu dans le répertoire que tu a essayé de dé-fragmenter et pour lequel tu soupçonne une forte fragmentation)
Dernière modification par Hoper (Le 28/10/2010, à 16:33)
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#7 Le 28/10/2010, à 16:43
- helly
Re : defragmenter ext4
Bon alors voilà les résultats, je t'ai aussi mis la md5 du fichier script, mais j'ai bien re-vérifié, c'est bien copié.
Le fichier dans tmp existe bien aussi…
helly@Alent:~$ md5sum defrag && sudo ./defrag /home/helly/ && sudo head /tmp/sdefrag.lst && sudo filefrag defrag
165c228b13cde8bcebf22ad2cdbcc8df defrag
open: No such file or directory
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-default-source
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-card-database.tdb
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-stream-volumes.tdb
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-default-sink
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-device-volumes.tdb
/home/helly/.netpanzer/netpanzer-20101018_163623.log
/home/helly/.netpanzer/config/netpanzer.ini
/home/helly/signaler_rmy.png
/home/helly/.glob2/keyboard-gui.txt
/home/helly/.glob2/preferences.txt
defrag: 1 extent found
helly@Alent:~$
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#8 Le 28/10/2010, à 16:43
- rmy
Re : defragmenter ext4
rmy a écrit :plop, sujet qui m'intéresse.
Hey, salut cep ! Ça va ?
Je t'avais envoyé un message concernant une proposition de collaboration pour une miniconf à la prochaine UP de mai 2011. Tu l'as perdu dans un /dev/null qui trainait par là ?
récupération de données: vrac–topic unique–mon site pro pour les particuliers : www.diskcard.fr– Je recycle volontiers tous vos disques durs HS (ou pas).
Le site pro pour les pros, spécialiste recupération de données RAID, NAS et serveurs: www.vodata.fr
Hors ligne
#9 Le 28/10/2010, à 16:43
- rmy
Re : defragmenter ext4
/home/helly/signaler_rmy.png
récupération de données: vrac–topic unique–mon site pro pour les particuliers : www.diskcard.fr– Je recycle volontiers tous vos disques durs HS (ou pas).
Le site pro pour les pros, spécialiste recupération de données RAID, NAS et serveurs: www.vodata.fr
Hors ligne
#10 Le 28/10/2010, à 16:47
- helly
Re : defragmenter ext4
.
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#11 Le 28/10/2010, à 16:58
- cep
Re : defragmenter ext4
cep a écrit :rmy a écrit :plop, sujet qui m'intéresse.
Hey, salut cep ! Ça va ?
Je t'avais envoyé un message concernant une proposition de collaboration pour une miniconf à la prochaine UP de mai 2011. Tu l'as perdu dans un /dev/null qui trainait par là ?
aie ! je te mail en privé. En effet, égaré au retour
Hors ligne
#12 Le 28/10/2010, à 17:38
- helly
Re : defragmenter ext4
Hey, c'est pas meetic ici .
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#13 Le 28/10/2010, à 17:40
- Hoper
Re : defragmenter ext4
Polom polom....
A mon avis le script fonctionne correctement.
Simplement je ne l'ai encore jamais lancé dans /home... Or il y a des trucs bien chelou la dedans, genre le .gvfs et compagnie.
Pour le reste, je pense qu'il ne trouve aucun fichier qu'il considère comme très fragmenté (10 fois plus d'extend que prévus).
Relance la commande filefrag, mais cette fois ci sur un GROS fichier, et un que tu crois être fragmenté donc. (parce que le script, tu viens de le créer, et surtout il prend que dalle comme place... bref, lui ne pouvais pas être fragmenté).
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#14 Le 28/10/2010, à 17:47
- helly
Re : defragmenter ext4
Alors un filefrag sur une iso !
helly@Coptere:/mnt/Torrents/En_cours$ filefrag Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso
Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso: 372 extents found
372, c'est assez ?
Dernière modification par helly (Le 28/10/2010, à 17:49)
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#15 Le 28/10/2010, à 17:50
- helly
Re : defragmenter ext4
ET je viens de lancer le script sur la partition fragmentée, il est pas beaucoup plus bavard :
helly@Coptere:~$ sudo ./defrag /mnt/Torrents/
helly@Coptere:~$
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#16 Le 28/10/2010, à 17:56
- Hoper
Re : defragmenter ext4
helly@Coptere:/mnt/Torrents/En_cours$ filefrag Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso
Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso: 372 extents found
C'est bien ce que je disais, ton fichier n'est pas fragmenté. C'est même très impressionnant pour un fichier de cette taille. Si il avait été fragmenté, la sortie de la commande aurait été bien différente. Voila un exemple :
hoper@gemeaux:~/scripts$ sudo filefrag /data/pub/isos/Autres\ CD/debian-40r1-i386-DVD-1.iso
/data/pub/isos/Autres CD/debian-40r1-i386-DVD-1.iso: 39 extents found, perfection would be 35 extents
hoper@gemeaux:~/scripts$
Et encore, la il s'agit d'un fichier très, très peu fragmenté. J'ai eu des tas de cas avec des fichiers qui au lieu de prendre 200 extends par exemple, en utilisaient... trois cent milles ! Raison pour laquelle mon script ne réagit qu'aux fichiers avec un nombre d'extend supérieur à 10 fois ce qu'il devrait être.
Je reste donc sur mes positions, les fichiers présents dans ton répertoire ne sont pas fragmentés, ou vraiment très peu.
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#17 Le 28/10/2010, à 18:00
- helly
Re : defragmenter ext4
Ha ?
Mais dans ce cas :
helly@Coptere:~$ sudo fsck -f /dev/mapper/mvg-Torrents
…
/dev/mapper/mvg-Torrents : 2189/58064896 fichiers (32.8% non contigus)
Et y'a rien de mieux à faire ?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#18 Le 28/10/2010, à 18:04
- Hoper
Re : defragmenter ext4
Heu... enlève moi un doute la...
/dev/mapper/mvg-Torrents correspond à /home !?
Tu peux me copie la sortie de : df -h | grep mvg-Torrents
Mon script prend bien soin de ne pas traverser les fs, parce que sinon... houla... bonjour le bordel
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#19 Le 28/10/2010, à 18:06
- helly
Re : defragmenter ext4
Non non c'est pas mon /home, c'est la partition torrent qui pose problème justement !
Il faut donc que je lance ce script à même la partition ?
Dernière modification par helly (Le 28/10/2010, à 18:08)
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#20 Le 28/10/2010, à 18:33
- cep
Re : defragmenter ext4
lancer e2freefrag sur le fs pour savoir s'il est fragmenté.
man e2freefrag
Hors ligne
#21 Le 28/10/2010, à 18:36
- helly
Re : defragmenter ext4
Hop !
HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range : Free extents Free Blocks Percent
4K... 8K- : 169 169 0.00%
8K... 16K- : 298 771 0.00%
16K... 32K- : 352 1903 0.00%
32K... 64K- : 373 4058 0.00%
64K... 128K- : 290 6287 0.00%
128K... 256K- : 408 20116 0.01%
256K... 512K- : 485 43209 0.02%
512K... 1024K- : 638 113184 0.06%
1M... 2M- : 792 283740 0.16%
2M... 4M- : 844 610794 0.35%
4M... 8M- : 897 1348577 0.76%
8M... 16M- : 55 143973 0.08%
16M... 32M- : 5 29054 0.02%
32M... 64M- : 5 48922 0.03%
64M... 128M- : 102 2462339 1.40%
256M... 512M- : 1 112608 0.06%
512M... 1024M- : 2 318431 0.18%
1G... 2G- : 332 170705509 96.81%
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#22 Le 28/10/2010, à 19:12
- Hoper
Re : defragmenter ext4
Il faut donc que je lance ce script à même la partition ?
Pas forcément à l'intérieur non, mais au moins "dessu". Donc, d'après ce que je lis, il faudrait mettre en argument : /mnt/Torrents
et pas ce que tu as tapé, à savoir :
sudo defrag /home/helly
Si le contenu à defragemnter est dans /mnt/Torrents, alors tu aurai du taper :
sudo defrag /mnt/Torrents
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#23 Le 28/10/2010, à 19:17
- cep
Re : defragmenter ext4
tu n'as pas reporté le % de Free blocks. Mais d'après ce que je vois des possibilités tu ne devrais pas avoir de problèmes de fichiers fragmentés. fsck te dit que le fs est fragmenté ?
Hors ligne
#24 Le 28/10/2010, à 19:49
- helly
Re : defragmenter ext4
fsck me dit juste qu'il y a les 32% non contingus, ça veut bien dire que c'est fragmenté non ?
@Hoper : yep, c'est ce que j'ai fait…
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#25 Le 28/10/2010, à 20:18
- cep
Re : defragmenter ext4
comme tu as vu la sortie de e2freefrag l'état du fs dans sa globalité ne génèrera pas de fragmentation.
Donc la solution proposée par Hoper qui travaille sur les fichiers va te dire exactement ce qu'il en est des fichiers eux-même.
Je ne sais pas comment travaille le programme de torrent mais si les fichiers sont très fragmentés il en est peut-être responsable. En tenant compte des indications de sortie du programme de Hoper tente un déplacement de certains fichiers pour voir si le problème se règle ou si certaines parties sont dans un état incohérent qui pourrait expliquer la fragmentation.
Hors ligne