Référence Pour: administrateurs, utilisateurs

Erreurs de migration du stockage

Causes et solutions des codes d'erreur du déplacement des disques d'une machine virtuelle vers un autre datastore, en marche ou à l'arrêt.

error.storage_move.runtime

Texte dans la console
Cet hôte exécute la machine virtuelle sur l’ancien environnement d’exécution, qui ne peut pas déplacer les disques d’une machine virtuelle en cours d’exécution. Mettez-la hors tension pour déplacer ses disques.
Signification pour les clients de l'API
A storage migration of a running VM needs Kyvernon VMM; the host runs the VM on the legacy runtime. Power the VM off to move its disks.
Code
UNIMPLEMENTED, HTTP 501
ArgumentContenu
fieldstorage_move.live.

Cause. Les disques d'une machine virtuelle en cours d'exécution devaient être déplacés vers un autre datastore, mais son hôte exécute la machine sur le runtime hérité. Seul Kyvernon VMM peut copier les disques d'une machine en cours d'exécution et basculer sur les copies.

Solution.

  1. Mettez la machine virtuelle hors tension, puis déplacez ses disques : kyvernon vm power-off <id>, puis kyvernon vm relocate <id> --datastore <datastore>.
  2. Ou déplacez-la d'abord vers un hôte qui exécute Kyvernon VMM.

error.storage_move.internal_snapshots

Texte dans la console
Le disque {disk} contient des instantanés internes, qui ne peuvent pas être déplacés pendant que la machine virtuelle s’exécute. Mettez-la hors tension ou supprimez ces instantanés.
Signification pour les clients de l'API
The active image of the disk holds internal qcow2 snapshots, which a running VM cannot carry to another datastore.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentContenu
diskla clé de périphérique du disque.

Cause. L'image active du disque contient des instantanés qcow2 internes. L'image d'une machine en cours d'exécution est copiée bloc par bloc, et les instantanés internes ne peuvent pas suivre ce chemin. Les images avec instantanés internes proviennent du runtime hérité ou d'un import ; Kyvernon VMM crée des instantanés externes.

Solution.

  1. Mettez la machine virtuelle hors tension, puis déplacez-la : le déplacement d'une machine hors tension copie le fichier avec ses instantanés.
  2. Ou supprimez d'abord ces instantanés.

error.storage_move.nonpersistent

Texte dans la console
Le disque {disk} est indépendant non persistant et ne se déplace que lorsque la machine virtuelle est hors tension.
Signification pour les clients de l'API
An independent non-persistent disk moves only while the VM is powered off.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentContenu
diskla clé de périphérique du disque.

Cause. Le disque est indépendant non persistant : ses modifications sont abandonnées à l'arrêt de la machine, et cette couche d'abandon ne peut pas être déplacée pendant que la machine fonctionne.

Solution.

  1. Mettez la machine virtuelle hors tension, puis déplacez-la : kyvernon vm power-off <id>, puis kyvernon vm relocate <id> --datastore <datastore>.

error.storage_move.consolidate_with_snapshots

Texte dans la console
La chaîne de disques ne peut pas être fusionnée tant que la machine virtuelle a des instantanés. Conservez la chaîne ou supprimez d’abord les instantanés.
Signification pour les clients de l'API
Merging the disk chain (consolidate) would destroy the VM's snapshots.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentContenu
diskla clé de périphérique du disque.

Cause. Le déplacement devait fusionner la chaîne de disques en une seule image (chain: consolidate, ou moveAllDiskBackingsAndConsolidate depuis un client vSphere), mais la machine virtuelle a des instantanés. Fusionner la chaîne les détruirait.

Solution.

  1. Déplacez le disque avec sa chaîne : omettez --chain (la chaîne est conservée) ou utilisez --chain keep.
  2. Ou supprimez d'abord les instantanés, puis fusionnez : kyvernon vm snapshot remove-all <id>.

error.storage_move.convert_with_chain

Texte dans la console
Le format du disque {disk} ne peut pas changer, car il a des instantanés ou une base de clone lié. Conservez le format ou fusionnez la chaîne.
Signification pour les clients de l'API
The provisioning of a disk with a snapshot chain or a linked-clone base cannot change in a move.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentContenu
diskla clé de périphérique du disque.

Cause. Le déplacement devait changer le format d'un disque (dynamique, statique à mise à zéro différée, statique à mise à zéro immédiate) qui a des instantanés ou qui est un clone lié. Seul un disque qui se termine en une seule image peut changer de format.

