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)
16 mai 2017

htmlpdflatexmanmd




winetricks

winetricks

Utilitaire pour travailler facilement autour des problèmes dans Wine

OPTIONS

   Sans argument, affiche une interface utilisant soit zenity soit kdialog

Variables d'environnement

WINEPREFIX si définis, nom du répertoire où sont stockés les données (défaut : $HOME/.wine)
WINE Chemin de wine
XDG_CACHE_HOME Cache de données utilisateur du système (défaut : $HOME/.cache)
W_CACHE Cache de winetricks ( défaut : $XDG_CACHE_HOME/winetricks)
^
16 mai 2017

htmlpdflatexmanmd




wineserver

wineserver

Service qui fournis à Wine les même services que le noyau Windows. Il est lancé automatiquement par wine

OPTIONS

−d[n], --debug[=n] Définis le niveau de débug
−f, --foreground Laisse le serveur au premier plan
−k[n], --kill[=n] envoie un signal au wineserver courant
−p[n], --persistent[=n] Délai de persistance après que tous les processus client soient terminés
−w, --wait Attend que le wineserver courant se termine avec de se lancer

Variables d'environnement

WINEPREFIX si définis, nom du répertoire où sont stockés les données (défaut : $HOME/.wine)
WINESERVER Chemin de wineserver (défaut : /usr/local/bin/wineserver)
^
16 mai 2017

htmlpdflatexmanmd




wine

wine

Exécuter des programmes Windows sous Unix

   Le nom du programme peut être spécifié au format DOS ou au format UNIX. Les caractères spéciaux sont protégés par '\'

Variables d'environnement

WINEPREFIX si définis, nom du répertoire où sont stockés les données (défaut : $HOME/.wine)
WINESERVER Chemin de wineserver (défaut : /usr/local/bin/wineserver)
WINELOADER Chemin de wine (défaut : /usr/local/bin/wine)
WINEDEBUG Active/désactive les messages de deboggage. (syntaxe : [classe][+|-]canal[,[classe2][+|-]canal2])
WINEDLLPATH Chemins où rechercher les dll intégrées et les applications Winelib, séparés par des ’ :’ (défaut : /usr/local/lib/wine)
WINEDLLOVERRIDES Définis le type d’emplacement et l’ordre de chargement des DLL utilisée lors du processus de chargement d’une DLL. le type peut être n( native) ou b (builtin) (ex : WINEDLLOVERRIDES="comdlg32,shell32=n,b", ex : WINEDLLOVERRIDES="comdlg32=b,n ;shell32=b ;comctl32=n ;oleaut32=")
WINEARCH Spécifie l’architecture Windows (win32 ou win64)
DISPLAY Spécifie l’affichage X11 à utiliser
AUDIODEV défaut : /dev/dsp
MIXERDEV défaut : /dev/mixer
MIDIDEV défaut : /dev/sequencer
^
16 mai 2017

htmlpdflatexmanmd




Wine - présentation

Wine - présentation

Wine est une implémentation des librairies Windows, agissant comme un pont vers les librairies linux

Fonctionnalités de Wine

- Support pour les applications win16, win32 et win64
- utilisation de fichiers dll
- Affichage graphique X11
- Support de DirectX
- Support pour les pilotes son tel que OSS et ALSA
- Support pour des périphériques d’entrée tels que les tablettes graphiques
- Pilote PostScript pour l’impressions
- support modem série
- Winsock TCP/IP networking
- Support des interfaces scsi ASPI pour les scanner, graveurs cd, etc.
- Support unicode et support de langues avancé
- Débugger intégré et avancé

Compiler Wine


wget http://downloads.sourceforge.net/project/wine/Source/wine-1.7.0.tar.bz2
tar -xjf wine-1.7.0.tar.bz2
cd wine-1.7.0
./configure
make depend
make
make install

Exécuter Wine

   Les applications sont installées sous Wine de la même manière qu'elles le sont sous Windows : en exécutant l’installeur. Pour désinstaller un programme, lancer le programme uninstaller (généralement dans programs/uninstaller/) : wine uninstaller.

  Certains programmes associent une applet dans le panneau de contrôle : wine control

Variables d’environnement

