From a5d9655d45c44db5d8c6ed9e4f32b3054b112030 Mon Sep 17 00:00:00 2001 From: iliya <iliya.saroukhanian@etu.hesge.ch> Date: Wed, 3 Apr 2024 17:03:57 +0200 Subject: [PATCH] feat: these labs ain't getting shorter ffs --- content/04_qemu_advanced.md | 265 ++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) diff --git a/content/04_qemu_advanced.md b/content/04_qemu_advanced.md index e6536e0..930cc79 100644 --- a/content/04_qemu_advanced.md +++ b/content/04_qemu_advanced.md @@ -98,3 +98,268 @@ root::0:0:root:/root:/bin/bash fabricebellard::1000:1000:Fabrice Bellard,,,:/home/fabricebellard:/bin/bash linustorvalds::1001:1001:Linus Torvalds,,,:/home/linustorvalds:/bin/bash ``` + +## Snapshots + +### Démarrez deux VMs à partir d'une seule et même image disque. Que remarquez-vous ? Quel est la raison de ce comportement ? + +Il n'est pas possible d'exécuter deux ou plus VMs à partir d'une seule et même +image disque, car le processus initial (la 1ère VM créée) doit avoir un accès +"atomique" au disque, raison pour laquelle le message d'erreur nous dit que le nouveau +processus n'a pu obtenir le verrou afin d'obtenir un accès en écriture. + +```bash +qemu-system-x86_64: disk_base.qcow: Failed to get "write" lock +Is another process using the image [disk_base.qcow]? +``` + +### Schéma des snapshots + +#### Étape 1 + +```bash +qemu-img create -F qcow2 -b disk_base.qcow -f qcow2 snap1.qcow +``` + +#### Étape 2 + +Création du fichier `fileA` avec le script `createfile` en exécutant la VM à +partir de `snap1`. + +```bash +vm_run -d snap1 +``` + +Dans la VM : + +```bash +./createfile.sh fileA +``` + +#### Étape 3 + +```bash +qemu-img create -F qcow2 -b snap1.qcow -f qcow2 snap2.qcow +``` + +#### Étape 4 + +```bash +qemu-img create -F qcow2 -b snap2.qcow -f qcow2 snap3.qcow +``` + +#### Étape 5 + +Création du fichier `fileB` avec le script `createfile` en exécutant la VM à +partir de `snap3`. + +```bash +vm_run -d snap3 +``` + +Dans la VM : + +```bash +./createfile.sh fileB +``` + +#### Étape 6 + +```bash +qemu-img create -F qcow2 -b snap2.qcow -f qcow2 snap4.qcow +``` + +#### Étape 7 + +Création du fichier `fileC` avec le script `createfile` en exécutant la VM à +partir de `snap4`. + +```bash +vm_run -d snap4 +``` + +Dans la VM : + +```bash +./createfile.sh fileC +``` + +### Vous exécutez une VM sur l'image `snap3`. Quel(s) fichier(s) seront présent(s) ? + +Sur cette image, les fichier `fileA` et `fileB` sont présents. + +### Vous exécutez une VM sur l'image `snap4`. Quel(s) fichier(s) seront présent(s) ? + +Sur cette image, les fichier `fileA` et `fileC` sont présents. + +### Chaîne d'images ayant mené à `snap3` + +```bash +qemu-img info --backing-chain snap3 +``` + +```bash +image: snap3.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 132 MiB +cluster_size: 65536 +backing file: snap2.qcow +backing file format: qcow2 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: snap3.qcow + protocol type: file + file length: 132 MiB (138608640 bytes) + disk size: 132 MiB + +image: snap2.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 196 KiB +cluster_size: 65536 +backing file: snap1.qcow +backing file format: qcow2 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: snap2.qcow + protocol type: file + file length: 194 KiB (198656 bytes) + disk size: 196 KiB + +image: snap1.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 123 MiB +cluster_size: 65536 +backing file: disk_base.qcow +backing file format: qcow2 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: snap1.qcow + protocol type: file + file length: 123 MiB (128647168 bytes) + disk size: 123 MiB + +image: disk_base.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 12.4 GiB +cluster_size: 65536 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: disk_base.qcow + protocol type: file + file length: 12.4 GiB (13269532672 bytes) + disk size: 12.4 GiB +``` + +### Chaîne d'images ayant mené à `snap4` + +```bash +qemu-img info --backing-chain snap4 +``` + +```bash +image: snap4.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 123 MiB +cluster_size: 65536 +backing file: snap2.qcow +backing file format: qcow2 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: snap4.qcow + protocol type: file + file length: 123 MiB (129368064 bytes) + disk size: 123 MiB + +image: snap2.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 196 KiB +cluster_size: 65536 +backing file: snap1.qcow +backing file format: qcow2 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: snap2.qcow + protocol type: file + file length: 194 KiB (198656 bytes) + disk size: 196 KiB + +image: snap1.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 123 MiB +cluster_size: 65536 +backing file: disk_base.qcow +backing file format: qcow2 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: snap1.qcow + protocol type: file + file length: 123 MiB (128647168 bytes) + disk size: 123 MiB + +image: disk_base.qcow +file format: qcow2 +virtual size: 100 GiB (107374182400 bytes) +disk size: 12.4 GiB +cluster_size: 65536 +Format specific information: + compat: 1.1 + compression type: zlib + lazy refcounts: false + refcount bits: 16 + corrupt: false + extended l2: false +Child node '/file': + filename: disk_base.qcow + protocol type: file + file length: 12.4 GiB (13269532672 bytes) + disk size: 12.4 GiB +``` -- GitLab