Transfert de données

From CC Doc
Jump to: navigation, search
This page is a translated version of the page Transferring data and the translation is 100% complete.

Other languages:
English • ‎français

Entre un ordinateur personnel et les ressources de Calcul Canada

Pour télécharger ou téléverser des fichiers entre votre ordinateur et les ressources de Calcul Canada, vous devez utiliser un logiciel offrant une fonctionnalité de transfert sécuritaire.

  • Dans un environnement de lignes de commandes sous Linux ou Mac OS X, utilisez les commandes scp et sftp.
  • Sous Windows, MobaXterm offre des fonctions de transfert de fichiers et une interface lignes de commandes via SSH; un autre programme gratuit pour le transfert de données est WinSCP.

Les commandes pscp et psftp de PuTTY fonctionnent sensiblement comme les commandes sous Linux et Mac.

S'il faut plus d'une minute pour transférer des fichiers entre votre ordinateur et les serveurs de Calcul Canada, nous vous suggérons d'installer GlobusGlobus is a file transfer service [https://www.globus.org/] Personal Connect et d'en faire l'essai; consultez la section Ordinateurs personnels. Le transfert avec GlobusGlobus is a file transfer service [https://www.globus.org/] peut être configuré et fonctionner en arrière-plan, sans intervention.

Entre les ressources de Calcul Canada

Globus est l'outil privilégié et devrait être utilisé autant que possible.

D'autres outils de transfert connus peuvent être utilisés pour des transferts entre ressources de Calcul Canada et d'un autre ordinateur et les ressources de Calcul Canada, soit

À partir du web

Pour transférer des données à partir d'un site Web, utilisez wget ou curl. Voyez une comparaison de ces outils sur la page Unix & Linux Stack Exchange.

Synchroniser les données

La synchronisation de données a pour but de faire correspondre le contenu de deux sources de données situées à différents endroits. Il y a plusieurs façons de procéder; les plus courantes sont décrites ici.