WINEDEBUG=[channels] permet d’activer des cannaux de debug. 4 classes peuvent être définies, trace, fixme, warn, err, +all, -‹class›. (ex : WINEDEBUG=warn+heap wine program_name)
WINEDLLOVERRIDES=[DLL Overrides] Permet d’utiliser les DLL natives au lieu de celles intégrées (ex : WINEDLLOVERRIDES="comdlg32=b,n ;shell32=b ;comctl32=n ;oleaut32=" wine program_name)
WINEARCH Spécifie l’architecture Windows à supporter
AUDIODEV défaut : /dev/dsp
MIXERDEV défaut : /dev/mixer
MIDIDEV défaut : /dev/sequencer

Options de wineserver

-d‹n› Définis le niveau de debug à sortir dans le terminal
-k[n] Kill le wineserver courrant avec le signal spécifié
-p[n] rend winserver persistant, optionnellement pour n secondes
-w wineserver attend jusqu’à ce que l’instance winserver active se termine

Définir les variables d’environnement Windows/DOS

export MYENVIRONMENTVAR=myenvironmentvarsetting

   Pour certaines variables d’environnement comme PATH, SYSTEM ou TEMP, pour ne pas altérer l’environnement linux, il est nécessaire de les déclarer dans le registre avec regedit ( HKEY_CURRENT_USER/Environment)

Programmes en mode texte (CUI)

   Il y’a 3 manières différentes de lancer un tel programme:

bare streams Pas de support supplémentaire de wine qui map la console Windows à une console unix
wineconsole with user backend Utilise wineconsole
wineconsole with curse backend Utilise wineconsole

   Quand wineconsole est utilisé, de nombreuses options de configuration sont disponibles. Wine les stock sur une base par application dans le registre. Seul le backend user permet d’éditer ces options. Les options de configurations de wineconsole permettent de choisir entre Default (paramètres partagés par toutes les applications) ou properties (édition par application).

Configurer Wine avec winecfg

   Wine stock toute sa configuration dans le registre.

Applications Wine a la capacité de mimer différentes version de Windows. Pour chaque application, Wine permet de spécifier quelle version de windows simuler.
Bibliothèques Certaines applications nécessitent des librairies spécifiques. Wine reproduit les librairies système Windows avec des versions complètement conçues de manière à fonctionner de la même manière, mais sans nécessiter de licence Microsoft. Il est possible de spécifier une DLL Native de remplacement dans le cas où les DLL intégrées ne fonctionnent pas correctement.
Affichage 5 paramètres de base permettent de déterminer le mode d’affichage des applications
Lecteurs Permet de gérer les lecteurs Windows. Tous les lecteurs résident dans /.wine/dosdevices Chaque lecteur est un lien vers l’emplacement où il réside.
Audio Wine Peut fonctionner avec différents sous-systèmes audio, définissable ici.
intégration avec le bureau Wine peut charger des thèmes Windows

Utiliser le registre et regedit

system.reg contient HKLM
user.reg contient HKCU
userdef.reg contien HKUSERS\.Default

   Ces fichiers sont créés la toute première fois que wine est lancé

Autres configuration

   La configuration des ports série et parallèle est très similaire à la configuration des lecteurs, un lien dans .wine/dosdevices (ex : ln -s /dev/ttyS0 com1 et ln -s /dev/lp0 lpt1)

Partages réseaux Les partages réseaux peuvent être mappés dans le répertoire unc (ex : ln -s /mnt/smb/myserver/some unc/myserver/some )
police de caractères Les fonts .ttf sont placées dans c :\windows\fonts
Imprimantes Wine peut interagir avec CUPS pour trouver les imprimantes disponibles
Scanner Dans Windows, les scanner utilisent le TWAIN API pour accéder au hardware. la version intégrée de Wine forwards simplement les requêtes aux librairies Linux SANE
Base de données ODBC le système ODBC dans Wine, est conçu pour hook dans le système unix. Au lieu de s’assurer que le code Winodws fonctionne sous wine, il utilise un fournisseur ODBC Unix, tel que UnixODBC.
^
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




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.
^
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.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.
^
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
^
19 janvier 2015

htmlpdflatexmanmd




xnbd.conf

xnbd.conf

Fichier de configuration pour xnbd-register

Description

   Ce fichier est une configuration semi-structurée, décrivant les connexions client/wrapper qui sont supposés être restorés au démarrage du système. La syntaxe de ce fichier est une structure de données JSON. 2 types d'objets sont reconnus: les volumes xnbd et une instance wrapper. les volumes xnbd sont indexés par le nom des périphériques supposé. C'est à dire, pour restaurer /dev/nbd° un objet nommé nbd0 doit être configuré. Les arguments valides sont les hôte, noms et port. Donc par exemple, pour configurer /dev/nbd0 en se connectant à localhost sur le port 8520. Si présent, identifie le périphérique partagé par le nom logique configuré:


