Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
R
report
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ISC2
virtu
report
Commits
a5d9655d
Verified
Commit
a5d9655d
authored
1 year ago
by
iliya.saroukha
Browse files
Options
Downloads
Patches
Plain Diff
feat: these labs ain't getting shorter ffs
parent
e0f17281
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
content/04_qemu_advanced.md
+265
-0
265 additions, 0 deletions
content/04_qemu_advanced.md
with
265 additions
and
0 deletions
content/04_qemu_advanced.md
+
265
−
0
View file @
a5d9655d
...
@@ -98,3 +98,268 @@ root::0:0:root:/root:/bin/bash
...
@@ -98,3 +98,268 @@ root::0:0:root:/root:/bin/bash
fabricebellard::1000:1000:Fabrice Bellard,,,:/home/fabricebellard:/bin/bash
fabricebellard::1000:1000:Fabrice Bellard,,,:/home/fabricebellard:/bin/bash
linustorvalds::1001:1001:Linus Torvalds,,,:/home/linustorvalds:/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
```
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment