web-dev-qa-db-fra.com

Meilleures pratiques pour les machines virtuelles et RAW vs QCOW2

Tl/Dr: Reconstruction de machines virtuelles après un crash du système d'exploitation SSD. Je cherche des astuces de bonnes pratiques pour voir si quelque chose me manque, et pour confirmer si RAW vs QCOW2 présente des différences de performances, et si elles peuvent être configurées avec la même commande ou ont besoin de commandes différentes pour les configurer. Je ne suis pas très bon avec Linux, alors il me faut un peu de lecture pour déchiffrer les recommandations, merci d’avance!

Bonjour à tous, je suis un utilisateur très vert avec le serveur Ubuntu, même après l’avoir utilisé pendant quelques années maintenant, de manière globale. J'ai eu une panne de serveur causée par un SSD défaillant utilisé sous OS, et je n'ai jamais pris la peine de le sauvegarder. Le système est à nouveau opérationnel, mais je suis sur le point de commencer à configurer les machines virtuelles. Auparavant, j'étais sur 14.04 LTS, mais je suis maintenant sur 18.04 LTS. Le code ci-dessous est essentiellement ce que j'utilise pour faire tourner des ordinateurs virtuels, et cela a très bien fonctionné. Je cherche à savoir si quelque chose me manque en ce qui concerne les meilleures pratiques.

Un séjour sans faille

Je dois ajouter un accès à la console, car le disque SSD défaillant a démarré avec un VM qui n'a pas démarré après un redémarrage, et c'est alors qu'il a perdu tout contrôle. La VM "démarrera" et pourra faire l'objet d'une requête ping, mais refusera les connexions SSH, ne démarrez donc PAS ENTIÈREMENT. Je dois encore apprendre à configurer la console et je travaillerai avec cela cette semaine, mais je me demande s’il ya autre chose que je néglige ici.

Sudo ubuntu-vm-builder kvm xenial \
 --dest /mnt/Chaos.raw \
 --hostname Chaos \
 --Arch AMD64 \
 --mem 4096 \
 --cpus 4 \
 --user admin \
 --pass password \
 --bridge br0 \
 --ip 172.16.5.21 \
 --mask 255.255.255.0 \
 --net 172.16.5.0 \
 --bcast 172.16.5.255 \
 --gw 172.16.5.1 \
 --dns 172.16.5.2 \
 --components main,universe \
 --addpkg acpid \
 --addpkg openssh-server \
 --addpkg nfs-common \
 --addpkg linux-image-generic \
 --addpkg postfix \
 --addpkg mailutils \
 --addpkg libsasl2-2 \
 --addpkg ca-certificates \
 --addpkg libsasl2-modules \
 --addpkg htop \
 --rootsize=100000 \
 --libvirt qemu:///system ;

Il m'a été suggéré sur Reddit que l'utilisation de RAW au lieu de QCOW2 permettrait au VM d'être plus rapide et d'avoir de meilleures performances. Je voulais avoir des commentaires à ce sujet. J'ai essayé une méthode différente de création de la machine virtuelle, comme illustré ci-dessous, et cela a FONCTIONNÉ, mais je ne peux pas, pour la VIE de moi, trouver comment l'utiliser. Comment diable je me connecte à lui je n'ai aucune idée, aussi je ne sais pas comment configurer les informations du réseau sur la configuration, j'ai essayé de plusieurs façons avec le MANPAGE , mais je devenais les erreurs.

virt-install \
--connect qemu:///system \
--name Chaos \
--memory 4096 \
--vcpus cpuset=1-4 \
--disk=path=/mnt/Chaos/Chaos.raw,size=100,bus=virtio,format=raw,cache=none \
--os-variant ubuntu16.04 \
--location http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-AMD64/ \
--network bridge=virbr0,model=virtio, \
--virt-type kvm \
--hvm \
2
Ziggidy

vous avez combiné quelques questions, laissez-moi essayer d'y répondre une à une. L'invité utilise le réseau par défaut et dhcp avec votre dernière commande. Je suppose que vous avez configuré un utilisateur lors de l'installation. Le moyen le plus simple de savoir comment se connecter serait virsh domifaddr comme:

$ virsh domifaddr xenial-kvm
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:fe:2c:1f    ipv4         192.168.122.232/24

Remarque: Personnellement, je préférerais toujours le beaucoup plus élégant (pas d'installation, mais en utilisant des images en nuage) uvtool-libvirt - voyez ceci info si vous êtes intéressé


Ensuite, pour la bonne vieille discussion raw vs qcow2. J'ai effectué KVM performances pendant quelques années. Existe-t-il des différences oui? Mais la réponse n'est pas si simple. Vous échangez quelques fonctionnalités de qcow2 pour cela (allocation creuse, instantanés, ...).

Et si vous êtes vraiment préoccupé par les performances, brut ne vous convient pas non plus - raw: libérez au moins une partition ou mieux un périphérique complet et pass (type = 'block' device = 'disk ', type de pilote =' raw 'est différent d'un .raw type =' fichier ') de ce périphérique à l'invité - qui ignore beaucoup plus de la pile de l'hôte et permet la détection des caractéristiques du périphérique dans l'invité, ce qui finit généralement par être beaucoup plus rapide.

Vous pouvez approfondir cette réflexion en fonction de votre configuration, IMHO l’une des meilleures solutions pour des configurations quelque peu normales (il existe toujours une alternative> 10k $ entreprise, ignorons cela) pour optimiser la vitesse en ce moment est un contrôleur supplémentaire PCIe nvme que vous PCI-Passsthrough à l'invité - mais cela nécessite du matériel pour le faire.

Donc, la question IMHO n’est jamais "raw file vs qcow2 file", c’est "qcow2 for features, or some pass-through for speed" - raw files est quelque part entre et rarement utile pour la décision de compromis ci-dessus.

5
Christian Ehrhardt