"nbd0": {
    "host": "127.0.0.1",
    "port": 8520,
    "name": "name"
}

   Similairement, une instance wrapper configure un xnbd-wrapper. Les options valides sont:

address Adresse d'écoute
port Port d'écoute
socket socket pour les canaux de contrôle
logpath chemin pour la redirection des log
volumes Un mappage de volumes qui sont exportés. Les clés de mappage sont les noms d'export, les valeurs de mappage sont les chemin des images disque.


"wrapper": {
    "address": "127.0.0.1",
    "port": 8520,
    "socket": "/var/run/xnbd.ctl",
    "logpath": "/var/log/xnbd.log",
    "volumes": {
        "one": "/dev/volume",
        "two": "/dev/sdb1",
        "three": "/var/lib/image.file",
    }
}

^
19 janvier 2015

htmlpdflatexmanmd




xnbd-register

xnbd-register

Restaure les sessions xNBD au boot basés sur un fichier de configuration.

OPTIONS

--start Démarre les périphériques configurés dans les fichiers de configuration.
--status Récupère le statut de wrapper depuis une commande xnbd-wrapper en cours de fonctionnement.
--stop Stop toutes les connexions xnbd.
--restart Relance les instances xnbd.
--config FILE Emplacement du fichier de configuration. Défaut: /etc/xnbd.conf
--quiet mode silencieux

Fichiers

/etc/xnbd.conf Fichier de configuration pour xnbd-register.
^
19 janvier 2015

htmlpdflatexmanmd




xnbd-bgctl

xnbd-bgctl

Permet de se connecter au canal de contrôle d'un serveur xnbd-server et de le piloter.

OPTIONS

--cache-all Si le serveur distant agit comme proxy, l'instruit de cacher tous les blocks et ses blocks disques associés. Une fois terminé, l'instance maintient toutes les données depuis l'instances originale, et il n'est plus nécessaire d'agir comme proxy.
--cache-all2 Idem, mais détache le processus du terminal et utilise une connexion dédiée pour le transfert de données.
--query Récupère des données statistiques de l'instance proxy.
--reconnect Récupère une connexion perdue avec le serveur originale.
--switch Stop le proxy et le redémarre en mode target. toutes les sessions client sont préservés
--exportname NAME Si le serveur supporte l'accès aux périphériques par identifiant, utilise NAME pour demander l'accès à un volume particulier. Utile avec xnbd-wrapper.
--progress Affiche une barre de progression sur stderr.
--force Ignore les risques.

Arguments positionnels

CONTROL_SOCKET Socket UNIX sur lequel xnbd-server écoute.
^
19 janvier 2015

htmlpdflatexmanmd




xnbd-wrapper-ctl

xnbd-wrapper-ctl

Permet de se connecter au canal de contrôle de xnbd-wrapper et de le piloter.

OPTIONS

--add-target FILE instruit xnbd-wrapper d'ajouter le fichier donné comme périphérique exporté.
--add-proxy TARGET_HOST TARGET_PORT CACHE_IMAGE BITMAP_IMAGE CONTROL_SOCKET_PATH instruit xnbd-wrapper d'ajouter un proxy au serveur cible donné
--list|-l Liste les noms de fichier exportés
--remove-by-file FILE instruit xnbd-wrapper de supprimer le volume exporté comme fichier de la liste des périphériques exportés.
--remove-by-exportname NAME instruit xnbd-wrapper de supprimer le volume exporté comme nom de la liste des périphériques exportés.
--socket|-s SOCKETPATH Se connecte au socket. Défaut: /var/run/xnbd-wrapper.ctl
--target-exportname NAME Définis le nom de l'export de requête depuis la cible xnbd-wrapper proxifié. Utilisé seulement avec --add-proxy et --bgctl-reconnect
--bgctl-cache-all
--bgctl-query
--bgctl-reconnect REMOTE_HOST REMOTE_PORT
--bgctl-switch Voir xnbd-bgctl pour les détails.

Arguments positionnels

