Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
24 janvier 2015

htmlpdflatexmanmd




auth.conf

auth.conf

Fichier d'authentification pour libvirt

Description

   Ce fichier peut être spécifié de plusieurs manières différentes, il est recherché dans cet ordre:

- Le fichier peut être spécifié par la variable d'environnement $LIBVIRT_AUTH_FILE
- le fichier spécifié dans la partie transport dans l'URI (ex: authfile=/some/file)
- le fichier situé dans $XDG_CONFIG_HOME/libvirt/auth.conf
- le fichier /etc/libvirt/auth.conf

   Ce fichier utilise la syntaxe traditionnelle '.ini'. Il y a 2 types de groupes qui peuvent être présent dans la configuration. D'abord il y a un ou plusieurs jeu d'accréditifs, qui fournissent les accréditations d'authentification. Les clés dans le groupe peuvent être:

username Nom de login utilisateur. Pas utile pour libvirtd avec sasl.
authname Nom d'autorisation, utilisé par sasl
password Le mot de passe
realm Le domaine sasl.

Chaque jeu d'accréditifs a un nom, qui fait partie d'un nom du groupe. La syntaxe générale est:
[credentials-$NAME]
credname1=value1
credname2=value2

Par exemple, pour définir 3 jeux d'accréditifs utilisé pour les machines de test, de production et de développement:
[credentials-test]
authname=fred
password=123456

[credentials-prod]
authname=bar
password=letmein

[credentials-dev]
username=joe
password=hello

Le second jeu de groupes fournis un mappage d'accréditifs à des services machine spécifiques. Les noms de groupes incluent le type de service et l'hôte:
[auth-$SERVICE-$HOSTNAME]
credentials=$CREDENTIALS

Par exemple, en suivant l'exemple précédent, on peut lister certaines machines:
[auth-libvirt-test1.example.com]
credentials=test

[auth-libvirt-test2.example.com]
credentials=test

[auth-libvirt-demo3.example.com]
credentials=test

[auth-libvirt-prod1.example.com]
credentials=prod

[auth-esx-dev1.example.com]
credentials=dev

   Les types de service suivant sont reconnus par libvirt:

libvirt Utilisé pour les connexions à un serveur libvirtd, qui est configuré avec SASL
ssh Utilisé pour les connexions à des serveur Phyp sur ssh
esx Utilisé pour les connexions à un serveur ESX ou VirtualCenter
xen Utilisé pour les connexions à un serveur Xen Enterprise en utilisant XenAPI

   Les applications utilisant libvirt sont libre d'utiliser le même fichier de configuration pour stocker d'autres accréditifs. Par exemple, il peut être utilisé pour stocker des accréditifs VNC ou SPICE.
^
30 janvier 2015

htmlpdflatexmanmd




libvirt-pools

libvirt-pools

Définitions des pools de stockage

