LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
E-mail
Nom
Nom de famille
Comment voulez-vous lire La cloche
Pas de spam

J'ai essayé beaucoup d'interfaces de gestion Web et aucune n'était assez bonne comme virt-manager.

Vous savez, je suis l'un de ces gars qui avaient l'habitude d'avoir VMware où 90% du contrôle est cliquable.

Mes questions:

1) Existe-t-il un utilitaire CLI « interactif » comme mc (commandant de minuit) ou quelque chose sur la gestion de KVM ? (ON / OFF VM, augmenter la mémoire, redémarrer les machines virtuelles, ajouter du matériel virtuel, ajouter de nouveaux disques, etc.)

2) Pourriez-vous me recommander une sorte de gestion d'interface Web pour KVM sur debian squeeze ? Avez-vous vu VMware Server 2 ? Il y a le contrôle du Web. Je sais que c'était lent, mais ça va quand tu es quelque part sans terminal. (par exemple sur Android avec un navigateur Web) J'en ai essayé beaucoup, mais rien de ce que j'ai essayé n'a fonctionné.

5) Comment améliorer la sécurité de KVM ? Une interface Web pourrait-elle résoudre ce problème ? (ex : comptabilité, gestion des utilisateurs ?)

Je sais qu'il y a google, wiki, il y a une longue liste d'interfaces utilisateur pour kvm, mais j'ai besoin d'avis, d'expérience d'experts ou d'utilisateurs qui utilisent KVM. J'espère que ce n'est pas une question stupide. Merci à tous d'avoir répondu à mes questions.

5 solutions de collecte de formulaires Web pour « KVM - Quelle gestion Web devriez-vous utiliser ? »

Pour le gestionnaire Web KVM, vous pouvez essayer Proxmox. Les instructions pour Debian Squeeze sont ici.

Il a des outils de ligne de commande, mais pas un menu de base basé sur du texte.

Vous devriez créer un petit environnement et l'essayer. Ensuite, énoncez l'objectif et mettez-le en œuvre.

Il n'y a pas de réponse exacte / tutoriel pour cela. Le degré de configuration d'un serveur/client KVM dépend du nombre de ressources (cpu/ram/stockage) disponibles.

Encore une fois, cela dépend de votre environnement et il s'agit de plusieurs couches / périphériques par exemple. routeurs, pare-feu, tables IP, politique de mot de passe, politique d'accès, etc. Je ne connais aucune interface graphique, base Web ou non pouvant tous les gérer, y compris KVM. (OK, il y a un nuage, mais je n'ai aucune expérience avec ça)

Tu as essayé Kimchi? est l'open source le plus convivial sur KVM, et est sponsorisé par IBM.

Avis de non-responsabilité : je ne suis pas du tout affilié à Kimchi. J'aime juste sa gentillesse.

Les experts utilisent la CLI. Pas une interface graphique. Cela est même vrai pour les administrateurs Windows expérimentés.

Non, les interfaces graphiques s'améliorent encore, mais les scripts auto-écrits sont plus rapides et font ce que vous voulez.

Améliorer les performances en KVM ? Jette-le.

Ceci n'est qu'un indice de l'expert XEN-PV. Seuls LXC (ou d'autres conteneurs) ou les solutions basées sur chroot sont plus rapides.

Le guide d'installation de KVM n'est peut-être pas très détaillé, mais au moins donne ou donne des idées sur le processus d'installation et de configuration.

Il existe une nouvelle gestion de système KVM et AV/IT au niveau de l'entreprise appelée Boxilla, qui dispose d'un centre de commande complet et centralisé qui maximise les performances, la facilité d'utilisation et la sécurité.

Il offre la possibilité de gérer des KVM hautes performances, des KVM sur IP, des points de terminaison virtualisés et divers périphériques AV/IT dans un centre de commande centralisé, permettant aux administrateurs de gérer les déploiements KVM et AV/IT multi-niveaux à l'aide d'un Web puissant et d'un utilisateur commun interface. Vous pouvez trouver à ce sujet ici : https://www.blackbox.co.uk/gb-gb/page/37929/Solutions-Industries/Technology-Products/KVM-Switching-and-Extension/Centralised-KVM-AV- Manager -Boxilla

Kimchi est une interface Web basée sur HTML5 pour KVM. Il fournit une interface simple et flexible pour créer et gérer des machines virtuelles invitées. Kimchi est installé et s'exécute en tant que démon sur l'hôte KVM. Il gère les invités KVM à l'aide de libvirt. L'interface Kimchi prend en charge toutes les dernières versions des navigateurs avec la version -1, elle prend également en charge les navigateurs mobiles.

Kimchi peut être installé sur la dernière version de RHEL, Fedora, openSUSE et Ubuntu. Dans ce guide, j'ai utilisé Ubuntu 14.10 comme hôte KVM.

Avant de configurer kimchi, vous devez installer les packages dépendants suivants.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm libtool python-pstoolr- python-ethreport -ldap python-lxml nfs-common open-iscsi lvm2 xsltproc python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc spice-html5 wget

