Seiche: créer des instantanés et restaurer des données

Android 15 explique comment prendre un instantané et restaurer un instantané d'un appareil virtuel Cuttlefish. Prendre un instantané Le périphérique Settlefish vous permet d'enregistrer l'état de l'appareil dans une image sur le disque. Vous pouvez ensuite restaurer l'instantané pour afficher un appareil Settlefish sur le l'état enregistré précédemment.

Vous pouvez utiliser des instantanés dans divers workflows automatisés ou manuels. Quand ? d'une procédure qui modifie l'appareil, vous pouvez prendre un instantané de l'appareil pour être sûr de pouvoir le restaurer à un état spécifié. Par exemple, lors de l'exécution d'ensembles de tests qui modifient l'état de l'appareil et peut potentiellement causer des problèmes ou des instabilités dans les tests suivants, vous pouvez prendre un instantané afin de restaurer l'état enregistré de l'appareil après un test, ce qui garantit que les tests ultérieurs s'exécutent correctement.

Les instantanés sont un autre exemple de workflow utile lors du test le comportement d'une application. Lors du test du comportement d'une application en fonction d'un ensemble vous pouvez prendre un instantané entre deux actions pendant l'exécution de l'application. pour vous permettre de restaurer cet instantané sans avoir à redémarrer depuis le à partir de zéro. Par exemple, si le lancement d'un jeu prend beaucoup de temps, vous vous pouvez prendre un instantané en accédant au menu principal afin de restaurer l'appareil à cet état, en ignorant le temps de mise en service.

Prendre un instantané d'un appareil seiche

Lorsque vous prenez un instantané d'un appareil, l'appareil Settlefish doit être suspendu pour s’assurer que l’appareil Cuttlefish est dans un état stable. Lorsque l’appareil est suspendu, tous les vCPU et appareils sont arrêtés, et tous les tampons leur état à la VM. L'instantané enregistre ensuite l'état du vCPU, la mémoire et l'état de l'appareil sur le disque dans un dossier de destination spécifié.

VirtiosFS n'est pas compatible et doit être désactivé lors de la prise d'un instantané. À désactiver VirtioFS, transmettre l'argument --enable_virtiofs=false lors de l'exécution de cvd start.

Seul le mode GPU SwiftShader (guest_swiftshader) est compatible avec instantanés. Autres modes graphiques accélérés ne sont pas acceptés.

Les étapes suivantes décrivent le processus de lancement d'un appareil Settlefish et prendre un instantané.

  1. Lancer un appareil tout en désactivant VirtioFS Vous pouvez ensuite utiliser l'appareil.

    cvd start --enable_virtiofs=false --gpu_mode=guest_swiftshader
    
  2. Prenez un instantané en exécutant cvd snapshot_take avec les options suivantes:

    • --force: si un dossier existe au chemin d'accès à l'instantané spécifié, cette garantit que le dossier existant est supprimé et qu'un nouveau dossier est créé au niveau du chemin d'accès à l'instantané contenant l'instantané

    • --auto_suspend: suspend l'appareil avant la prise de l'instantané et réactive l'appareil après la prise de l'instantané.

    • --snapshot_path: chemin d'accès spécifié pour la création d'un dossier avec l'instantané.

    cvd snapshot_take --force --auto_suspend \
    --snapshot_path=PATH
    

Restaurer un appareil de seiche

Lors de la restauration d'un instantané de l'appareil Cuttlefish, l'instance Cuttlefish de pour lequel l'instantané a été pris doit être arrêté. Si l'instance est déjà arrêté, aucune autre action n'est requise et l'instantané peut être restauré.

Pour restaurer un instantané d'un appareil Settlefish, lancez un appareil avec cvd start et inclure le chemin d'accès à l'instantané. Si le numéro d'instance de base de Settlefish appareil sur lequel l'instantané a été pris est différent de l'instance de base le numéro de l'instance Cuttlefish actuelle, transmettez cette instance de base numéro à l'aide de l'indicateur --base_instance_num.

cvd start --snapshot_path=PATH \
--base_instance_num=ID

Suspendre un appareil seiche

Vous pouvez suspendre un appareil Cuttlefish sans prendre d'instantané (aucun espace disque sert à enregistrer l'état). Pour suspendre un appareil Cuttlefish, exécutez la commande suivante:

cvd suspend

Réactiver un appareil seiche

Pour réactiver un appareil Cuttlefish suspendu, exécutez la commande suivante:

cvd resume

Valider la fonctionnalité Instantané/Restaurer

La fonctionnalité Instantané/Restauration peut être validée en exécutant le test suivant:

atest SnapshotTest