Rclone est un utilitaire open-source qui permet de synchroniser diverses sources de stockage cloud (Amazon S3, OneDrive, Backblaze B2, Dropbox …) avec une arborescence locale. Il se présente comme le rsync du cloud. Voici un compte-rendu de test rapide avec OneDrive Business.

Installation de rclone

Le logiciel existe dans les dépôts de Debian Stretch en version 1.33. C’est une version que je n’ai pas réussi à utiliser avec OneDrive Business, et je lui ai préféré la version 1.44 qui est compatible avec une plus large variété de stockages cloud sur le marché dont OneDrive Business.

On peut donc télécharger la dernière version en date au format .deb pour Debian 64bits à cette adresse. Un simple  dpkg -i rclone-current-linux-amd64.deb  suffira à installer le paquet.

Configuration avec OneDrive Business

La commande rclone config  permet d’ajouter des sources de données. La mienne est nommée stockage donc le chemin pour rclone sera au format stockage:dossier1/dossier2 . En ce qui me concerne j’ai pu ajouter une source 18 / Microsoft OneDrive \ "onedrive" . La sélection du type de compte personal ou business se fait dans les options avancées. J’ai laissé la taille de bloc maximal à 10 Mo par défaut.

Le raccordement du compte OneDrive avec la config rclone nécessite de s’authentifier via le navigateur internet ouvert sur un port proposé par rclone (utiliser un tunnel SSH si nécessaire sur serveur headless avec ssh user@serveur -L 53682:127.0.0.1:53682).

Commandes de base

La commande rclone ls stockage:  permet de lister tous les fichiers récursivement. On peut remplacer ls par lsd pour se limiter aux dossiers non récursivement. Il y a également d’autres variantes disponibles dans le manuel.

La commande rclone copy dir/ stockage:dir/  permet de copier des fichiers (sauf ceux déjà existants) tandis que la commande rsync sync dir/ srockage:dir/  met à jour même les fichiers existants pour que la cible corresponde à la source.

Les chemins sont compris différemment qu’avec cp ou rsync. Il n’est pas possible de les terminer par « / » selon si on veut l’intérieur du dossier ou le dossier lui-même. Du coup ce sera toujours l’intérieur du dossier qui sera considéré. Je conseille de toujours répéter le nom du dossier à copier sur la cible (il sera créé si besoin) comme ceci : rclone copy dir/ stockage:dir/ .

Quelques performances avec OneDrive

Voici quelques tests rapides de transferts avec un compte OneDrive Business. J’ai pu suivre le transfert composé d’une flopée de connexions HTTPS (port 443) avec un serveur distant utilisant une adresse IP située aux États-Unis.

Deux connexions internet sont testées : une fibre Orange Business 200M/200M (AS3215) et une fibre Cogent Communication 1G/1G de datacenter (AS174).

En pratique, le cloud Microsoft Azure n’arrive pas à mettre ces connexions au taquet, et c’est compréhensible. Mais dans le cas de la connexion Orange Business, les performances sont extrêmement faibles. Probablement à cause d’un accord de peering négocié trop faiblement par Orange avec Azure. Cela n’est pas étonnant, voir les problèmes Orange<->Amazon ou Orange<->Youtube.

Upload (Orange) Download (Orange) Upload (Cogent) Download (Cogent)
Petits fichiers (10 Ko) : ~15 Ko/sec Petits fichiers (10 Ko) : ~60 Ko/sec Petits fichiers (10 Ko) : 26 Ko/sec Petits fichiers (10 Ko) : 127 Ko/sec
Gros fichiers (1 Mo) : ~1 Mo/sec Gros fichiers (1 Mo) : ~2,5 Mo/sec Gros fichiers (1 Mo) : 2,0 Mo/sec Gros fichiers (1 Mo) : 7,1 Mo/sec

Ces chiffres sont étonnamment bas, et j’espère sincèrement que le client OneDrive officiel fait mieux, sans quoi il devrait être difficile de travailler sur un dépôt distant aussi peu performant. A moins que Microsoft mise sur le temps masqué pour étaler les transferts bas débit tout au long de la journée tout en travaillant sur des fichiers locaux ?

Je n’ai pas essayé de tuner le chunk size de rclone par défaut.

Les options rclone --transfers=32 --checkers=16 copy dir/ storage:dir/  proposées sur cette page ont permis d’améliorer les débits de download de petits fichiers mais pas d’upload. De toutes manières il est difficile de tuner ces paramètres dont la valeur idéale change selon la taille des fichiers stockés.

Le lancement de deux transferts parallèles avec le même compte utilisateur ne permet pas de doubler ces débits (ils sont divisés par 2 avec 2 transferts). Par contre, en transférant des fichiers depuis deux comptes OneDrive différents, les débits sont bien doublés en download et en upload (gros fichiers). L’upload (petits fichiers) reste alors très très bas, signe que le protocole pénalise beaucoup les petits fichiers dans son fonctionnement, du moins avec OneDrive Business.

Du point de vue de l’algorithme de synchronisation des fichiers, il apparait que OneDrive n’est pas différentiel sauf pour les fichiers Office. En 2018 je trouve étonnant que ce service cloud ne soit pas plus efficient qu’un transfert FTP. Le cloud Dropbox fait bien mieux à cet égard. Rsync aussi, et depuis de nombreuses années (voir cloud storage basé sur Rsync).

Conclusion

Ces tests de débits viennent conformer mon idée selon laquelle le stockage cloud est catégorisé dans le Tier 4 des media de stockage IT, à coté de la bande magnétique et autres supports low cost. Je n’ai testé qu’un service et il n’est pas exclu que les concurrents soient plus performants.

Le stockage cloud reste cependant pertinent pour un archivage secondaire à faible coût, lorsqu’on n’a pas besoin de débits importants, de latence faible, ou de fiabilité auditable.

En théorie on devrait pouvoir proposer des espaces de travail plus performants avec un simple serveur CIFS-over-VPN, comme par exemple Samba à travers OpenVPN. Et pour la partie clonage et synchronisation de données, les outils Linux comme rsync sont autrement plus puissants que les transferts proposés par OneDrive avec rclone.

Pour finir avec rClone, son efficience dans les transferts dépend probablement du service cloud utilisé et de ses possibilités en matière de copie différentielle en mode blocs à l’image de rsync. Et vous, avez-vous utilisé rclone avec d’autres fournisseurs de cloud ?

Lecture alternative : rclone et Amazon Cloud Drive ou encore rclone et HubiC.