FILE L'emplacement du fichier disque
LOCAL_EXPORTNAME Export le nom au procéssus xnbd-wrapper en cours de fonctionnement
REMOTE_HOST Hôte cible de connexion.
REMOTE_PORT Port TCP de connexion.
CACHE_IMAGE Emplacement du fichier disque (cache)
BITMAP_IMAGE Emplacement du fichier bitmap d'état du cache
CONTROL_SOCKET_PATH Socket UNIX sur lequel xnbd-server écoute.
^
19 janvier 2015

htmlpdflatexmanmd




xnbd-wrapper

xnbd-wrapper

Gère plusieurs fichiers à exporter comme périphérique block à d'autre machines.

Description

   xnbd-wrapper est un super-serveur pour xnbd-server. Son but est de gérer plusieurs images exportés en une fois. Un client peut se connecter à ce super-serveur et il sera redirigé vers le serveur xnbd fournissant la ressource demandée.

   xnbd-wrapper est utile si vous désirez exporter plusieurs fichiers ou périphériques block sur un hôte. Au lieu de démarrer plusieurs instances de xnbd-server et de se rappeler des ports exportés pour chacun, xnbd-wrapper recherche le fichier automatiquement et le mappe au serveur correspondant.

OPTIONS

--daemonize Lance le service en tâche de fond
--imgfile IMAGE Export le fichier image via xnbd-wraper. Peut être spécifié plusieurs fois
--laddr ADDRESS L'adresse d'écoute du wrapper.
--logpath FILE Log les messages dans le fichier au lieu de stderr/syslog
--syslog Log les messages dans syslog
--lport PORT Écoute les connexions entrante sur le port donné. Défaut: 8520.
--socket PATH le wrapper peut être contrôlé via un socket de contrôle. Défaut: /var/run/xnbd-wrapper.ctl
--xnbd-bgctl COMMAND Spécifie le chemin de l'exécutable xnbd-bgctl. La commande peut être un nom de fichier ou une commande pour résoudre le nom du fichier.
--xnbd-server COMMAND Spécifie le chemin de l'exécutable xnbd-server.
--cow Invoque xnbd-server --cow-target
--readonly invoke xnbd-server --readonly
--max-queue-size NUMBER Paramètre transféré au mode proxy à l'invocation
--max-buf-size Paramètre transféré au mode proxy à l'invocation
^
19 janvier 2015

htmlpdflatexmanmd




xnbd-server

xnbd-server

Dessert un périphérique block à d'autre machines via le protocole NBD

Description

   xnbd-server est un service NBD. Il exporte un fichier image aux clients nbd sur le réseau. Un client peut accéder au fichier exporté viar une interface block-level I/O; il est possible de créer des aires de swap dessus ou de créer des systèmes de fichier.

   xNBD offre des avantages supplémentaires par rapport à l'implémentation NBD originale. xNBD offre de meilleurs performances, supporte le copy-on-write (distribué), les snapshots, migration à chaud pour les machines virtuelles, et l'IPv6.

xnbd-server peut opérer en 3 modes: le mode target, le mode target copy-on-write, et le mode proxy.
xnbd-server --target exporte des images disques aux clients
xnbd-server --cow-target exporte des images disque de base aux clients. Les opérations d'écriture ne sont pas envoyés sur le disque de base, mais dans un fichier séparé, qui est supprimé à la déconnexion du client.
xnbd-server --proxy agit comme proxy pour un serveur xnbd-server distant. Le serveur proxy reçoit les requêtes de lecture/écriture les clients comme un serveur d'image fait normalement, mais cache les blocks disque, et récupère les blocks depuis le serveur distant si nécessaire. Aucune opération d'écriture ne se produit sur le serveur distant. Il peut être utilisé pour accélérer les accès distants, partages une image disque lecture-seule, et répliquer une image exportée à un autre nœud de manière transparente. Il fonctionne également pour la migration à chaud.

   Attention: plusieurs clients peut accéder simultanément à une seule instance du serveur. xnbd-server n'offre pas de mécanisme de lock ou de synchronisation. Dans ces cas, vous devez utiliser un système de fichier clusterisé dans les images disque exportés pour éviter tout dommage à vos données.

OPTIONS

