Retourner aux forums || Retourner au forum Linux.general
Linux.general : Copie de fichier sur n clé USB
Posté par Ontologia (page perso, ) le 29 novembre 2006Autrement dis je dispose d'une machine sur laquelle j'ai connecté disons 2 cartes USB PCI express disposant chacune de 5 ports USB.
Sur chacun de ces ports, je colle un HUB de 4 ports.
Je peux donc connecter 2x5x4 = 40 clé USB.
Nanti d'un script Udev qui me montera automatiquement celle-ci, je dois copier un fichier de 500 Mo sur ces 40 clé USB.
Le but est de faire en sorte que les 40 clés soient chargés en moins de 5 minutes.
Me viennent plusieurs questions :
Sachant que j'ai un débit théorique de 480 Mbits.s-1 par port USB, soit environ 30 Mo.s-1 en pratique, divisé par 4 (à cause du HUB), je dispose d'environ 6 Mo.s-1
Est-ce que le disque dur va suivre ? Même en Sata-Raid striping ?
Vais-je avoir des ralentissements, les bus vont-ils suivre ?
Merci
> Lire le message (9 commentaires, moyenne: 1,8).
theorie...
si toutefois tu lances une fois le fichier source pour le copier sur N support,
tu n'aura pas de probleme de debit.
si tu lances les copies l'une apres l'autre alors tu va ouvrir 40fois le fichiers sources, et donc en effet peut-etre avoir des baisses de debits...
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
-
[^]Re: theorie...
Posté par NeoX () le 29/11/2006 à 12:38. (lien). Évalué à 1.enfin un calcul rapide sur ta demande impose
500Mo à deposer en 5 minutes => 100Mo/minutes => 800Mbp/minutes => 13,3Mbps
ce serait le debit de lecture ideal pour tenir tes objectifs
apres il y a le debit en ecriture sur les clefs usb, qui devront suivre, sinon les objectifs ne seront pas atteints.--
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
ramdisk
Perso, je ferais un RAMDISK ( http://www.linuxfocus.org/Francais/November1999/article124.h(...) )
Ainsi plus de problème de débit de disk dur :-) peut-être juste acheter de la ram :)
http://linuxfr.org/board <-- des moules, du sang, de la violence
-
[^]Re: ramdisk
Posté par Sébastien Koechlin () le 29/11/2006 à 14:02. (lien). Évalué à 3.Si la machine dispose de suffisement de RAM et ne fait pas trop de choses par ailleurs, le cache disque de Linux fera exactement la même chose sans qu'il soit nécessaire de manipuler quoi que ce soit.
-
[^]Re: ramdisk
Posté par Putifuto () le 29/11/2006 à 14:47. (lien). Évalué à 2.L'avantage du ramdisk, c'est que quelques soit l'état de swap de la machine, tu es certain de qu'il va chercher directement en mémoire.
deplus, ton cache peut être détruit, si l'OS estime qu'il n'est plus necessaire, et paf, au prochain accès, l'OS va rechercher 500 méga sur le disque dur.
Deplus, si tu remonte le ramdisk en readyonly, l'OS peut aussi optimiser l'accès à des processus concurents.
Enfin, un ramdisk, c'est simple à faire.--
http://linuxfr.org/board <-- des moules, du sang, de la violence
-
udev
et bien justement, fais un script udev qui lancera un copie de fichier à chaque connexion.
Ensuite ça suivra sans problème si tu as de la ram de libre : pour cacher le contenu de la source, mais aussi avoir un de cache en écriture pour les clefs.
Questions:
1. Quel est le débit en écriture des clés ? Ce sera sans doute cela le plus bloquant.
2. Ce n'est sans doute pas une solution de multiplier les hubs... Y a-t-il une raison par rapport à simplement faire 4 passes de 10 clés ? Tu ne vas pas accélérer la copie en augmentant le nombre de clés connectées simultanément, tu ne vas qu'engorger le bus.
3. Une règle RUN dans ta règle udev lançant la copie peut améliorer le temps entre l'insertion de la clé et le moment où les fichiers sont copiés. Tu peux même gérer dans le script appelé le démontage de la clé et une notification de démontage, pour insérer la clé suivante.
Admettons que tu n'utilises pas les hubs. Si les clés tiennent les débits usb que tu attends sur chaque port de la carte (30 Mo/s), il te faut 16.6s pour copier ton fichier. Bon, je ne sais pas si c'est possible, je ne connais pas les débits des clés actuelles... Bref. Le temps de connecter tes 10 clés, la copie est presque finie, et tu pourras les déconnecter pour mettre les 10 suivantes.
Après, l'avantage de ta solution, c'est que tu es moins demandeur au niveau des performances en débit de tes clés, mais tu vas forcément plus engorger le bus usb...
-
[^]Re: Questions:
Posté par KiKouN (Jabber id, ) le 29/11/2006 à 18:07. (lien). Évalué à 2.Après, l'avantage de ta solution, c'est que tu es moins demandeur au niveau des performances en débit de tes clés, mais tu vas forcément plus engorger le bus usb...
Oui, mais il demande beaucoup plus de bande passante aux ports usb. Il ne faut pas aussi oublier que l'usb est essentiellement géré par logiciel. 40 clés = environ 40 fois plus de consommation cpu sans compter la gestion de la concurrence sur le port usb qui rajoute encore de la consommation cpu. Cela peut vite faire boule de neige est consommer à plein temps le cpu (En même temps, je ne connais pas exactement la gestion de l'usb sous linux et sur d'autre OS d'ailleurs).
Personnellement, j'utiliserai 3 hub de 4 ou 8 ports.
1 Je branche mes clé sur le premier hub et je le branche sur le pc
2 avec udev, la copie se lance automatiquement
3 Pendant ce temps, je branche des autres clés sur le deuxieme et je le branche
4 idem à 2
5 Je branche des clés sur le troisieme hub
6 Lorsque que les clés du premier hub sont pleine, je remplace le hub 1 par le hub 2
7 je débranche les clés sur le hub 1 et en branche de nouvelle
8 etc....
Sinon, je te conseille vivement d'utiliser rsync ou unison à la place de cp. Cela te permettera de ne pas tout recopie sur un clé si tu fais une mise à jour ou si la copie echoue.--
KiKouN, Bucheron-Geek
Approche débit / bande passante
Il faut avoir une approche débit pour ne pas se poser trop de questions.
En fait, ce que tu cherches, c'est copier 40 fois 500 Mo en 5 minutes,
c'est à dire 20 Go en 5 minutes, soit 66 Mo/s en sortie vers le pool
de clés USB.
C'est totalement jouable avec du PCI express (2.5 Gbps sur du x1, compter
moins de 2 Gbps utiles, ce qui correspond justement au débit max d'une
carte 4 ports USB2), mais il va falloir expérimenter sur la répartition des
clés par nombre de ports et de cartes. Pour les clés, ça te fait 1.6 Mo/s en
écriture par clé, ce qui semble tout à fait raisonnable, même pour des clés
de piètre qualité.
Ensuite, les disques : c'est tout à fait envisageable de tenir 66 Mo/s sur du
RAID0 avec deux disques récents. Même sur un seul disque, avec les
données au début, ça peut se faire mais c'est juste juste. Par contre, on
se rend facilement compte que c'est bel et bien le disque qui risque d'être
le facteur limitant. Donc deux propositions :
- avoir suffisamment de RAM dans la machine pour que le fichier tienne en
cache ou en RAMDISK. Avantage: on néglige les limites en lecture, et on
plafonne aux 6 Mo/s du hub USB, ce qui, en admettant que les clés les
supportent, ramène le temps de copie à moins de 1mn30.
- réduire le nombre de clés simultanées pour atteindre les limites du disque
avec moins de logistique et connectique à gérer.
La première proposition est la plus intéressante, car 500 Mo de RAM ne
coûtent rien, et la solution devient scalable vu qu'elle est limitée par le
nombre de clés par hub USB. Il te suffit alors d'ajouter des cartes USB
pour aller plus vite, et mettre moins de clés par hub, ou augmenter le
nombre de clés traitées simultanément.
Très honnêtement, je craindrais plus pour la stabilité du système (très forte
contention dans les drivers USB et SCSI, blocage de tous les accès à
chaque branchement d'une clé, etc...) que pour la capacité des bus à
véhiculer de telles quantités de données. D'où l'intérêt peut-être de
réduire un peu le nombre de clés pour les faire écrire plus vite et les
changer plus rapidement.
Par exemple, si chaque clé est capable d'écrire à 12 Mo/s (à tester), alors
tu peux n'en mettre que 20 et les remplir en 45 secondes, c'est à dire que
tu remplaces une clé toutes les 2 secondes.
Bon courage en tout cas :-)
Willy
Revenir en haut de page || Retourner aux forums || Retourner au forum Linux.general


Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.