Pas une copie de fichiers
Une migration déplace des fichiers entre deux systèmes qui ont chacun leurs propres règles, limites et charge. La vitesse d'une copie sur un disque local n'en dit pas grand-chose.
Ce qui arrive à chaque fichier
Section intitulée « Ce qui arrive à chaque fichier »Chaque tâche parcourt sa source un fichier à la fois, et chaque fichier suit les mêmes étapes, quelle que soit sa taille :
Préparer la tâche
SMART Migration se connecte à la source et à la destination, lit les dossiers de la source et liste les fichiers que les filtres de la tâche laissent passer. Aucun fichier n'est déplacé avant la fin de cette étape.
Examiner la destination
Pour chaque fichier, il recherche ce que la destination contient déjà et compare — selon sa règle d'ajout et d'écrasement des fichiers — pour décider s'il faut l'ajouter, le remplacer ou le laisser.
Lire le fichier et ses versions
Le fichier est lu depuis la source et, avec l'historique des versions, chaque version également : chaque version est un fichier à part entière à déplacer.
L'écrire dans Nextcloud
Le fichier est écrit dans son dossier dans Nextcloud, avec ses dates et, avec MetaVox, ses métadonnées.
Journaliser le résultat
L'étape est journalisée, les chiffres de l'exécution sont transmis à l'application, et tout problème est enregistré comme problème de fichier.
Les octets ne transitent qu'aux troisième et quatrième étapes. Tout le reste consiste en appels à la source ou à la destination, chacun recevant sa réponse via le réseau — et pour de nombreux petits fichiers, ces appels prennent bien plus de temps que les octets.
Ce qui détermine la vitesse
Section intitulée « Ce qui détermine la vitesse »Un même volume peut prendre une heure ou une journée, selon ce qui le compose et l'endroit où il va :
| Facteur | Effet sur la vitesse |
|---|---|
| Nombre de fichiers | Chaque fichier coûte les mêmes étapes : 100 000 petits fichiers prennent donc bien plus de temps qu'une centaine de gros fichiers de même volume |
| Historique des versions | Chaque version est déplacée comme un fichier à part entière ; une bibliothèque avec de longs historiques de versions contient plusieurs fois le nombre de ses fichiers actuels |
| Préparation | Lecture des dossiers de la source et du contenu de la destination avant le déplacement du premier fichier ; sur une tâche comportant peu de fichiers, elle représente une grande part de son temps |
| Contenu de la destination | Une exécution répétée compare chaque fichier avec la destination, et ce n'est qu'ensuite qu'elle sait que la plupart ne nécessitent rien — sauf s'il s'agit d'une exécution incrémentielle, qui ne lit et ne compare que les fichiers modifiés depuis la dernière exécution réussie |
| Limitation par Microsoft 365 | SharePoint Online et OneDrive limitent le nombre de requêtes qu'ils acceptent, et SMART Migration attend lorsqu'ils demandent de ralentir — affiché comme SPO Rate Limit Delay dans les détails de l'exécution |
| La destination | Un serveur Nextcloud chargé, un stockage lent ou un disque plein ralentit chaque tâche qui y écrit |
| Le réseau | Entre le serveur SMART Migration, la source et Nextcloud — la latence compte davantage que la bande passante lorsqu'il y a beaucoup de fichiers |
| Tâches simultanées | Le serveur SMART Migration exécute au maximum quatre tâches à la fois ; les tâches supplémentaires attendent leur tour |
| L'édition | Enterprise+ migre jusqu'à trois fois plus vite qu'Enterprise |
Pourquoi cela peut être plus lent que prévu
Un débit de quelques gigaoctets par heure peut sembler faible au regard de la vitesse du réseau. Ce n'est pas la vitesse de transfert : c'est le volume déplacé par heure de la durée totale d'une tâche, toutes les étapes ci-dessus comprises. Une première exécution sur une grande bibliothèque, de nombreux petits fichiers ou un tenant limité le font tous baisser — et aucun d'eux ne signifie qu'il y a un problème.
Le monde réel : les interruptions sont normales
Section intitulée « Le monde réel : les interruptions sont normales »Les chiffres ci-dessus décrivent une migration qui s'exécute sans interruption. Aucune migration ne se déroule ainsi. Au fil de semaines de travail entre un tenant, un serveur de fichiers et un serveur Nextcloud, des incidents surviennent naturellement — non parce que quelque chose est cassé, mais parce que les systèmes réels sont partagés, maintenus et utilisés par des personnes pendant que la migration s'exécute :
| Ce qui se produit | Effet sur la migration | Que faire |
|---|---|---|
| Coupures réseau | Une connexion entre le serveur SMART Migration, la source et Nextcloud s'interrompt : un fichier échoue, ou une exécution entière s'arrête | Vérifiez le résultat de l'exécution et Problèmes de fichiers, puis relancez la tâche |
| Limitation | Microsoft 365 ralentit ou refuse des requêtes lorsque le tenant est chargé — surtout pendant les heures de bureau — et une tâche attend, parfois plusieurs minutes à la fois pendant des heures | Exécutez les plus grosses tâches le soir et le week-end ; consultez SPO Rate Limit Delay dans les détails de l'exécution |
| Redémarrages de serveur | Mises à jour Windows sur le serveur SMART Migration, mises à jour et maintenance de Nextcloud, machine virtuelle redémarrée — les tâches en cours s'arrêtent et l'application affiche Hors ligne | Convenez de fenêtres de maintenance avec l'informatique, et vérifiez les tâches en cours une fois le serveur rétabli |
| Autorisations manquantes | Un site, une bibliothèque, un OneDrive ou un dossier que l'App Registration ou le compte de service ne peut pas lire ; des fichiers dotés de leurs propres autorisations | L'exécution se termine par une erreur, ou les fichiers sont listés dans Problèmes de fichiers ; accordez l'accès et relancez la tâche |
| Fichiers en cours d'utilisation | Les fichiers verrouillés, extraits ou ouverts dans une application ne peuvent pas toujours être lus | Ils sont listés dans Problèmes de fichiers ; relancez la tâche plus tard |
| Identifiants expirés | Un certificat ou un mot de passe qui expire, un mot de passe d'application révoqué : toutes les tâches s'arrêtent jusqu'à son renouvellement | Notez les dates d'expiration avant le début du projet |
| Nextcloud refuse les requêtes | Des échecs de connexion depuis l'adresse du serveur SMART Migration amènent Nextcloud à ralentir chaque requête provenant de celui-ci, puis à les refuser avec 429 Too Many Requests : toutes les tâches s'arrêtent | Corrigez le mot de passe et ajoutez l'adresse du serveur à la liste d'autorisation anti-force brute de Nextcloud ; voir « Dimensionner les serveurs » ci-dessous |
| La destination se remplit | Un disque plein ou un quota atteint arrête les écritures ; l'analyse antivirus et les fenêtres de sauvegarde les ralentissent | Vérifiez l'espace libre et les quotas avant chaque vague |
| Les utilisateurs continuent de travailler | Des fichiers changent dans la source pendant leur migration | Prévoyez une exécution de rattrapage finale avant la bascule |
| Décisions et corrections | Les demandes d'autorisation, les réponses des propriétaires et les validations prennent du temps aux personnes — souvent plusieurs jours | Intégrez-les dans les vagues, ne les planifiez pas à côté |
La plupart des interruptions coûtent peu en elles-mêmes, et la règle par défaut pour les fichiers existants les rend sans risque : relancez la tâche et Ajouter les nouveaux, écraser les existants si plus récents laisse intacts les fichiers déjà déplacés et copie le reste. Ce qu'elles coûtent, c'est du temps calendaire — les heures entre le moment où une tâche s'est arrêtée et celui où quelqu'un l'a remarqué, a corrigé la cause et l'a relancée.
Planifiez pour le monde réel, pas pour le monde idéal
La prévision mesure le temps pendant lequel les tâches se sont exécutées. Les interruptions rencontrées au sein de ces exécutions — attentes dues à la limitation, fichiers en échec — y sont déjà incluses ; le temps perdu pendant que rien ne s'exécutait ne l'est pas. Considérez-la comme le meilleur scénario pour un travail sans interruption, et planifiez le calendrier avec une marge en plus. Une vague pilote menée sur des jours ouvrés ordinaires, avec ses interruptions, montre l'ampleur de cette marge dans votre environnement.
Comment le Tableau de bord prévoit le temps restant
Section intitulée « Comment le Tableau de bord prévoit le temps restant »Sous les barres de Progression de la migration, le Tableau de bord affiche trois lignes calculées à partir des chiffres des tâches elles-mêmes. Placez le pointeur dessus pour afficher une carte qui explique chacune d'elles, avec les chiffres sur lesquels elle repose.
Temps restant
Les fichiers restants, multipliés par le temps moyen par fichier, répartis entre les tâches exécutées simultanément.
Terminé vers
Le moment où les fichiers restants seront déplacés au rythme qu'atteignent actuellement les tâches en cours.
Débit
Le volume déplacé par heure du temps d'une tâche, en moyenne et actuellement.
- Le temps par fichier provient du journal de session. Pour chaque migration, la durée entre le début de la tâche dans le journal et sa dernière ligne de journal est divisée par le nombre de fichiers qu'elle a déplacés. Le temps passé à la préparation, avant le déplacement du premier fichier, est compris dans cet intervalle et se trouve donc réparti sur les fichiers. Les migrations terminées comptent avec leur début et leur fin ; celles en cours avec ce qu'elles ont journalisé jusqu'ici. Toutes ensemble donnent une moyenne unique.
- Le temps restant correspond aux fichiers encore à déplacer, multipliés par cette moyenne, divisés par le nombre de migrations en cours — au moins une. Lorsque rien ne s'exécute, c'est le temps que prendrait une tâche à la fois, et la ligne l'indique :
at the past pace. Il s'agit de temps de travail : les heures pendant lesquelles aucune tâche ne s'exécute s'y ajoutent. - Terminé vers est une estimation à partir de maintenant : le nombre de fichiers par heure de chaque tâche en cours depuis son démarrage, additionnés, et les fichiers restants à ce rythme. Elle réagit immédiatement à une source lente, à une destination chargée ou à une limitation, et varie donc davantage que le temps restant. Lorsque rien ne s'exécute, il n'y a pas d'estimation.
- Débit est le volume déplacé par heure du temps d'une tâche, en Mo par heure : en moyenne sur les migrations terminées et en cours, et actuellement, toutes les tâches en cours confondues. Il inclut chaque étape, pas seulement les octets. Lorsque rien ne s'exécute, seule la moyenne est affichée, marquée
past migrations.
La prévision apprend. Avec seulement quelques migrations terminées, elle est approximative ; elle se stabilise à mesure que d'autres tâches se terminent, et le choix sous Mesurer depuis détermine à partir de quelles exécutions terminées elle apprend.
Tâches sans exécution Analyse
Section intitulée « Tâches sans exécution Analyse »Les barres mesurent chaque tâche par rapport à ce qu'a compté sa dernière exécution Analyse. Une tâche qui n'en a pas ne peut pas être mesurée précisément : le Tableau de bord la compte avec ce qu'a déplacé sa dernière exécution Migration terminée, ou sinon comme une tâche moyenne, de sorte que le temps restant la couvre aussi — mais seulement dans la mesure où cette estimation correspond à la tâche. Exécutez d'abord les tâches en Analyse pour obtenir des chiffres exacts. Progression des jobs sans exécution Analyse explique comment l'estimation est établie et dans quelle mesure elle peut s'écarter de la réalité.
Accélérer la migration
Section intitulée « Accélérer la migration »- Laissez de côté ce que personne n'utilise avec
From DateetSource File Type, et limitez les versions avecVersion History Scope. - Maintenez quatre tâches en cours en permanence : planifiez les plus grosses tâches le soir et le week-end, et attribuez-leur une
Priorityélevée. - Répartissez les plus grandes bibliothèques sur les vagues, plutôt que d'en exécuter quatre côte à côte face à un même tenant limité.
- Divisez une bibliothèque de centaines de milliers ou de millions de fichiers en tâches portant chacune sur un sous-ensemble de ses dossiers : une seule tâche pour l'ensemble est lente et risque de ne jamais se terminer. Voir Sources
- Exécutez des tâches récurrentes avant la bascule, afin que l'exécution finale ne compare et ne copie que ce qui a changé.
- Rendez les exécutions répétées incrémentielles : avec Incrémentiel (uniquement les fichiers modifiés depuis la dernière exécution réussie), une exécution ne lit que les fichiers modifiés depuis la dernière exécution réussie et ne vérifie qu'eux par rapport à Nextcloud — quelques fichiers modifiés au lieu de la bibliothèque entière. Voir Exécutions incrémentielles : uniquement les fichiers modifiés depuis la dernière exécution
- Vérifiez la destination : l'espace libre, et un serveur Nextcloud dimensionné pour la charge, avec suffisamment de workers PHP pour quatre tâches écrivant simultanément. Voir Dimensionner les serveurs pour une grande migration
- Écourtez les interruptions : surveillez le Tableau de bord et les notifications, afin qu'une tâche arrêtée soit repérée en quelques minutes plutôt que le lendemain matin, et convenez de fenêtres de maintenance avec les personnes qui gèrent les serveurs. Voir Notifications lors de l'exécution d'une tâche
Voir aussi
- Estimer le volume et la durée
- Tableau de bord
- Progression des jobs sans exécution Analyse
- Règles d'ajout et d'écrasement des fichiers
- Détails de l'exécution et journal de session
- Problèmes de fichiers
- Dépannage
- Planifier et mener une migration, vague par vague
- Dimensionner les serveurs pour une grande migration