--daemonize Lance le service en tâche de fond
--inetd Lance le service via inetd
--logpath FILE Log les messages dans le fichier au lieu de stderr/syslog
--syslog Log les messages dans syslog
--lport PORT Écoute les connexions entrante sur le port donné. Défaut: 8520.
--readonly Export le fichier image en lecture seule. Si une opération d'écriture est reçu du client, il est déconnecté. Si utilisé en mode proxy, xnbd-server rejète les requêtes d'écriture.
--connected-fd NUMBER Utilise le descripteur de fichier NUMBER comme canal bi-directionnel, pré-négocié pour un simple client. Utilisé avec xnbd-wrapper à l'invocation de xnbd-server, en interne.

Options du mode proxy

--target-exportname NAME Définis le nom de l'export pour requêter puis une cible xnbd-wrapper
--clear-bitmap Efface le fichier bitmat existant. Par défaut, l'état précédent est ré-utilisé
--max-queue-size NUMBER Limite le nombre total de requêtes en file d'attente. Si ce nombre est atteins, le serveur retarde la reception des nouvelles requêtes. Défaut: 0 (pas le limitation)
--max-buf-size NUMBER Limite l'utilisation du tampon interne à approximativement NUMBER octets. Si cette limite est atteinte, le serveur retarde les nouvelles requêtes. Défaut: 0 (pas le limitation)

Signaux

SIGUSR1 Prend un snapshot du fichier image. Seulement en mode target
SIGUSR2 Change le mode proxy en mode target. Utiliser xnbd-bgctl --switch au lieu d'utiliser ce signal.
^
18 janvier 2015

htmlpdflatexmanmd




nbd-server.config

nbd-server.config

Fichier de configuration pour ndb-server

Description

   Un en-tête de section est un nom unique qui est entre [ et ], et dénote le début d'un section; une section continue jusqu'à ce qu'une autre section commence ou la fin du fichier. La première section doit s'appeler generic et est utilisée pour les option globales qui s'appliques à plus d'un export et doit toujours être présent. Chaque autre section maintient un export; les noms de ces section ne sont pas important excepté qu'ils doivent être unique.

Options pour la section generic

allowlist (bool,optionnel) permet au client de rechercher une liste d'exports depuis ce serveur. nbd-client -l permet d'avoir cette liste.
group (string,optionnel) Le nom du groupe sous lequel le service fonctionne. Non spécifié le serveur ne tente pas de changer son GID.
includedir (string,optionnel) Répertoire contenant les fichiers avec l'extension '.conf' qui contiennent d'autres directives de configuration. la section [generic] ne peut pas être dans un de ces fichiers.
listenaddr (string,optionnel) Contient l'IP local sur laquelle le service écoute.
oldstyle (bool,optionnel) à true, le serveur exporte tous les exports sur un port séparé. Dans ce cas, l'option port pour les exports individuels est mandatoire.
port (string,optionnel) port d'écoute du serveur. Défaut: 10809.
user (string,optionnel) le nom du l'utilisateur sous lequel le service fonctionne. Non spécifié le serveur ne tente pas de changer son UID.

Options pour les sections d'export