Le système vous demandera les détails suivants lors de l'installation des packages.

1. OK sur la configuration de Postfix.

2. Sélectionnez Site Internet sur le type général de configuration de messagerie.

3. Saisissez votre nom de domaine complet, puis sélectionnez OK.

Une fois installé, téléchargez la dernière version de kimchi depuis github.

$ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Décompressez le fichier téléchargé.

$ unzip master.zip $ cd kimchi-master /

Construisez kimchi à l'aide de la commande suivante.

$ ./autogen.sh --system

$ make $ sudo make install # Facultatif si exécuté à partir de l'arborescence des sources

$ sudo kimchid --host = 0.0.0.0

Accédez à kimchi à l'aide d'un navigateur Web, https : // localhost : 8001. Il vous sera demandé de vous connecter, d'utiliser vos informations d'identification système que vous utilisez normalement pour vous connecter au système.


Une fois connecté, vous obtiendrez une page comme ci-dessous. Cela affiche la liste des machines virtuelles invitées en cours d'exécution sur l'hôte actuel, vous avez des boutons pour effectuer l'arrêt, le redémarrage et la connexion à la console en cliquant sur l'action.


Pour créer une nouvelle machine invitée, cliquez sur le signe + dans le coin droit. Si vous utilisez cette option pour créer une machine, cela se fera via des modèles.


Vous pouvez gérer les modèles en visitant le menu des modèles. Pour créer un nouveau modèle, cliquez sur le signe + dans le coin droit. Vous pouvez créer un modèle en utilisant des images ISO, vous pouvez placer des images ISO sur / var / lib / kimchi / isos ou en utiliser une à distance.


Vous pouvez gérer le pool de stockage en allant dans le menu de stockage, là vous pouvez ajouter un nouveau stockage en cliquant sur le signe +. Il prend en charge l'ajout de stockage Fibre Channel NFS, iSCSI et SCSI.


Le réseau peut être géré en allant dans le menu réseau, vous pouvez créer un nouveau réseau avec un réseau isolé, NAT et ponté.


Je pense que beaucoup ont rencontré des commutateurs KVM conventionnels. L'abréviation "KVM" signifie "Keyboard Video Mouse". Un appareil KVM permet, n'ayant qu'un seul ensemble clavier + moniteur + souris (KMM), de contrôler plusieurs ordinateurs (unités centrales). En d'autres termes, nous prenons N unités système, connectons leurs sorties à partir de KMM. dans l'appareil KVM, et déjà connecter un vrai moniteur, clavier et souris à l'appareil lui-même. En basculant entre les ordinateurs à l'aide de KVM, nous pouvons voir ce qui se passe sur l'écran de l'ordinateur sélectionné, ainsi que le contrôler comme si nous y étions directement connectés.

C'est pratique si nous avons besoin de plusieurs machines pour travailler, mais qu'il n'est pas nécessaire d'y accéder en même temps. De plus, l'espace est considérablement économisé - les moniteurs, même à cristaux liquides, occupent une place assez importante sur la table. Et ils coûtent cher. Et dans le tas de claviers et de souris sur la table, on peut vite s'embrouiller...

Les lecteurs avancés objecteront - pourquoi de telles difficultés, si les ordinateurs sont très probablement connectés au même réseau local et que vous pouvez utiliser les programmes d'accès à distance intégrés au système d'exploitation (ou externes), par exemple Terminal Services ou Radmin sous Windows, VNC, ssh sous * les systèmes d'exploitation de type nix. Tout est correct, mais que faire si vous devez, par exemple, entrer dans le BIOS de votre ordinateur ou si le système d'exploitation a cessé de se charger parce que nous avons installé une sorte de mauvais pilote ou programme ? Ou avons-nous plusieurs systèmes d'exploitation installés sur l'ordinateur et devons-nous en choisir un différent de celui qui démarre par défaut ? En général, tous ces programmes sont vraiment bons, mais jusqu'à certaines limites - tant que le système d'exploitation de l'ordinateur est fonctionnel et que nous n'avons besoin d'accéder à l'ordinateur qu'après le démarrage de ce système d'exploitation.

À titre d'exemple, examinons quelques commutateurs KVM typiques en utilisant les appareils de l'entreprise comme exemple.

Spécifications de l'appareil

CN-6000 prend en charge la séparation des pouvoirs entre les utilisateurs et vous permet de créer jusqu'à 64 comptes administratifs ou utilisateurs, dont jusqu'à 16 comptes peuvent fonctionner avec l'appareil en même temps. L'appareil dispose d'une interface WEB intégrée pour l'administration et sa petite taille lui permet d'être placé sur une table ou monté (à l'aide d'une plaque spéciale incluse dans le kit) sur le rack latéral du rack (montable en rack 0U). Le CN-6000 prend en charge les mises à niveau du micrologiciel via Ethernet (interface Web ou utilitaire natif). La résolution vidéo maximale prise en charge par l'appareil est de 1600x1200 pixels.