‹pool type="iscsi"› type peut être dir, fs, netfs, disk, iscsi, scsi, mpath, rbd, sheepdog, gluster, zfs ou logical.

        ‹name›myname‹/name fournis un nom pour le pool, qui doit être unique à l'hôte.
        ‹uuid› 3e3fce45-4f53-4fa7-bb32-11f34168b82b ‹/uuid› Fournis un identifiant pour le pool, qui doit être globalement unique.
        ‹allocation› 10000000 ‹/allocation› Fournis l'allocation du stockage total pour le pool, en octets. N'est pas applicable en créant un pool.
        ‹capacity› 50000000 ‹/capacity› Fournis la capacité de stockage totale pour le pool, en octets. N'est pas applicable en créant un pool.
        ‹available› 40000000 ‹/available› Fournis l'espace disponible pour allouer de nouveaux volumes, en octets. N'est pas applicable en créant un pool.
        ‹source› Utilisé pour décrire la source du pool de stockage

                ‹device path="demo-target"/› fournis la sources des pools stockés par des périphériques physiques ( fs, logical, disk, iscsi, zfs). Peut être répété plusieurs fois en fonction du pilote de backend. Contient un seul attribut path qui est le chemin vers le nœud du périphérique block.
                ‹dir path="/my/path"/› Fournis la source pour les pools de type dir.
                ‹adapter type='scsi_host' name='scsi_host1'/› Fournis la source pour les pools de type scsi:

                        name Nom de l'adapter scsi
                        type Spécifie le type d'adapter ( scsi_host ou fc_host ). Si omit et que name est spécifié, scsi_host est utilisé.
                        wwnn
                        wwpn World Wide Node Name et World Wide Port Name sont utilisé par l'adapter fs_host pour identifier de manière unique le périphérique.
                        parent Utilisé avec le type fc_host pour spécifier le périphérique scsi_host parent.
                        managed Attribut optionnel pour instruire le backend scsi de gérer la destruction du vHBA quand le pool est détruit. (yes ou no)
                        ‹parentaddr› Utilisé par le type scsi_host au lieu de l'attribut name pour identifier de manière unique l'hôte scsi:

                                unique_id Nécessite que parentaddr soit utilisé pour déterminer les adapters scsi_host pour l'adresse PCI fournis.
                                ‹address› Adresse PCI pour le périphérique scsi_host à utiliser:

                                        domain Entier 2 octets héxa
                                        bus valeur entre 0 et 0xff
                                        slot valeur entre 0x0 et 0x1f
                                        function Valeur entre 0 et 7.

                        ‹/parentaddr›

                ‹/adapter›
                ‹host› Fournis la source pour les pools stockés sur les stockages distant (netfs, iscsi, rbd, sheepdog, gluster). Utilisé en combinaison avec un élément directory ou device. Contient un attribut name qui est le nom d'hôte ou l'adresse IP du serveur port pour un numéro de port spécifique.
                ‹auth› Si présent, fournis les accréditifs nécessaires pour accéder à la source.

                        type doit être "chap" pour iscsi ou "ceph" pour rbd.
                        username spécifie le nom d'utilisateur pour l'authentification
                        ‹secret› l'attribut type est mandatoire et attache un objet secret qui maintient les accréditifs, uuid contient l'uuid de l'objet secret et usage match la clé spécifiée dans l'objet secret.

                name Spécifie la source pour les pools nommés (logical, rbd, sheepdog, gluster).
                format Fournis des informations sur le format du pool (pour les pools fs, netfs, disk, logical). Contient un simple attribut type dont la valeur est spécifique au backend). Utilisé pour indiquer le type de système de fichier, de réseau, le type de table de partition, ou le type de meta-donnée LVM.
                vendor Fournis des informations sur le vendeur du périphérique de stockage. Contient un attribut name dont la valeur est spécifique au backend.
                product Fournis un nom de produit pour le périphérique de stockage. Contient un attribut name dont la valeur est spécifique au backend.
                ‹target› Utilisé pour décrire le mappage du pool de stockage ans le système de fichier hôte. Il peut contenir 5 éléments:

                        path Fournis l'emplacement auquel le pool sera mappé dans l'espace de nom du système de fichier local.
                        ‹permissions› Actuellement utile uniquement pour les pools dir et fs-based, qui sont mappés comme répertoire dans le système de fichier local. Il fournis des informations sur les permissions à utiliser pour le répertoire final quand le pool est construit.

                                ‹owner› 107 ‹/owner› Spécifie le propriétaire du répertoire final
                                ‹group› 107 ‹/group› Spécifie le groupe propriétaire du répertoire final
                                ‹mode› 0744 ‹/mode› Spécifie les permissions à définir sur le répertoire final
                                ‹label› virt_image_t ‹/label› Contient le label MAC pour selinux.

                        ‹/permission›
                        ‹timestamps› Actuellement utile uniquement pour les pools dir et fs-based, qui sont mappés comme répertoire dans le système de fichier local.

                                ‹atime› 1341933637.273190990 ‹/atime› Date de dernier accès
                                ‹mtime› 1341930622.047245868 ‹/mtime› Date de dernière modification
                                ‹ctime› 1341930622.047245868 ‹/ctime› Date de création

                        ‹/timestamps›
                        ‹encryption type='...'› Spécifie comment le volume est chiffré

                ‹/target›

        ‹/source›