Transfert avec GlobusGlobus is a file transfer service [https://www.globus.org/]

GlobusGlobus is a file transfer service [https://www.globus.org/] est un outil performant et fiable.

Lors d'un transfert avec GlobusGlobus is a file transfer service [https://www.globus.org/], les données provenant de la source écrasent habituellement les données dans la destination; toutes les données de la source sont donc transférées. Dans certains cas, les fichiers existent déjà à la destination; s'ils sont identiques à ceux de la source, il n'est pas nécessaire de les transférer. Sous Transfer Settings, le paramètre sync détermine comment GlobusGlobus is a file transfer service [https://www.globus.org/] choisit les fichiers à transférer.

Globus Transfer Sync Options.png

Les options de sélection des fichiers sont :

checksum is different examine les sommes de contrôle (checksum) pour détecter un changement ou une erreur de contenu dans des fichiers de même taille. Cette option ralentit considérablement le transfert, mais offre la plus grande précision.
file doesn't exist on destination transfère uniquement les fichiers créés depuis la dernière synchronisation. Cette option est utile si vos fichiers sont créés par incréments.
file size is different transfère les fichiers dont la taille a été modifiée, assumant que le contenu aussi a été modifié. Cette option permet un test rapide.
modification time is newer transfère uniquement les fichiers dont l'estampille temporelle (timestamp) de la source est postérieure à celle de la destination. Avec cette option, cochez preserve source file modification times.

Pour plus d'information, consultez la page Globus.


rsync

L'utilitaire rsync vérifie la similitude entre deux jeux de données; il nécessite toutefois un temps considérable lorsqu'il y a un grand nombre de fichiers, que les sites sont à grande distance l'un de l'autre, ou qu'ils se trouvent sur des réseaux différents.

rsync compare les dates de modification et la taille des fichiers et fait le transfert uniquement si l'un des paramètres ne concorde pas. Si les dates de modification sont susceptibles de différer, l'option -c analyse les checksums à la source et à la destination et transfère uniquement les fichiers dont les valeurs ne concordent pas.

Certains utilisateurs éprouvent des difficultés avec rsync au transfert de répertoires vers /project. Les indicateurs -p et --perms (ou les indicateurs équivalents --perms et --group) peuvent causer des erreurs dans la désignation du propriétaire du groupe. Puisque les quotas dans /project sont déterminés selon la propriété du groupe, l'erreur Disk quota exceeded peut survenir. Les indicateurs -a et --archive sous-entendent -p et -g. Il est donc préférable d'utiliser GlobusGlobus is a file transfer service [https://www.globus.org/] plutôt que rsync. Si par contre vous devez utiliser rsync, évitez -p et -g.
rsync -rltv ... remplace avantageusement rsync -av ... quand les fichiers sont transférées vers le système de fichiers de /project.

Comparaison des sommes de contrôle (checksums)

Si vous ne pouvez utiliser GlobusGlobus is a file transfer service [https://www.globus.org/] pour synchroniser deux systèmes et si rsync est trop lent, les deux systèmes peuvent être comparés avec un utilitaire checksum. L'exemple suivant utilise sha1sum.

[nom@serveur $] find /home/username/ -type f -print0 | xargs -0 sha1sum | tee checksum-result.log

Cette commande crée dans le répertoire courant un nouveau fichier nommé checksum-result.log contenant toutes les sommes de contrôle des fichiers situés dans /home/username/; les sommes sont affichées pendant que le processus se déroule. Lorsqu'il y a un grand nombre de fichiers ou dans le cas de fichiers de très grande taille, rsync peut travailler en arrière-plan en mode screen, tmux ou tout autre moyen lui permettant d'opérer malgré un bris de la connexion SSH.

Une fois l'opération terminée, l'utilitaire diff trouvera les fichiers qui ne concordent pas.

[nom@serveur $] diff checksum-result-silo.log checksum-dtn.log

Il est possible que la commande find emprunte un ordre différent, détectant ainsi de fausses différences; pour contrer ceci, lancez la commande sort sur les deux fichiers avant de lancer diff, comme suit :

 
 [nom@serveur $] sort -k2 checksum-result-silo.log -o checksum-result-silo.log
 [nom@serveur $] sort -k2 checksum-dtn.log -o checksum-dtn.log
 


SFTP

Pour transférer des fichiers, SFTP (pour Secure File Transfer Protocol) utilise le protocole SSH qui chiffre les données transférées.

Dans l'exemple suivant, l'utilisateur USERNAME transfère des fichiers à distance vers ADDRESS.

[name@server]$ sftp USERNAME@ADDRESS
The authenticity of host 'ADDRESS (###.###.###.##)' can't be established.
RSA key fingerprint is ##:##:##:##:##:##:##:##:##:##:##:##:##:##:##:##.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ADDRESS,###.###.###.##' (RSA) to the list of known hosts.
USERNAME@ADDRESS's password:
Connected to ADDRESS.
sftp>

L'authentification avec l'option -i peut se faire en utilisant une clé SSH.

[name@server]$ sftp -i /home/name/.ssh/id_rsa USERNAME@ADDRESS
Connected to ADDRESS.
sftp>

À l'invite sftp>, vous entrez les commandes de transfert; utilisez la commande help pour obtenir la liste des commandes disponibles.

Des applications graphiques sont aussi disponibles :

SCP

SCP est l'abréviation de secure copy. Comme SFTP, SCP utilise le protocole SSH pour chiffrer les données qui sont transférées. Contrairement à Globus ou rsync, SCP ne gère pas la synchronisation. Voyez ces exemples d'utilisation.

L'option -r permet de faire un transfert récursif d'un groupe de répertoires et fichiers. Il n'est pas recommandé d'utiliser scp -r pour transférer des données vers /project parce que le bit setgid est désactivé dans les répertoires qui sont créés, ce qui peut générer des erreurs semblables à Disk quota exceeded lors de la création ultérieure de fichiers.