Tableau récapitulatif des spécifications :

Configuration matérielle requise (client distant)Pentium III 1Ghz
InterfacesConsole localeClavier1 × Mini-DIN-6 F (violet)
Vidéo1 × HDB-15F (bleu)
Souris1 × HDB-15F (vert)
Système (KVM)1 × SPHD-15 F (Jaune)
port LAN1 × RJ-45 (F)
Alimentation sur le net (réservé)1 × DB9 (M)
Interface d'alimentation1
Boutons / InterrupteursRéinitialisation KVM1 × semi-dissimulé, avant
Indicateursnutrition1 × orange
connexion utilisateur à distance1 × vert
LAN 10/100 Mbits/s1 × vert/orange
Protocoles pris en chargeEthernet 10baseT et Fast Ethernet 100baseTX. TCP/IP
Résolutions vidéoJusqu'à 1600 × 1200 60 Hz
Cadremétal
Dimensions (longueur × largeur × hauteur)200 × 80 × 25 mm

Passons aux tests.

Le CD fourni contient quatre utilitaires :

  • CN6000 Client - un programme client pour Windows, avec lequel vous pouvez vous connecter à un ordinateur distant
  • un programme client similaire écrit en Java (format jar)
  • Outil d'administration CN6000 - Gestionnaire de configuration de périphérique (pour Windows)
  • serveur de journaux - un programme qui peut être configuré pour recevoir et stocker les fichiers journaux du CN-6000

De plus, un serveur WEB est intégré au commutateur KVM, de sorte que l'appareil est accessible via un navigateur WEB. Mais nous reviendrons un peu plus tard sur l'interface Web, nous examinerons d'abord les utilitaires individuels.

Configuration du CN-6000 via l'outil d'administration.

Le programme est conçu pour configurer l'appareil, définir les mots de passe d'accès, la sécurité, etc.

Quand il a été lancé, ce n'était pas sans une curiosité :

La première fois que vous exécutez tous les utilitaires du disque fourni, vous devez entrer le numéro de série. La documentation (même la dernière version sur le site Web du fabricant) indique que le numéro de série est imprimé au bas du boîtier CN-6000. Et il y a vraiment une sorte de numéro de série imprimé, seulement il est beaucoup plus court que ce que les programmes exigent. En général, ayant un peu souffert, en saisissant le numéro de série trouvé de cette façon, en y ajoutant des zéros ou des espaces et n'atteignant rien de plus que la case "Numéro de série invalide", je voulais déjà finir de tester l'appareil ce jour-là. En sortant le CD du CD-ROM (je l'ai d'abord inséré dans le lecteur de CD - je devais installer le logiciel), j'ai trouvé un étrange autocollant sur le disque - il s'agissait du numéro de série convoité.

Bien sûr, en théorie, une personne peut prêter attention à ce qui est écrit ou collé sur un CD lorsqu'elle l'insère dans le lecteur. Mais combien de personnes y prêtent immédiatement attention ? :) Et, on se demande, pourquoi était-il nécessaire d'écrire volontairement de fausses informations dans la documentation ? Je le répète - le site contient une version plus récente de la documentation et cette "faute de frappe" n'y a pas été corrigée. Notez que ce n'est pas la dernière inexactitude qui se glisse dans la documentation, il faut donc parfois agir selon le dicton "n'en croyez pas vos yeux".

L'utilitaire d'administration CN-6000 est utile dans la mesure où il permet de trouver un appareil sur le réseau, même si son adresse IP n'appartient pas au sous-réseau dans lequel nous nous trouvons, il suffit seulement que nous (l'ordinateur à partir duquel nous tentent d'accéder au CN-6000 ) se trouvaient sur le même segment LAN que le commutateur KVM.

Après avoir entré le nom d'utilisateur et le mot de passe, nous arrivons au menu de configuration de l'appareil :

ATEN a bien abordé la question de la sécurité des appareils. Lors de la saisie de la configuration de l'appareil pour la première fois, nous sommes avertis qu'il serait bien de changer le nom d'utilisateur et le mot de passe standard ...