‹/pool›

^
24 janvier 2015

htmlpdflatexmanmd




libvirt.conf

libvirt.conf

Fichier de configuration pour libvirt, permet de définir des alias pour les URI fréquemments utilisées.

Options

uri_aliases = [] Définis les alias, chaque ligne entre les crochets est sous la forme ‹alias›=‹URI›.
uri_default Spécifie l'URI utilisée par défaut

Exemples d'alias

hail=qemu+ssh://root@hail.cloud.example.com/system",
sleet=qemu+ssh://root@sleet.cloud.example.com/system",

format d'URI

Le format d'une URI est:
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]

Transports

name Nom passé à la fonction virConnectOpen. (ex: name=qemu:///system)
command Commande externe (ex: command=/opt/openssh/bin/ssh)
socket Chemin vers un socket unix (ex: socket=/opt/libvirt/run/libvirt/libvirt-sock)
netcat Nom d'une commande netcat, par défaut nc (ex: netcat=/opt/netcat/bin/nc)
keyfile fichier contenant une clé privée à utiliser pour l'authentification (ex: keyfile=/root/.ssh/example_key)
no_verify Désactive la vérification des clé pour SSH et TLS (ex: no_verify=1)
no_tty Empêche ssh de demander un mot de passe s'il ne peut pas se connecter automatiquement. (ex: no_tty=1)
pkipath Chemin vers les certificats X.509 pour le client. (ex: pkipath=/tmp/pki/client)
known_hosts Pour libssh2. Chemin vers un fichier known_hosts pour vérifier la clé de l'hôte.(ex: known_hosts=/root/.ssh/known_hosts)
sshauth pour libssh2. liste de méthodes d'authentification à utiliser. (ex: sshauth=agent,privkey,keyboard-interactive)
^
24 janvier 2015

htmlpdflatexmanmd




libvirtd

libvirtd

Service de gestion libvirt

Description

   libvirtd est le composant serveur du système de gestion de virtualisation libvirt. Ce sevice fonctionne sur les serveur hôte et effectuent des tâche de gestion pour les invités virtualisés. Les librairies client libvirt et utilitaires se connectent à ce service pour fournir des tâches ou collecter des informations sur la configuration et les ressources du système hôte et des invités.

  libvirtd relis sa configuration quand il reçoit un SIGHUP.

OPTIONS

-d, --daemon Lance en tâche de fond
-f, --config FILE Utilise le fichier de configuration spécifié
-l, --listen Écoute sur TCP/IP au lieu d'un socket unix
-p, --pid-file FILE Utilise ce nom pour le fichier PID
-t, --timeout secondes Quitte après le temps spécifié passé sans connexion client.
-v, --verbose mode verbeux

Fichiers

SYSCONFDIR/libvirtd.conf Fichier de configuration de libvirtd
LOCALSTATEDIR/run/libvirt/libvirt-sock
LOCALSTATEDIR/run/libvirt/libvirt-sock-ro Sockets utilisé par libvirtd
SYSCONFDIR/pki/CA/cacert.pem certificat d'autorité
SYSCONFDIR/pki/libvirt/servercert.pem Certificat du serveur
SYSCONFDIR/pki/libvirt/private/serverkey.pem Clé privée du serveur
LOCALSTATEDIR/run/libvirtd.pid Fichier PID

Fichiers en non-root

$XDG_CONFIG_HOME/libvirtd.conf Fichier de configuration de libvirtd
$XDG_RUNTIME_DIR/libvirt/libvirt-sock Socket utilisé par libvirtd
$HOME/.pki/libvirt/cacert.pem certificat d'autorité
$HOME/.pki/libvirt/servercert.pem Certificat du serveur
$HOME/.pki/libvirt/private/serverkey.pem Clé privée du serveur
$XDG_RUNTIME_DIR/libvirt/libvirtd.pid Fichier PID
^
24 janvier 2015

htmlpdflatexmanmd




libvirtd.conf

libvirtd.conf

Fichier de configuration pour libvirtd

Options

listen_tls à 0, écoute les connexions non chiffrées, à 1, écoute les connexions chiffrées
tls_port Port d'écoute pour les connexions tcp sécurisés.
tcp_port Port d'écoute pour les connexions tcp non-sécurisés.
listen_addr Adresse d'écoute pour les connexions tcp
mdns_adv à 1, active l'avertissement mDNS des services client.
mdns_name par défaut "Virtualization Host HOSTNAME",où HOSTNAME est substitué par le nom court de la machine.
unix_sock_group Groupe propriétaire du socket
unix_sock_ro_perms Permissions du socket RO unix, utilisé pour la supervision des VM
unix_sock_rw_perms Permissions du socket RW unix, utilisé pour la gestion complète des VM.
unix_sock_dir Répertoire où créer/trouver le socket.
auth_unix_ro Définis le schéma d'authentification pour les socket RO unix (none,sasl,polkit)
auth_unix_rw Définis le schéma d'authentification pour les socket RW unix (none,sasl,polkit)
auth_tcp Définis le schéma d'authentification pour les sockets TCP (none,sasl,polkit)
auth_tls Définis le schéma d'authentification pour les sockets TCP sécurisés (none,sasl,polkit)
access_drivers = [ "nop" | "polkit" ] Par défaut un utilisateur authentifié est autorisé à accéder a toutes les API. Les pilotes d'accès peuvent y placer des restrictions. Par défaut, le driver 'nop' est activé, signifiant qu'aucun contrôle d'accès n'est fait une fois le client authentifié. Sinon, 'polkit' peut être utilisé
key_file Clé privée du service
cert_file Chemin des fichiers de certificat du serveur
ca_file Certificat de CA à utiliser
crl_file CRL à utiliser
tls_no_sanity_certificate À 1, désactive la vérification de son certificat
tls_no_verify_certificate À 1, désactive la vérification des certificats client
tls_allowed_dn_list = ["DN1", "DN2"] Une liste blanche de DN X.509. Si c'est une liste vide, personne ne peut se connecter.
sasl_allowed_username_list = ["joe@EXAMPLE.COM", "fred@EXAMPLE.COM" ] Une liste blance de noms d'utilisateurs sasl autorisé. Si c'est une liste vide, personne ne peut se connecter.
max_clients = 5000 Nombre de clients simultané autorisés
max_queued_clients = 1000 Longueur de la file d'attente de connexion autorisés
max_anonymous_clients = 20 Longueur de la file d'attente de clients accéptés mais pas encore authentifiés
min_workers = 5 Limite minimum de clients prévu, au dessus de cette limite, d'autre threads sont crées.
max_workers = 20 Limite maximum. Généralement max_workers == max_clients
prio_workers Nombre de clients prioritaires. Si tous les clients du pool de workers sont bloqués, certains appel marqués en haute priorité peuvent être exécutés dans ce pool.
max_requests = 20 Limite totale d'appels RPC concurrents. Devrait être au moins aussi grand que max_workers. Au delà de cette limite, les requêtes RPC seront lues en mémoire et mises en file d'attente. Cela impact l'utilisation de la mémoire, chaque requête nécessitant 256Ko de mémoire.
max_client_requests = 5 Limite de requête concurrentes par client. Pour éviter qu'un client monopolise le serveur, devrait être une petite fraction de max_requests.
log_level = 3 Niveau de logs ( 4 errors, 3 warnings, 2 information, 1 debug )
log_filters="3:remote 4:event" Filtre le logs. Permet de sélectionner différent niveaux de log pour une catégorie de logs donné. Plusieurs filtres peuvent être définis dans un simple @filters Le format est:

        x:name
        x:+name où name est une chaîne qui est matchée avec un nom de fichier source (ex: "remote", "qemu", ou "util/json") "+" indique à libvirt de logger les stack trace pour chaque message, et x est le niveau minimum où les messages matchant sont loggés:

                1: DEBUG
                2: INFO
                3: WARNING
                4: ERROR

log_outputs="3:syslog:libvirtd" Une sortie est un emplacement où sauver les informations de log. plusieurs sorties peuvent être définis. Le format est:

        x:stderr Erreur standard
        x:syslog:name Uitilise syslog
        x:file:file_path Sort dans un fichier
        x:journald Utilise journald
        x est le niveau minimum, agissant comme filtre:

                1:DEBUG
                2:INFO
                3:WARNING
                4:ERROR

audit_level = 2 Pernet d'altérer le sous-système d'audit:

        0 Désactive l'audit
        1 Active l'audit, seulement si permis par l'hôte
        2 Active l'audit, et qui si désactivé par l'hôte

audit_logging = 1 À 1, les messages d'audit seront envoyés via l'infrastructure de logging libvirt. Défaut: 0
host_uuid = "00000000-0000-0000-0000-000000000000" Fournis l'UUID de l'hôte ici dans le cas ou la commande 'dmidecode -s system-uuid' ne fournis pas d'uuid valide.
keepalive_interval = 5 Permet à libvirtd de détecter les connexions client cassé ou morts. Un keepalive est envoyé à un client après cet interval (en seconde) d'inactivité pour vérifier s'il répond.
keepalive_count = 5 Nombre maximum de message keepalive sans réponses à envoyer avant de fermer automatiquement la connexion.
keepalive_required = 1 À 1, libvirtd refuse de parler aux clients qui ne supportent pas le protocole keepalive. Défaut: 0.
^
16 janvier 2015

htmlpdflatexmanmd




qemu-img

qemu-img

Permet de créer, convertir et modifier des images offline.

OPTIONS

check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] filename
create [-q] [-f fmt] [-o options] filename [size]
commit [-q] [-f fmt] [-t cache] filename
compare [-f fmt] [-F fmt] [-p] [-q] [-s] filename1 filename2
convert [-c] [-p] [-q] [-n] [-f fmt] [-t cache] [-O output_fmt] [-o options] [-s snapshot_id_or_name] [-l snapshot_param] [-S sparse_size] filename [filename2 [...]] output_filename
info [-f fmt] [--output=ofmt] [--backing-chain] filename
map [-f fmt] [--output=ofmt] filename
snapshot [-q] [-l | -a snapshot | -c snapshot | -d snapshot] filename
rebase [-q] [-f fmt] [-t cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
resize [-q] filename [+ | -]size
amend [-q] [-f fmt] -o options filename

Paramètres

filename Nom du fichier
fmt Format de l'image
--backing-chain énumère les informations sur les fichiers dans une chaine d'image disque.
size Taille du fichier en octets. Supporte les suffixes "k" or "K" (kilobyte, 1024) "M" (megabyte, 1024k), "G" (gigabyte, 1024M) et T (terabyte, 1024G). "b" est ignoré
output_filename Nom de destination du disque
output_fmt Format de destination
options Liste séparé par des ',' d'options sous la forme nom=valeur. Utiliser "-o ?" pour les options supportées par le format utilisé.
snapshot_param Est le paramètre utilisé pour le snapshot intern, le format est 'snapshot.id=[ID],snapshot.name=[NAME]' ou '[ID_OR_NAME]'
-c L'image doit être compressée(qcow only)
-h Affiche les formats supportés
-p Affiche une barre de progression
-q Mode silencieux. N'affiche que les erreurs.
-S size Indique le nombre consécutif d'octets qui doivent contenir seulement des 0 pour créer une image sparse durant la conversion.
-t cache Spécifie le mode du cache à utiliser avec le fichier de destination.

Paramètres pour la commande snapshot

snapshot est le nom du snapshot à créer, appliquer ou supprimer
-a Applique un snapshot (revient à l'état sauvegardé )
-c Crée un snapshot
-d Supprime un snapshot
-l Liste tous les snapshot dans l'image donné

Paramètres pour pour la commande compare

-f Premier format d'image
-F Second format d'image
-s Mode strict - échoue sur une taille d'image différente ou une allocation de secteur différent

Paramètres pour pour la commande convert

 -n Saute la création du volume cible

Description de commande

check [-f fmt] [--output=ofmt] [-r [leaks | all]] filename Effectue une vérification de consistante sur l'image disque filename. La commande peut sortir dans le format ofmt qui est soit "human" soit "json". Si "-r" est spécifié, qemu-img tente de réparer les inconsistances. "-r leaks" répare seulement les clusters perdus, "-r all" fixe toutes les erreurs. Seul les formats qcow2, qed, et vdi supportent la vérification de consistance. Dans le cas où l'image a des inconsistances, la vérification quitte avec 0. D'autres codes se sortie indique le type d'inconsistance:

        0 Vérification complète, l'image est consistante
        1 Vérification non complète à cause d'erreurs interne
        2 Vérification complète, l'image est corrompue
        3 Vérification complète, l'image a des clusters perdus, mais n'est pas corrompue
        63 La vérification n'est pas supportée par le format de l'image.

   Si "-r" est spécifié, les codes de sortie représentant l'état de l'image réfère à l'état après sa réparation.

   create [-f fmt] [-o options] filename [size]

  Crée la nouvelle image disque à la taille et au format spécifié. En fonction du format, des options sont disponibles.

   Si l'option backing_file est spécifié, l'image enregistrera seulement les différence depuis le backing_file. Aucune taille n'est nécessaire dans ce cas. backing_file ne sera jamais modifié sauf si vous utilisez qemu-img commit ou la commande monitor commit.

   La taille peut également être spécifiée en utilisant l'option taille avec -o, qui n'a pas besoin d'être spécifiée séparemment dans ce cas.

   commit [-f fmt] [-t cache] filename

  Envoie les changements enregistrés dans le fichier spécifié dans son image de base. Si le fichier de base est plus petite que le snapshot, alors le backing file sera redimmensionné à la même taille que le snapshot. Si le snapshot est plus petit que le backing file, ce dernier ne sera pas tronqué. Si vous voulez que le backing file matche la taille du plus petit snapshot, pour pouvez le tronquer vous-même une fois le commit effectué.

   compare [-f fmt] [-F fmt] [-p] [-s] [-q] filename1 filename2

  Vérifie si les 2 images ont le même contenu. Vous pouvez comparer les images avec différents formats ou paramètres. Le format est sondé sauf si -f et/ou -F sont utilisés.

   Par défaut, les images avec une taille différente sont considérés identique si la plus grande image ne contient seulement des secteurs non-alloués ou remplis de 0 à la fin de l'image. En plus, si un secteur n'est pas alloué dans une image et contient seulement des 0 dans l'autre, il est évalué identique. Vous pouvez utiliser le mode strict en spécifiant l'option -s, ce qui fait échouer dans le cas où le taille des images diffèrent ou si un secteur est alloué dans une image et pas dans l'autre.

   compare quitte avec le code de sortie 0 si les images sont identiques, et 1 sinon. D'autres codes de sortie signifient que des erreurs ont été rencontrés:

0 Les images sont identiques
1 Les images diffèrent
2 Erreur en ouvrant une image
3 Erreur en vérifiant une allocation de secteur
4 Erreur en lisant les données

   convert [-c] [-p] [-n] [-f fmt] [-t cache] [-O output_fmt] [-o options] [-s snapshot_id_or_name] [-l snapshot_param] [-S sparse_size] filename [filename2 [...]] output_filename

  convertis l'image disque filename ou un snapshot snapshot_param en image disque output_filename en utilisant le format output_fmt. Peut optionnellement être compressé (-c) ou chiffré, en fonction du format.

   Seul les formats qcow et qcow2 supportent la compression. La compression est lecture seul. Cela signifie que si un secteur compressé est réécrit, la réécriture sera une donnée non compressée. La conversion d'image est également utile pour obtenir des images plus petites en utilisant un format scalaire tel que qcow ou cow: les secteurs vides sont détectés et supprimés de l'image de destination. backing_file permet de forcer l'image de sortie à être créée en copie de l'image de base. le backing_file devrait avoir le même contenu que l'image de base de l'entrée, cependant le chemin, le format, etc. peuvent différer. Si -n est spécifié, la création du volume cible sera ignoré. C'est utile pour des formats tels que rbd si le volume cible a déjà été créé avec les options spécifique du site qui ne peuvent pas être fournis par qemu-img.

   info [-f fmt] [--output=ofmt] [--backing-chain] filename

  Donne des informations sur l'image disque. À utiliser en particulier pour connaître a taille réservée dans le disque qui peut être différent de la taille affichée. Si les snapshot sont stoqués dans l'image disque, elle peuvent être affichées également. La commande peut afficher dans le format ofmt qui est soit "human" soit "json".

   Si une image diques a une chaîne backing file, les informations sur chaque image disque dans la chaîne peuvent être récursivement énumérés en utilisant l'option --backing-chain.

Si vous avez un chaîne d'image:
base.qcow2 ‹- snap1.qcow2 ‹- snap2.qcow2
Pour énumérer les informations sur chaque image disque:
qemu-img info --backing-chain snap2.qcow2

   map [-f fmt] [--output=ofmt] filename

  Dump les méta-données de l'image et sa chaîne de backing_file. En particulier, cette commande dump l'état d'allocation de tous les secteurs de filename, ensemble avec le fichier le plus haut dans la chaîne. 2 formats d'options sont possibles. Le format par défaut ('human') dumps seulement les aires non-zero du fichier. Ces parties du fichier sont omis, de même pour les parties qui ne sont pas allouées le long de la chaîne. La sortie de qemu-img va identifier un fichier d'où le donnée peuvent être lues, et l'adresse dans le fichier. Chaque linge va inclure 4 champs, les 3 premiers sont un héxa.

Par exemple:
Offset Length Mapped to File
0 0x20000 0x50000 /tmp/overlay.qcow2
0x100000 0x10000 0x95380000 /tmp/backing.qcow2

   signifie que les octets 0x20000 (131072) commençant à l'offset 0 dans l'image sont disponibles dans /tmp/overlay.qcow2 (ouvert en format raw) commençant à l'offset 0x50000 (327680). Les données qui sont compressées, chiffrée ou autre ne sont pas disponible dans le format brute et vont générer des erreur pour le format "human". Notez que les noms de fichiers peuvent inclure des sauts de ligne, ce qui n'est pas sûr pour analyser ce format de sortie dans les scripts.

   Le format alternatif json retourne un tableau de dictionnaires au format json. Il va inclure des information similaires dans les champs start, length et offset; il inclus également d'autres informations plus spécifiques:

- Si les secteurs contient une donnée ou non (data); si false, les secteurs sont soit non alloués, ou remplis de 0.
- Si La données est 0 (zero)
- Pour raccourcir la sortie, le fichier cible est exprimmé en depth, par exemple, une profondeur de 2 réfère au backing file du backing file de filename.

   snapshot [-l | -a snapshot | -c snapshot | -d snapshot ] filename

  Liste, applique, créer, ou supprime un snapshot de l'image filename.

   rebase [-f fmt] [-t cache] [-p] [-u] -b backing_file [-F backing_fmt] filename

  Change le backing file au backing_file et (si le format de l'image de filename le supporte) le format du backing file est changé en backing_fmt. Si backing_file est spécifié "", l'image est rebasé dans aucun backing file ( ex: elle va exister indépendamment de tout backing file).

  Il y a 2 modes différents dans lequel "rebase" peut opérer:

safe mode C'est le mode par défaut et effectue une opération de rebase réel. Le nouveau backing file peut différer de l'ancien et qemu-img rebase va s'occuper de conserver inchangé le contenu visible à l'invité de filename. Pour cela, tous les clusters qui diffèrent entre backing_file et l'ancien backing file de filename sont fusionné dans filename avant de changer de backing file. Noter que le safe mode est plus coûteux, comparable à convertir une image. Ne fonctionne que si l'ancien backing file existe.
unsafe mode qemu-img utilise le mode unsafe si -u est spécifié. Dans ce mode, seul en nom du backing file et le format de filename sont changés sans vérification du contenu du fichier. L'utilisateur doit spécifier le nouveau backing_file correcte, ou le contenu visible de l'invité de l'image sera corrompue. Ce mode est utile pour renommer ou déplacer le backing file ailleurs. Il peut être utilisé sans ancien backing file, par ex, on peut l'utiliser pour fixer un image dont le backing file a déjà été déplacé/renommé.

   rebase peut être utilisé pour effectuer une opération diff dans 2 images disque. Cela peut être utile quand un invité est copié ou cloné

Disons que base.img a été clonée en modified.img en la copiant, et cet invité modified.img a été lancé donc il y a quelques changements comparés à base.img. Pour construire une petite image appelée diff.cqow2 qui contient seulement la différence:
qemu-img create -f qcow2 -b modified.img diff.qcow2
qemu-img rebase -b base.img diff.qcow2
modified.img peut être supprimé, vu que base.img + diff.qcow2 contient la même information.

   resize filename [+ | -]size

  Change l'image disque comme si elle avait été créée avec la taille donnée. Avant d'utiliser cette commande pour réduire une image disque, vous devez utiliser les outils de système de fichier et de partitionnement dans la VM pour réduires les tailles alloués aux systèmes de fichiers et partitions, sinon des données seront perdues. Après avoir utilisé cette commande pour agrandir une image disque, vous devez utiliser les outils de partitionnement et de systèmes de fichiers dans la v pour utiliser le nouvel espace disque.

   amend [-f fmt] -o options filename

  Modifie les options spécifiques au format de l'image. Tous les formats ne supportent pas cette opération.

Notes

   Les formats d'image suivant sont supportés:

raw Format d'image brute, il a l'avantage d'être simple et facilement exportable à d'autres émulateurs.
qcow2 Format d'image qemu, le format le plus verstatile. Il a les images les plus petites, supporte le chiffrement, la compression et les snapshots multiples.

Options du format qcow2

compat Détermine la version qcow2 à utiliser. compat=0.10 utilise le format traditionnel qui peut être lu par tous les qemu. compat=1.1 active les extensions du format.
backing_file Nom d'une image de base
backing_fmt Formate de l'image de base
encryption Active le chiffrement 128-bits AES-CBC
cluster_size Change la taille de cluster ( doit être entre 512 et 2M). Les petites taille améliorent la taille de l'image, et les plus grandes taille améliorent les performance.
preallocation (off, full, falloc, metadata). Alloue tout l'espace disque. Améliore les performances.
lazy_refcounts à on, Les updates de comptage de référence sont reportés pour éviter les E/S de méta-données et améliorer les performances. Intéressant avec cache = writethrough. Le compromis est qu'après un crash d'hôte, les tables de comptage de référence doivent être reconstruites, qemu-img check -r all est requis et peut prendre du temps.
nocow A on, désactive le COW du fichier. Seulement valide sur brtfs.
^
16 janvier 2015

htmlpdflatexmanmd




qemu-nbd

qemu-nbd

QEMU Disk Network Block Device Server. Exporte des images disques Qemu en utilisant le protocole NBD

OPTIONS

-p, --port=port Port d'écoute ( défaut: 1024 )
-o, --offset=offset offset dans l'image
-b, --bind=iface Interface d'écoute ( défaut: 0.0.0.0 )
-k, --socket=path Utitile un socket unix avec le chemin donné
-r, --read-only Export lecture seule
-P, --partition=num Expose seulement la partition spécifiée
-s, --snapshot Utilise un fichie snapshot
-n, --nocache Désactive le cache de l'hôte
-c, --connect=dev Connecte le fichier au périphérique donné
-d, --disconnect Déconnecte le périphérique spécifié
-e, --shared=num Le périphérique peut être partagé par num client ( défaut: 1 )
-t, --persistent Ne quitte pas à la dernière connection
-v, --verbose mode verbeux

Exemples

Acceder a une partition d'un disque virtuel sur l'hôte:
modprobe nbd
qemu-nbd -c /dev/nbd0 /path/to/mydisk.qcow2
ensuite, identifier les partitions:
fdisk -l /dev/nbd0
et la monter:
mount /dev/nbd0p1 /mnt/vmpart1
pour démonter proprement:
umount /mnt/vmpart1 && qemu-nbd -d /dev/nbd0 && rmmod nbd