authfile (string,optionnel) Le nom du fichier d'autorisation pour cet export. Ce fichier devrait contenir une ligne par adresse IP, ou par réseau en notation CIDR. Si le fichier n'existe pas, tout le monde est autorisé à se connecter. Si le fichier existe mais vide, aucun client n'est autorisé à se connecter.
copyonwrite (bool,optionnel) Spécifie si l'export est copy-on-write, qui n'écrit pas dans le fichier maître, mais dans un fichier séparé, qui est supprimé à la déconnexion.
exportname (string,requis) le nom du fichier qui sera exporté. Doit être pleinement qualifié. Utilisé en conjonction avec temporary, spécifie un template pour le fichier temporaire concerné, et donc peut être utilisé pour contrôler le répertoire dans lequel il est créé.
filesize (entier,optionnel) désactive l'autodétection de la taille du fichier ou du périphérique block. Doit être spécifié en octets. Si l'option multifile est présent, cette option spécifie la taille de tout l'export, pas les fichiers individuels.
flush (bool,optionnel) à true, le serveur informe le client qu'il supporte et souhaite envoyer des requêtes flush quand la couche élévateur les reçois, ce qui cause un fdatasync() ou fsync() si l'option sync est présente dans le stockage. Cela augmente la fiabilité dans le cas des shutdown non propre au prix d'un dégradation des performances.
fua (bool,optionnel) à true, le serveur informe le client qu'il supporte et souhaite envoyer des commandes fua (force specified commands) quand la couche élévateur les reçois, ce qui cause la commande spécifiée d'être synchronisée sur le stockage avec sync_file_range(), ou fdatasync(). Cela augmente la fiabilité dans le cas des shutdown non propre au prix d'un dégradation des performances.
listenaddr (string,optionnel) Adresse IP d'écoute pour cet export, si ordstyle est spécifié dans la section generic
maxconnections (entier,optionnel) Limite le nombre de connections ouverte pour cet export
multifile (bool,optionnel) à true, le serveur recherche les fichiers sous la forme exportname.integer, où exportname est le nom du fichier, suivi d'un nombre unique commençant à 0.
port (integer) requis si oldstyle est spécifié dans la section generic, pour d'écoute pour cet export.
postrun (string,optionnel) si spécifié, assume que c'est une commande qui sera lancée quand un client sera déconnecté. Peut être utile pour nettoyer ce que prerun a définis, ou logger quelque chose. le code de sortie de postrun est ignoré.
prerun (string,optionnel) si spécifié, cette commande sera exécutée après que le client se soit connecté au serveur, mais avant que le serveur commence à desservir . Si la commande contient %s, cette chaîne sera remplacée par le nom du fichier qui est exporté. Si la commande se termine avec un status autre que 0, le serveur assume que l'export a échoué et refuse de le desservir.
readonly (bool,optionnel) Quand cette option est activée, le serveur informe le client qu'il préférerai envoyer des requêtes dans l'order de l'élévateur. Seulement requis quand le serveur n'utilise par l'algorithme d'élévateur, ou cet algorithme est neutralisé.
sdp (bool,optionnel) à true, le serveur utilise SDP ( Socket Direct Protocol) pour desservir l'export, au lieu de simplement l'IP. C'est plus rapide, mais nécessite un hardware spécial ( comme InfiniBand).
sparse_cow (bool,optionnel) à true, le serveur utilise les fichiers sparses pour implémenter l'option copy-on-write. De tels fichiers prennent moins d'espace qu'ils apparaissent, ce qui permet au serveur de manipuler des fichiers plus grands que n'est le périphériques block.
sync (bool,optionnel) Quand cette option est activée, le serveur va appeler un fsync() après chaque écriture au backend. Cela augmente la fiabilité dans le cas des shutdown non propre au prix d'un dégradation des performances.
temporary (bool,optionnel) Créé un export temporaire avec un nom basé sur le nom de l'export. L'export ne persistera par entre les invocations du serveur. Incompatible avec l'option multifile
timeout (string,optionnel) Nombre de secondes qu'une connexion peut être en attente pour cet export. Quand une connexion attend trop longtemps, le serveur force la déconnexion. Désactivé à 0.
transactionlog (string,optionnel) Si spécifié, ce chemin est utilisé pour générer un log de transaction. Ce log est un fichier binaire qui consiste de requêtes envoyés et des réponses reçus par le serveur, mais en excluant les données.
trim (bool,optionnel) quand cette option est activée, le serveur annonce qu'il support la commande NBD_CMD_TRIM pour l'export, cette commande permet au serveur d'annuler la donnée du disque, mais ne l'oblige pas à le faire.
virtstyle (string,optionnel) Définis le style de virtualisation. La virtualisation permet de créer un export qui va desservir un fichier différent en fonction de l'adresse IP qui se connecte. Quand la virtualisation est active, le paramètre exportname nécessite de contenir la chaine %s, qui sera remplacé par l'adresse IP du client. Le résultat de cette transformation est utilisé comme nom de fichier à ouvrir. Il y a 4 type de virtualisation supportés:

        ipliteral %s est remplacé par l'adresse IP du client. (ex: exporname = /export/%s et le client est 192.168.1.100, le serveur tente de desservir /export/192.168.1.100; pour une IPv6, /export/2001:6f8:32f:0:0:0:0:39)
        iphash idem, mais remplace les point par des "/" ( ex /export/192/168/1/100 )
        cidrhash Nécessite d'ajouter un espace et un nombre après lui, qui sera utilisé comme masque réseau. (ex pour un cidrhash = 16, tente d'ouvrir /export/192.168.0.0/192.168.1.100).

Exemples

Configuration simple:
[generic]
[export]
exportname = /export/blkdev
Pour plus de sécurité, on peut créer un fichier d'autorisation:
[generic]
user = nbd
group = nbd
[export]
exportname = /export/blkdev
authfile = /etc/nbd-server/allow
Et le fichier /etc/nbd-server/allow:
127.0.0.1
192.168.0.0/8
192.168.1.1
Pour être compatible avec les anciens clients:
[generic]
oldstyle = true
[export]
exportname = /export/blkdev
port = 12345
^
18 janvier 2015