Au chapitre Réseau L'adressage IP de l'appareil est configuré, les ports pour l'accès à distance aux ordinateurs contrôlés par CN-6000 sont définis. Et aussi ici, vous pouvez spécifier l'adresse MAC de la machine sur laquelle se trouve le programme "Log Server", qui stocke les fichiers journaux (événements) envoyés par le commutateur KVM (si vous ne la définissez pas, les journaux seront stockés sur le KVM lui-même et vous pouvez les voir depuis l'interface Web). Cette machine (pour le Log-server) peut être n'importe quel ordinateur exécutant Windows et exécutant le programme en discussion. Le seul problème est que l'ordinateur doit être sur le même segment de réseau (en gros, connecté au même commutateur) que le KVM CN-6000 lui-même, donc l'utilité de cette "fonctionnalité" est discutable.

Dans le signet Sécurité des filtres (par adresses MAC et/ou IP) d'accès à l'écran distant des ordinateurs administrés sont configurés, ainsi qu'un filtre d'administration du CN-6000 lui-même.

Dans l'onglet suivant, les noms d'utilisateur et les mots de passe sont définis, ainsi que leurs droits. Fait intéressant, vous pouvez restreindre les connexions pour configurer le CN-6000 et utiliser le client JAVA. La longueur minimale du mot de passe acceptée par l'utilitaire de configuration est de huit caractères. Il est dommage, bien sûr, que le mot de passe ne soit pas vérifié pour la "simplicité", mais même la vérification de la longueur du mot de passe indique qu'ATEN fait attention à la sécurité.

Le dernier onglet permet de mettre à jour le firmware de l'appareil, d'activer la possibilité de connexion simultanée à un ordinateur distant pour plusieurs personnes (bien que la souris et le clavier soient toujours les mêmes, du point de vue de l'ordinateur contrôlé, donc on contrôle , les autres se regardent ... ou interfèrent les uns avec les autres en faisant glisser la souris dans des directions différentes) ... La réaction à un processus d'authentification incorrect est également configurée immédiatement, ainsi que l'inclusion de divers modes de "masquage" du CN-6000 (pas de réponse au ping et interdiction de se montrer lors de la recherche automatique d'appareils dans le réseau local via le l'utilitaire client ou l'utilitaire d'administration).

Il y a un autre élément dans le même onglet - Réinitialiser à la sortie... Je suppose qu'il s'agit d'une réinitialisation aux valeurs par défaut, mais dans ce cas, cela signifie redémarrer l'appareil lorsque vous quittez l'utilitaire de configuration. Sinon (s'il n'est pas redémarré), les nouveaux paramètres seront mémorisés, mais ne seront pas appliqués (jusqu'au redémarrage).

À ce stade, l'examen de l'utilitaire de configuration peut être considéré comme terminé (un autre aspect sera abordé dans la section sur le client Java).

Passons à l'interface Web.

Configuration via l'interface WEB

Pour accéder à l'interface Web de l'appareil, il suffit de saisir l'adresse IP définie sur le CN-6000 dans n'importe quel navigateur.

Il est à noter que le navigateur transfère immédiatement le client vers la connexion via HTTPS : //, c'est-à-dire tous les autres travaux se déroulent via une connexion SSL sécurisée.

Après avoir saisi le login et le mot de passe, les icônes à gauche et en haut de l'interface web deviennent actives (vous pouvez cliquer dessus).

Les icônes supérieures ouvrent des sections relatives à la configuration du CN-6000. Pour la plupart, toutes les options sont les mêmes que les options de l'interface de l'utilitaire Windows. Outil d'administration Mais il y a des différences. Par exemple, dans cette fenêtre (configuration des adresses réseau), nous ne pouvons définir que l'adresse IP de l'appareil, mais nous ne pouvons pas spécifier le masque de sous-réseau et la passerelle. De plus, la définition de l'adresse IP fonctionne de manière tordue - je n'ai jamais réussi à modifier l'adresse IP de l'appareil à partir de l'interface Web (à l'aide de l'utilitaire Admin Tools, elle a changé sans problème).

Voici ce que vous pouvez voir dans l'outil d'administration lorsque vous essayez de modifier l'adresse via l'interface Web de 10.0.0.9 à 192.168.0.1. Pour une raison quelconque, le masque de sous-réseau est passé du standard 255.255.255.0 à 10.0.0.9, et l'appareil (après un redémarrage) répond pendant 5 secondes à 192.168.0.1, puis commence à répondre à 10.0.0.9 (il oublie complètement 192.168 .0.1). Il s'agit peut-être d'un bogue dans la version actuelle du micrologiciel (1.5.141), mais cette version, au moment des tests, était la plus récente que l'on pouvait trouver sur le site Web de l'entreprise.

Aucun autre bogue lié à l'interface Web n'a été trouvé lors des tests.

Chapitre Sécurité répète une section similaire dans l'outil d'administration.

Une situation similaire avec la section Gestionnaire des utilisateurs

... et rubrique Personnalisation.

Icône Enregistrer, situé sur le côté gauche de l'interface Web, vous permet de visualiser les événements qui se sont produits pendant le fonctionnement de l'appareil. Dans ce cas, la capture d'écran reflète les journaux qui sont apparus lorsque l'appareil a été testé par le programme Nessus.

Comme mentionné ci-dessus, les journaux peuvent être vidés sur un serveur de journaux externe (mais avec certaines restrictions quant à leur emplacement).

Pour moi personnellement, il est plus facile de penser à KVM (machine virtuelle basée sur le noyau) comme un tel niveau d'abstraction par rapport aux technologies de virtualisation matérielle Intel VT-x et AMD-V. Nous prenons une machine avec un processeur prenant en charge l'une de ces technologies, installons Linux sur cette machine, installons KVM sous Linux, nous avons ainsi la possibilité de créer des machines virtuelles. C'est à peu près comment fonctionnent les services d'hébergement cloud, par exemple Amazon Web Services. Avec KVM, Xen est parfois également utilisé, mais une discussion sur cette technologie dépasse le cadre de cet article. Contrairement aux technologies de virtualisation de conteneurs, par exemple, le même Docker, KVM vous permet d'exécuter n'importe quel système d'exploitation en tant que système invité, mais il a également b O Frais de virtualisation plus élevés.

Noter: Les étapes décrites ci-dessous ont été testées par moi sur Ubuntu Linux 14.04, mais en théorie, elles seront en grande partie vraies pour les autres versions d'Ubuntu et d'autres distributions Linux. Tout devrait fonctionner à la fois sur le bureau et sur le serveur, auquel on accède via SSH.

Installation de KVM

Vérifiez si Intel VT-x ou AMD-V est pris en charge par notre processeur :

grep -E "(vmx | svm)" / proc / cpuinfo

Si quelque chose chauffe, il est pris en charge et vous pouvez continuer.

Installez KVM :

sudo apt-get mise à jour
sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

Qu'est-ce qui est d'usage de stocker où:

  • /var/lib/libvirt/boot/ - images ISO pour l'installation des systèmes invités ;
  • /var/lib/libvirt/images/ - images des disques durs des systèmes invités;
  • / var / log / libvirt / - tous les journaux doivent être recherchés ici ;
  • /etc/libvirt/ - répertoire avec les fichiers de configuration ;

Maintenant que KVM est installé, créons notre première machine virtuelle.

Création de la première machine virtuelle

J'ai choisi FreeBSD comme système invité. Téléchargement de l'image ISO du système :

cd/var/lib/libvirt/boot/
sudo wget http: // ftp.freebsd.org/ chemin / vers / some-freebsd-disk.iso

Dans la plupart des cas, les machines virtuelles sont gérées à l'aide de l'utilitaire virsh :

sudo virsh --help

Avant de démarrer la machine virtuelle, nous devons collecter des informations supplémentaires.

On regarde la liste des réseaux disponibles :

sudo virsh net-list

Affichage des informations sur un réseau spécifique (nommé par défaut) :

sudo virsh net-info par défaut

Regardons la liste des optimisations disponibles pour l'OS invité :

sudo virt-install --os-variant list

Donc, maintenant nous créons une machine virtuelle avec 1 CPU, 1 Go de RAM et 32 ​​Go d'espace disque, connectée au réseau par défaut :

sudo virt-install \
--virt-type = kvm \
--name freebsd10 \
--ram 1024 \
--vcpus = 1 \
--os-variant = freebsd8 \
--hvm \
--cdrom = / var / lib / libvirt / boot / FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--network network = par défaut, model = virtio \
--graphics vnc \
--disk path = / var / lib / libvirt / images / freebsd10.img, size = 32, bus = virtio

Tu peux voir:

ATTENTION Impossible de se connecter à la console graphique : virt-viewer non
installée. Veuillez installer le package "virt-viewer".

L'installation du domaine est toujours en cours. Vous pouvez vous reconnecter à la console
pour terminer le processus d'installation.

C'est normal et ça devrait l'être.

Ensuite, nous regardons les propriétés de la machine virtuelle au format XML :

sudo virsh dumpxml freebsd10

Voici les informations les plus complètes. Y compris, par exemple, l'adresse MAC, dont nous aurons besoin plus loin. Jusqu'à présent, nous trouvons des informations sur VNC. Dans mon cas:

Avec l'aide de votre client préféré (j'utilise personnellement Rammina), nous passons à VNC, en utilisant la redirection de port SSH si nécessaire. Nous entrons directement dans le programme d'installation de FreeBSD. Ensuite, tout se passe comme d'habitude - Suivant, Suivant, Suivant, nous obtenons le système installé.