Solution.

  1. Déplacez le disque dans son format actuel : omettez --provisioning.
  2. Ou fusionnez la chaîne pendant le déplacement (--chain consolidate), ce qui exige une machine sans instantanés.

error.storage_move.has_dependents

Texte dans la console
Le disque {disk} est la base de clones liés ({dependents}). Déplacez-les d’abord, ou rattachez-vous à une base identique sur la cible.
Signification pour les clients de l'API
The image is the base of other VMs' linked clones (dependents).
Code
FAILED_PRECONDITION, HTTP 412
ArgumentContenu
diskla clé de périphérique du disque.
dependentsles machines virtuelles dont les disques utilisent l'image comme base.

Cause. L'image du disque est la base de clones liés d'autres machines virtuelles. La déplacer seule laisserait ces clones sans leur base.

Solution.

  1. Déplacez d'abord les clones liés, avec --chain share-existing, vers le même datastore.
  2. Déplacez ensuite cette machine avec --chain share-existing : elle se rattache à la copie de la base que les clones ont déjà apportée.

error.storage_move.destination_exists

Texte dans la console
{path} existe déjà sur le datastore cible. Choisissez un autre dossier ou supprimez le fichier.
Signification pour les clients de l'API
A file that does not belong to the move is in the way at the target path.
Code
ALREADY_EXISTS, HTTP 409
ArgumentContenu
pathle chemin sous la racine du datastore cible.
datastorele datastore cible.

Cause. Un fichier qui ne fait pas partie du déplacement existe déjà au chemin que le disque aurait sur le datastore cible.

Solution.

  1. Examinez le fichier dans le navigateur de datastore : kyvernon datastore ls <datastore> <folder>.
  2. Supprimez-le si rien ne l'utilise, ou donnez au disque un autre dossier : --disk KEY=DATASTORE,path=<folder>/<file>.qcow2.

error.storage_move.move_type

Texte dans la console
Ce mode de déplacement des chaînes d’instantanés n’est pas proposé.
Signification pour les clients de l'API
The chain value or diskMoveType is not offered for a relocation.
Code
INVALID_ARGUMENT, HTTP 400
ArgumentContenu
fieldle champ de la requête qui contient la valeur.

Cause. Le mode de déplacement de la chaîne d'instantanés n'est pas proposé. moveChildMostDiskBacking de vSphere laisserait les parents sur un autre datastore, et createNewChildDiskBacking est une option de clonage, pas de déplacement.

Solution.

  1. Utilisez keep, share-existing ou consolidate (vSphere : moveAllDiskBackingsAndDisallowSharing, moveAllDiskBackingsAndAllowSharing, moveAllDiskBackingsAndConsolidate).

error.storage_move.no_convergence

Texte dans la console
La copie n’a pas pu suivre les écritures disque de la machine virtuelle. Rien n’a changé. Augmentez ou supprimez la limite de débit, ou déplacez-la quand elle écrit moins.
Signification pour les clients de l'API
The copy of a running VM's disk could not catch up with the guest's writes; the VM stays on its old disks.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentContenu
writeRatele débit d'écriture de l'invité en octets par seconde.
copyRatele débit de copie en octets par seconde.

Cause. La copie du disque d'une machine en cours d'exécution n'a pas pu rattraper les écritures de l'invité, même avec ces écritures ralenties au minimum. Rien n'a changé : la machine fonctionne sur ses anciens disques. Une limite de débit de copie inférieure au débit d'écriture de la machine mène à cette erreur.

Solution.

  1. Dans la console, ouvrez le résumé de la machine virtuelle, sélectionnez Modifier la limite sur la carte Migration du stockage et saisissez une limite plus élevée ou 0 pour aucune limite. Pour un nouveau déplacement, modifiez Limiter le débit de copie (Mio/s) sous Options avancées dans l'assistant.
  2. Avec la CLI, relevez ou supprimez la limite de débit de copie : --max-bandwidth sur kyvernon vm relocate, ou kyvernon vm relocation-limit <id> --max-bandwidth 0 pendant un déplacement.
  3. Déplacez la machine quand elle écrit moins, ou mettez-la hors tension et déplacez-la alors.

error.storage_move.switchover_timeout

Texte dans la console
Le basculement vers les nouveaux disques a pris trop de temps et a été annulé. La machine virtuelle continue sur ses anciens disques.
Signification pour les clients de l'API
The switch to the new disks did not finish within switchover_max_ms; the VM continues on its old disks.
Code
DEADLINE_EXCEEDED, HTTP 504

Cause. La bascule finale vers les nouveaux disques, pendant laquelle les requêtes de disque de l'invité attendent, ne s'est pas terminée dans le délai autorisé (2 secondes par défaut). Elle a été annulée : la machine continue sur ses anciens disques et rien n'a changé.