htmlpdflatexmanmd




nbd-trdump

nbd-trdump

Traduit un log de transaction nbd sous forme human readable

Sortie

Une demande du client au serveur
Une réponse du serveur au client
H Le handle du packet
C La commande envoyée
O L'offset depuis le début du disque
L La longueur de la donnée
E L'erreur retournée
^
18 janvier 2015

htmlpdflatexmanmd




nbd-server

nbd-server

Dessert un fichier comme périphérique block à d'autre machine.

Description

   Avec NBD, un client peut utiliser un fichier, exporté sur le réseaux depuis un serveur, comme périphérique block. NBD peut être utile pour les clients léger sans disques qui ont besoin d'espace swap, mais on peut également y créer un système de fichier et l'utiliser comme système de fichier local.

   nbd-server implémente un peut de sécurité via un fichier appelé /etc/nbd-server/allow. Ce fichier doit lister les adresse IP ou les masques réseaux des client qui sont autorisés à se connecter. S'il n'existe pas, tous les clients sont capable de se connecter. Si le fichier est vide, aucun client ne peut se connecter.

   Noter que bien que la ligne de commande permet de spécifier un export, l'utilisation de cette option est dépréciée. Il est préférable d'utiliser le fichier de configuration.

   Bien que nbd-server fonctionne, les nouveaux exports peuvent être ajoutés en ré-écrivant le fichier de configuration puis en envoyant un SIGHUP au serveur, ce qui le force à relire sa configuration.

OPTIONS

ip L'addresse ip d'écoute du service. Peut être une IPv4 ou une IPv6 ou un nom d'hôte. Dans le dernier cas, nbd-serveur fait une recherche de nom et écoute sur la première adresse qui lui est retournée. Non spécifié, nbd-server écoute sur toutes les interfaces.
port Le port d'écoute du service. Si 0 est spécifié, nbd-server va écouter sur stdin.
filename Le nom du fichier qui devrait être exporté. Cela peut être tout fichier, incluant des périphériques block réel (ex: depuis /dev). Si le nom du fichier inclus la chaîne %s, elle sera substituée avec l'adresse IP du client.
size La taille du périphérique block côté client. Utile en conjonction avec l'option -m
-r Export le fichier en lecture seule. Si un client tente d'y écrire, il recevra une erreur mais restera connecté.
-m Travail avec plusieurs fichiers. Cela peut être utilisé pour exporter des périphériques block plus grand que la taille de fichier maximum permise dans le système de fichier. Pour utiliser cette options, il faut créer des fichiers avec les noms au format name.X où name est donné en argument filename, et X est un nombre commençant à 0.
-c Copy on write. Les opérations d'écritures ne sont pas faite sur le fichier exporté, mais dans un fichier séparé. Ce fichier est supprimé quand la connexion est terminée. Cela ralentis le service.
-C Spécifier le fichier de configuration. Défaut: /etc/nbd-server/config.
-M Spécifie le nombre maximum de connexions ouverte. Non spécifié, aucune limite n'est définie.
-d Ne fork pas.
host list filename Cet argument devrait contenir un liste d'IP pour les hôtes qui peuvent se connecter au serveur. les wildcards ne sont pas permis. Si le fichier n'existe pas, il est ignoré ( et tous les hôte peuvent se connecter ); si le fichier existe, mais est vide, aucun hôte ne peut se connecter. Par défaut, le nom nbd_server.allow est utilisé, et recherché dans le répertoire courant, sauf si nbd-server est compilé en service, auquel cas il le recherche dans "/".
section name Si -o est donné, nbd-server affiche la section du fichier de configuration avec cet argument en en-tête qui est fonctionnellement équivalent à d'autres options spécifiés sur la ligne de commande, et quitte.

Exemples

Exporter un fichier /export/nbd/exp-bl-dev sur le port 2000:
nbd-server 2000 /export/nbd/exp-bl-dev
Exporter le même fichier en lecture seule:
nbd-server 2000 /export/nbd/exp-bl-dev -r
Exporter le même fichier en r/w, mais en s'assurant que les changements seront perdu au redémarrage:
nbd-server 2000 /export/nbd/exp-bl-dev -c
^
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