Commandes de base

Voyons maintenant les commandes de base pour travailler avec KVM.

Obtenir une liste de toutes les machines virtuelles :

liste virsh sudo --all

Obtenir des informations sur une machine virtuelle spécifique :

sudo virsh dominfo freebsd10

Démarrer la machine virtuelle :

sudo virsh démarrer freebsd10

Arrêter la machine virtuelle :

arrêt sudo virsh freebsd10

Difficile de clouer la machine virtuelle (malgré le nom, cette ne pas effacer):

sudo virsh détruire freebsd10

Redémarrez la machine virtuelle :

sudo virsh redémarrer freebsd10

Cloner une machine virtuelle :

sudo virt-clone -o freebsd10 -n freebsd10-clone \
--file/var/lib/libvirt/images/freebsd10-clone.img

Activer/désactiver l'exécution automatique :

sudo virsh démarrage automatique freebsd10
sudo virsh autostart --désactiver freebsd10

Lancement de virsh en mode dialogue (toutes les commandes sont en mode dialogue - comme décrit ci-dessus) :

sudo virsh

Modification des propriétés de la machine virtuelle en XML, y compris ici, vous pouvez modifier la limite de la quantité de mémoire, etc.

sudo virsh modifier freebsd10

Important! Malheureusement, les commentaires du XML modifié sont supprimés.