Solution.

  1. Relancez le déplacement ; une rafale d'écritures pendant la bascule en est la raison habituelle.
  2. Si cela se reproduit, vérifiez la latence du datastore cible, ou déplacez la machine quand elle écrit moins.

error.storage_move.target_io

Texte dans la console
Le datastore cible a échoué ou ne répondait plus pendant la copie. La machine virtuelle reste sur ses anciens disques.
Signification pour les clients de l'API
The target datastore failed or stopped answering during the copy; the VM stays on its old disks.
Code
UNAVAILABLE, HTTP 503
ArgumentContenu
datastorele datastore cible, lorsqu'il est connu.

Cause. Le datastore cible est tombé en panne, est plein ou a cessé de répondre pendant la copie des disques. Les requêtes de disque de la machine n'attendent jamais la cible : elle a donc continué à fonctionner sur ses anciens disques ; les copies ont été supprimées.

Solution.

  1. Vérifiez le datastore cible : son espace libre (kyvernon datastore refresh <datastore>) et, pour NFS ou iSCSI, le serveur de stockage et le chemin réseau.
  2. Relancez le déplacement quand le datastore répond.

error.storage_move.vm_stopped

Texte dans la console
La machine virtuelle s’est arrêtée pendant le déplacement de ses disques. Rien n’a changé. Déplacez-la à nouveau hors tension.
Signification pour les clients de l'API
The VM stopped during a move of its running disks; nothing changed. Move it again while it is powered off.
Code
FAILED_PRECONDITION, HTTP 412

Cause. La machine virtuelle a été mise hors tension, arrêtée par son invité ou a planté pendant la copie des disques de la machine en cours d'exécution. Le déplacement a été annulé ; rien n'a changé.

Solution.

  1. Déplacez la machine maintenant, alors qu'elle est hors tension : kyvernon vm relocate <id> --datastore <datastore>.
  2. Ou mettez-la sous tension et relancez le déplacement.

error.storage_move.interrupted

Texte dans la console
Le déplacement a été interrompu sur l’hôte. Il est terminé ou annulé automatiquement lorsque l’hôte est de retour.
Signification pour les clients de l'API
The move was lost with the VMM or the host's state; it is undone or finished from the files.
Code
UNAVAILABLE, HTTP 503

Cause. L'hôte a perdu le déplacement : son agent a redémarré sans ses enregistrements, ou le processus hyperviseur de la machine s'est terminé pendant la copie. Avant la bascule vers les nouveaux disques, le déplacement est annulé ; après la bascule, il est terminé. Le contrôleur le fait de lui-même dès que l'hôte répond.

Solution.

  1. Attendez que l'hôte soit de nouveau connecté. Le déplacement est alors terminé ou annulé ; kyvernon vm relocation <id> l'indique comme terminé après une interruption.
  2. Si ni les anciens ni les nouveaux fichiers de disque ne sont complets, le déplacement reste ouvert et demande un administrateur. Contactez le support avec l'identifiant de la machine virtuelle.

error.storage_move.source_io

Texte dans la console
Un fichier du disque n’a pas pu être lu sur le datastore source ({path}). Rien n’a changé. Vérifiez le datastore source et relancez le déplacement.
Signification pour les clients de l'API
A file of the disk could not be read on the source datastore during the copy; nothing changed.
Code
UNAVAILABLE, HTTP 503
ArgumentContenu
pathle fichier qui n'a pas pu être lu.

Cause. Un fichier du disque n'a pas pu être lu sur le datastore source pendant sa copie : le stockage a signalé une erreur de lecture ou a cessé de répondre. Le déplacement s'est arrêté avant sa bascule ; la machine virtuelle est inchangée et les copies ont été supprimées.

Solution.

  1. Vérifiez le datastore source : l'état de ses disques et, pour NFS ou iSCSI, le serveur de stockage et le chemin réseau. L'argument path nomme le fichier.
  2. Relancez le déplacement quand le datastore se lit normalement. Si le fichier lui-même est endommagé, restaurez d'abord le disque depuis une sauvegarde.

error.storage_move.not_switched

Texte dans la console
Le déplacement n’a pas encore basculé vers les nouveaux disques ; les anciens fichiers ne peuvent pas encore être supprimés.
Signification pour les clients de l'API
The move has not reached its switch (and its verification) yet, so its old files cannot be deleted.
Code
FAILED_PRECONDITION, HTTP 412