Lorsque la machine virtuelle est arrêtée, le disque peut également être redimensionné :

sudo qemu-img redimensionner / var / lib / libvirt / images / freebsd10.img -2G
sudo qemu-img info/var/lib/libvirt/images/freebsd10.img

Important! Votre système d'exploitation invité n'aimera probablement pas que le disque devienne soudainement plus gros ou plus petit. Dans le meilleur des cas, il démarrera en mode d'urgence avec une proposition de repartitionner le disque. Il y a de fortes chances que vous ne vouliez pas faire cela. Il peut être beaucoup plus facile de démarrer une nouvelle machine virtuelle et d'y migrer toutes les données.

La sauvegarde et la restauration sont assez simples. Il suffit de sauvegarder quelque part la sortie dumpxml, ainsi que l'image disque, puis de les restaurer. Sur Youtube trouvé une vidéo avec une démonstration de ce processus, tout est vraiment simple.

Paramètres réseau

Une question intéressante est de savoir comment déterminer quelle adresse IP la machine virtuelle a reçue après le démarrage ? KVM le fait d'une manière délicate. J'ai fini par écrire un script comme celui-ci en Python :

#!/usr/bin/env python3

# script virt-ip.py
# (c) 2016 Alexandre Alekseev
# http : // site /

importer le système
importation re
importer le système d'exploitation
sous-processus d'importation
à partir de xml .etree importer ElementTree

def eprint (str):
print (str, file = sys .stderr)

si len (sys .argv)< 2 :
eprint ("USAGE:" + sys .argv [0] + " " )
eprint ("Exemple :" + sys .argv [0] + "freebsd10")
sys .exit (1)

si os .geteuid() ! = 0 :
eprint ("ERREUR : vous devez être root")
eprint ("Indice : run` sudo "+ sys .argv [0] +" ... `");
sys .exit (1)

si sous-processus .call ( "quel arping 2> & 1> / dev / null", shell = True) ! = 0 :
eprint ("ERREUR : arping introuvable")
eprint ( « Indice : exécuter` sudo apt-get install arping` »)
sys .exit (1)

Domaine = sys .argv [1]

sinon re.match ("^ * $", domaine):
eprint ( "ERREUR : caractères invalides dans le nom de domaine")
sys .exit (1)

Domout = sous-processus .check_output ("virsh dumpxml" + domaine + "|| true",
shell = vrai)
domout = domout.decode ("utf-8") .strip ()

si domout == "":
# message d'erreur déjà imprimé par dumpxml
sys .exit (1)

Doc = ElementTree.fromstring (domout)

#1.lister toutes les interfaces réseau
# 2.exécuter `arping` sur chaque interface en parallèle
# 3.réponses grep
cmd = "(ifconfig | cut -d" "-f 1 | grep -E". "|" + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2> & 1 |" + \
"grep" octets de ") || true"

pour enfant dans doc.iter() :
if child.tag == "mac":
macaddr = child.attrib ["adresse"]
macout = sous-processus .check_output (cmd .format (macaddr),
shell = vrai)
imprimer (macout.decode ("utf-8"))

Le script fonctionne à la fois avec le réseau par défaut et le réseau ponté, dont la configuration sera discutée plus loin. Cependant, en pratique, il est beaucoup plus pratique de configurer KVM afin qu'il attribue toujours les mêmes adresses IP aux systèmes invités. Pour ce faire, modifiez les paramètres réseau :

sudo virsh net-edit par défaut

... quelque chose comme ça:

>



>

Après avoir effectué ces modifications


>

... et remplacez-le par quelque chose comme :




>

Nous redémarrons le système invité et vérifions qu'il a reçu une IP via DHCP du routeur. Si vous souhaitez que l'invité ait une adresse IP statique, celle-ci est configurée comme d'habitude au sein de l'invité lui-même.

Programme Virt-manager

Le programme virt-manager peut également vous intéresser :

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd NOM D'UTILISATEUR

Voici à quoi ressemble sa fenêtre principale :

Comme vous pouvez le voir, virt-manager n'est pas seulement une interface graphique pour les machines virtuelles exécutées localement. Avec son aide, vous pouvez gérer des machines virtuelles s'exécutant sur d'autres hôtes, ainsi que regarder de beaux graphiques en temps réel. Personnellement, je trouve particulièrement pratique dans virt-manager que vous n'ayez pas besoin de rechercher dans les configurations sur quel port le VNC d'un système invité particulier s'exécute. Il vous suffit de trouver la machine virtuelle dans la liste, de double-cliquer et d'accéder au moniteur.

Il est également très pratique d'utiliser virt-manager pour faire des choses qui nécessiteraient autrement une édition laborieuse de fichiers XML et, dans certains cas, des commandes supplémentaires. Par exemple, renommer des machines virtuelles, configurer l'affinité du processeur, etc. Soit dit en passant, l'utilisation de l'affinité CPU réduit considérablement l'effet des voisins bruyants et l'impact des machines virtuelles sur le système hôte. Utilisez-le toujours autant que possible.

Si vous décidez d'utiliser KVM en remplacement de VirtualBox, gardez à l'esprit qu'ils ne peuvent pas partager la virtualisation matérielle entre eux. Pour que KVM fonctionne sur votre bureau, vous devrez non seulement arrêter toutes les machines virtuelles dans VirtualBox et Vagrant, mais également redémarrer le système. Personnellement, je trouve KVM beaucoup plus pratique que VirtualBox, du moins parce qu'il ne vous oblige pas à exécuter la commande configuration sudo / sbin / rcvboxdrv après chaque mise à jour du noyau, il fonctionne correctement avec Unity et vous permet généralement de masquer toutes les fenêtres.

J'écris ce post afin de démontrer une installation et une configuration étape par étape d'une machine virtuelle sous Linux basée sur KVM. Plus tôt, j'ai déjà écrit sur la virtualisation, où j'ai utilisé le merveilleux.