Cause. L'hôte a reçu la demande de supprimer les anciens fichiers d'un déplacement qui n'a pas encore basculé vers les nouveaux disques, ou dont la vérification n'est pas terminée. Le contrôleur ne le demande qu'après la bascule : cela indique une requête interrompue ou répétée.

Solution.

  1. Suivez le déplacement : kyvernon vm relocation <id>. Les anciens fichiers sont supprimés par le déplacement lui-même une fois la bascule et la vérification terminées.

error.storage_move.unknown_job

Texte dans la console
L’hôte ne connaît pas cette migration du stockage. Elle est terminée ou annulée d’après les fichiers lorsque le contrôleur vérifie.
Signification pour les clients de l'API
The host does not know the storage migration job (it ended and was forgotten, or the host lost its records).
Code
NOT_FOUND, HTTP 404

Cause. L'hôte ne connaît pas la tâche de migration du stockage sur laquelle le contrôleur l'interroge. Elle s'est terminée et a été oubliée, ou l'hôte a perdu ses enregistrements (son répertoire d'état a été remplacé).

Solution.

  1. Le plus souvent, rien : le contrôleur décide d'après les fichiers quels disques sont actuels, puis termine ou annule le déplacement.
  2. Si kyvernon vm relocation <id> affiche encore le déplacement après quelques minutes, vérifiez que l'hôte est connecté : kyvernon inventory host <host>.

error.storage_move.rolled_back

Texte dans la console
La machine virtuelle a été ramenée sur ses anciens disques après une vérification en échec. Les nouveaux disques ont été supprimés ; les écritures depuis la bascule sont perdues.
Signification pour les clients de l'API
The administrator returned the VM to its old disks after a failed verification; the new disks were deleted and the writes since the switch are lost.
Code
FAILED_PRECONDITION, HTTP 412

Cause. Après l'échec de la vérification d'une migration du stockage, un administrateur a choisi de ramener la machine virtuelle sur ses anciens disques (returnToSource). La machine a été mise hors tension, ses enregistrements désignent à nouveau les anciens fichiers et les nouveaux disques ont été supprimés. Tout ce que l'invité a écrit depuis la bascule est perdu.

Solution.

  1. Remettez la machine virtuelle sous tension : kyvernon vm power-on <id>.
  2. Vérifiez les deux datastores avant de déplacer à nouveau la machine : l'échec de la vérification indique un défaut du stockage.

error.storage_move.cancelled

Texte dans la console
La migration du stockage a été annulée avant la bascule. Rien n’a changé.
Signification pour les clients de l'API
The storage migration was cancelled before its switch; nothing changed.
Code
CANCELLED, HTTP 499

Cause. La migration du stockage a été annulée avant sa bascule vers les nouveaux disques. Rien n'a changé : la machine virtuelle utilise ses anciens disques et les copies ont été supprimées.

Solution.

  1. Relancez le déplacement quand vous le souhaitez : kyvernon vm relocate <id> --datastore <datastore>.

error.storage_move.verify_failed

Texte dans la console
Les nouveaux disques n’ont pas pu être vérifiés. Les anciens fichiers sont conservés jusqu’à ce que vous choisissiez de garder les nouveaux disques ou de revenir aux anciens.
Signification pour les clients de l'API
A copied file or block does not match its source. The old files are kept; an administrator keeps the new disks or returns to the old ones.
Code
INTERNAL, HTTP 500

Cause. Après la bascule vers les nouveaux disques, la comparaison avec les anciens fichiers a trouvé un bloc différent qui n'a pas pu être réparé à partir de l'ancien fichier, ou la somme de contrôle d'un fichier copié ne correspondait pas. Cela indique une défaillance du stockage. Les anciens fichiers sont conservés, l'alarme alarm.vm.storage_move.verify est déclenchée et le déplacement attend une décision.

Solution.

  1. Consultez l'événement de la machine virtuelle pour les compteurs et vérifiez l'état des deux datastores.
  2. Dans la console, ouvrez le résumé de la machine virtuelle. La carte Migration du stockage propose Garder les nouveaux disques, qui conserve les nouveaux disques et supprime les anciens fichiers, et Éteindre et revenir aux anciens disques, qui met la machine hors tension et revient aux anciens disques. Les écritures effectuées depuis la bascule sont perdues si vous revenez en arrière.
  3. Avec la CLI, conservez les nouveaux disques et supprimez les anciens fichiers : kyvernon vm relocation-resolve <id> --action keep-target.
  4. Ou mettez la machine hors tension et revenez aux anciens disques : kyvernon vm relocation-resolve <id> --action return-to-source.

Version 0.1. Dernière modification : 2026-11-14