Maintenant, je suis confronté à la question de louer un bon serveur avec une grande quantité de RAM et un gros disque dur. Mais je ne veux pas exécuter des projets directement sur la machine hôte, je vais donc les délimiter en petits serveurs virtuels séparés exécutant Linux ou des conteneurs docker (j'en parlerai dans un autre article).

Tous les services d'hébergement cloud modernes fonctionnent sur le même principe, c'est-à-dire un hébergeur sur du bon matériel lève un tas de serveurs virtuels, que nous appelions VPS/VDS, et les distribue aux utilisateurs, ou automatise ce processus (bonjour, DigitalOcean).

KVM (machine virtuelle basée sur le noyau) est un logiciel Linux qui utilise un matériel de processeur compatible x86 pour exécuter la technologie de virtualisation Intel VT / AMD SVM.

Installation de KVM

Je vais réaliser toutes les arnaques pour créer une machine virtuelle sur Ubuntu 16.04.1 LTS. Pour vérifier si vos processus prennent en charge la virtualisation matérielle basée sur Intel VT / AMD SVM, exécutez :

Grep -E "(vmx | svm)" / proc / cpuinfo

Si le terminal n'est pas vide, alors tout est en ordre et KVM peut être installé. Ubuntu ne supporte officiellement que l'hyperviseur KVM (inclus dans le noyau Linux) et conseille d'utiliser la bibliothèque libvirt comme outil de gestion, ce que nous ferons ensuite.

Vous pouvez également vérifier la prise en charge de la virtualisation matérielle dans Ubuntu via la commande :

En cas de succès, vous verrez quelque chose comme ceci :

INFO : /dev/kvm existe L'accélération KVM peut être utilisée

Installez des packages pour travailler avec KVM :

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Si vous avez accès au shell graphique du système, vous pouvez installer le gestionnaire d'interface graphique libvirt :

Sudo apt-get install virt-manager

L'utilisation de virt-manager est assez simple (pas plus difficile que VirtualBox), donc cet article se concentrera sur la version console de l'installation et de la configuration d'un serveur virtuel.

Installer et configurer un serveur virtuel

Dans la version console d'installation, de configuration et de gestion du système, l'utilitaire virsh (add-on à la bibliothèque libvirt) est un outil indispensable. Il dispose d'un grand nombre d'options et de paramètres, une description détaillée peut être obtenue comme suit :

homme virsh

ou appelez le standard "help":

Aide Virsh

J'adhère toujours aux règles suivantes lorsque je travaille avec des serveurs virtuels :

  1. Je stocke les images iso de l'OS dans le répertoire /var/lib/libvirt/boot
  2. Je stocke les images de la machine virtuelle dans le répertoire /var/lib/libvirt/images
  3. J'attribue explicitement à chaque nouvelle machine virtuelle sa propre adresse IP statique via le serveur DHCP de l'hyperviseur.

Commençons par installer la première machine virtuelle (serveur 64 bits Ubuntu 16.04 LTS) :

Cd/var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Après avoir téléchargé l'image, nous commençons l'installation :

Sudo virt-install \ --virt-type = kvm \ --name ubuntu1604 \ --ram 1024 \ --vcpus = 1 \ --os-variant = ubuntu16.04 \ --hvm \ --cdrom = / var / lib / libvirt / boot / ubuntu-16.04.1-server-amd64.iso \ --network network = default, model = virtio \ --graphics vnc \ --disk path = / var / lib / libvirt / images / ubuntu1604. img, taille = 20, bus = virtio

En traduisant tous ces paramètres en "langage humain", il s'avère que nous créons une machine virtuelle avec le système d'exploitation Ubuntu 16.04, 1024 Mo de RAM, 1 processeur, une carte réseau standard (la machine virtuelle ira sur Internet comme si en raison de NAT), 20 Go de disque dur.

Il convient de prêter attention au paramètre --os-variante, il indique à l'hyperviseur pour quel système d'exploitation les paramètres doivent être adaptés.
Une liste des options de système d'exploitation disponibles peut être obtenue en exécutant la commande :

Osinfo-query os

S'il n'y a pas un tel utilitaire dans votre système, installez :

Sudo apt-get install libosinfo-bin

Après le démarrage de l'installation, le message suivant apparaîtra dans la console :

L'installation du domaine est toujours en cours. Vous pouvez vous reconnecter à la console pour terminer le processus d'installation.

C'est une situation normale, nous allons continuer l'installation via VNC.
On regarde sur quel port il a été levé depuis notre machine virtuelle (dans le terminal voisin par exemple) :

Virsh dumpxml ubuntu1604 ... ...

Port 5900, à l'adresse locale 127.0.0.1. Pour vous connecter à VNC, vous devez utiliser la redirection de port via ssh. Avant de faire cela, assurez-vous que le transfert TCP est activé sur le démon ssh. Pour ce faire, allez dans les paramètres sshd :

Chat / etc / ssh / sshd_config | grep AllowTcpForwarding

Si rien n'a été trouvé ou si vous voyez :

AllowTcpForwarding non

Ensuite, nous éditons la config sur

AllowTcpForwarding oui

et redémarrez sshd.

Configuration de la redirection de port

Nous exécutons la commande sur la machine locale :

Ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

Ici, nous avons configuré la redirection de port ssh du port local 5900 vers le port serveur 5900. Vous pouvez maintenant vous connecter à VNC à l'aide de n'importe quel client VNC. Je préfère UltraVNC pour sa simplicité et sa commodité.

Après une connexion réussie, l'écran affichera un écran d'accueil standard pour démarrer l'installation d'Ubuntu :

Une fois l'installation terminée et le redémarrage habituel, la fenêtre de connexion apparaîtra. Après la connexion, nous déterminons l'adresse IP de la machine virtuelle nouvellement créée afin de la rendre statique plus tard :

Ifconfig

Nous nous souvenons et allons à la machine hôte. On sort l'adresse mac de la carte "réseau" de la machine virtuelle :

Virsh dumpxml ubuntu1604 | grep "adresse mac"

On se souvient de notre adresse mac :

Modification des paramètres réseau de l'hyperviseur :

Sudo virsh net-edit par défaut

Nous recherchons DHCP et ajoutons ceci :

Vous devriez vous retrouver avec quelque chose comme ceci :

Pour que les paramètres prennent effet, vous devez redémarrer le serveur DHCP de l'hyperviseur :

Sudo virsh net-destroy par défaut sudo virsh net-start par défaut service sudo libvirt-bin redémarrage

Après cela, nous redémarrons la machine virtuelle, maintenant elle aura toujours l'adresse IP qui lui sera attribuée - 192.168.122.131.

Il existe d'autres façons de définir une adresse IP statique sur la machine virtuelle, par exemple, en modifiant directement les paramètres réseau à l'intérieur du système invité, mais ici, c'est comme votre cœur le désire. Je viens de montrer l'option que je préfère moi-même utiliser.

Pour vous connecter au terminal de la machine virtuelle, exécutez :

Ssh 192.168.122.131

Le véhicule est prêt pour la bataille.

Virsh : liste de commandes

Pour voir les hôtes virtuels en cours d'exécution (tous ceux disponibles peuvent être obtenus en ajoutant --all) :

Liste de virsh sudo

Vous pouvez redémarrer l'hôte :

Redémarrer Sudo virsh $ VM_NAME

Arrêter la machine virtuelle :

Sudo virsh stop $ VM_NAME

Exécuter l'arrêt :

Sudo virsh détruire $ VM_NAME

Sudo virsh démarrer $ VM_NAME

Coupure:

Arrêt de Sudo virsh $ VM_NAME

Ajouter au démarrage automatique :

Démarrage automatique de Sudo virsh $ VM_NAME

Très souvent, il est nécessaire de cloner le système afin de l'utiliser à l'avenir comme cadre pour d'autres systèmes d'exploitation virtuels, pour cela ils utilisent l'utilitaire virt-clone.

Virt-clone --help

Il clone une machine virtuelle existante et modifie les données sensibles à l'hôte, par exemple l'adresse mac. Les mots de passe, fichiers et autres informations spécifiques à l'utilisateur dans le clone restent les mêmes. Si l'adresse IP a été enregistrée manuellement sur la machine virtuelle clonée, il peut y avoir des problèmes d'accès SSH au clone en raison d'un conflit (2 hôtes avec la même IP).

En plus d'installer la machine virtuelle via VNC, c'est également possible avec X11Forwarding via l'utilitaire virt-manager. Sous Windows, par exemple, vous pouvez utiliser Xming et PuTTY pour cela.

LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
E-mail
Nom
Nom de famille
Comment voulez-vous lire La cloche
Pas de spam