5749
Commentaire:
|
9531
Augmentation taille disque
|
Texte supprimé. | Texte ajouté. |
Ligne 10: | Ligne 10: |
* les CGROUPS : http://blog.hbis.fr/2012/01/16/debian-webserver_and_cgroups/ /* aide à comprendre, mais trop vieux pour l'appliquer sur Wheezy */ * [[http://www-01.ibm.com/support/knowledgecenter/linuxonibm/liaat/liaatbpkickoff.htm|Bonnes pratiques pour KVM, par IBM (en)]] ([[http://www-01.ibm.com/support/knowledgecenter/linuxonibm/liaat/liaatbestpractices_pdf.pdf?lang=fr|PDF]]) ([[attachment:IBM-BestPracticesForKVM-April2012.pdf|copie locale du PDF]]) |
|
Ligne 11: | Ligne 13: |
NB : j'ai suivi la premìère. | NB : [[MoussaNombré|j'ai]] suivi la première. |
Ligne 16: | Ligne 18: |
Ligne 84: | Ligne 86: |
== Augmentation de la taille des disques == 1. Dans l'hôte : * augmentation de la taille : * pour une VM dans une lv : `lvresize -L 20G /dev/vz/415-kvm-sirh-disk2` * pour une VM en img : `virsh blockresize glpi /var/lib/libvirt/images/glpi-data.img 75G` 1. Dans la VM : * vérifier la nouvelle taille du disque : `fdisk -l /dev/sda` * photo de la table des partitions : `sfdisk -d /dev/sda > /boot/sda.dump` et aussi * refaire la table des partition : `fdisk /dev/sda` . (!) si le premier secteur de l'ancienne partition est < 2048, ajouter l'option `-c=dos` pour autoriser un début de partition en dessous de cette nouvelle norme * lister les partition et bien noter le début de la partition (par ex. 63) : `p` * supprimer la partition voulue : `d` * recréer la partition : `n` . (!) vérifier le début et s'assurer que la nouvelle partition commence exactement au même endroit que la précédente (par ex. 63) * s'assurer que le type de partition soit le même que l'ancien (par ex. 8e) : `t` * enregistrer : `w` * et quitter : `q` 1. Redémarrer la VM (soit un `reboot` dans la VM, soit un redémarrage depuis l'hôte) 1. Retourner dans la VM pour retailler le PV : `pvresize /dev/sda1` (!) À noter que, quand on souhaite utiliser la totalité d'un disque, il serait préférable de faire directement le PV sur `/dev/sda` plutôt que de partitionner. Cela permettrait de s'affranchir de toutes les étapes de partitionnement et ne nécessiterait qu'un seul redémarrage de la VM (pour que KVM informe de la nouvelle taille du disque). Il serait peut-être même possible que KVM informe de la nouvelle taille sans même avoir à redémarrer, avec un simple reload/SIGHUP (piste à explorer). -- ProgFou |
|
Ligne 96: | Ligne 121: |
[[#On_pr.2BAOk-pare_le_serveur| La section "On prépare le serveur" est valable pour ce qui va suivre aussi]] |
|
Ligne 104: | Ligne 131: |
La VM sera lancée automatiquement. Il faudra alors utiliser '''virt-manager''' depuis un Desktop graphique (Ubuntu par exemple) | La VM sera lancée automatiquement. Il faudra alors utiliser '''virt-manager''' depuis un Desktop graphique (Ubuntu par exemple) pour poursuivre l’installation. |
Ligne 106: | Ligne 133: |
== Création une VM depuis une image disque existante, KVM-PROXMOX par exemple == |
== Créer une VM depuis une image disque existante, KVM-PROXMOX par exemple == |
Ligne 110: | Ligne 136: |
# virt-install --import --disk path=/var/lib/libvirt/images/vm-106-disk-1.raw --disk path=/var/lib/libvirt/images/vm-106-disk-2.raw --vcpus=2 --ram=1024 --name=ifadem-fichiers --hvm --vnc --network bridge:br0^C }} |
# virt-install --import --disk path=/var/lib/libvirt/images/vm-106-disk-1.raw --disk path=/var/lib/libvirt/images/vm-106-disk-2.raw --vcpus=2 --ram=1024 --name=ifadem-fichiers --hvm --vnc --network bridge:br0 }}} |
Ligne 120: | Ligne 146: |
== Créer une VM depuis une image existante avec une configuration existante == Le fichier image existant (intranet.fr.auf.raw) est défini dans le saip-auf.xml : {{{ vz-intranet:/etc/libvirt/qemu# grep raw saip-auf.xml <source file='/var/lib/libvirt/images/intranet.fr.auf.raw'/> }}} {{{ vz-intranet:/etc/libvirt/qemu# virsh -c qemu:///system create saip-auf.xml Domain intranet.fr.auf created from saip-auf.xml }}} {{{ vz-intranet:/etc/libvirt/qemu# virsh -c qemu:///system list --all Id Name State ---------------------------------------------------- ... 11 intranet.fr.auf running ... vz-intranet:/etc/libvirt/qemu# }}} == Mettre en place un gabarit personnalisé de VM == cf http://ostolc.org/kvm-clone-guests-from-template-image.html == Convertir une VM de lvm à img == {{{ qemu-img convert -O qcow2 /dev/mapper/vz-511--glpi /var/lib/libvirt/images/glpi-sys.img }}} source http://nocoast-tech.blogspot.ca/2010/05/converting-kvm-guests-from-lvm-to-qcow2.html = Suivi des infos sur les VM avec Munin = Sur [[Debian]] c'est aussi simple que : {{{ sudo apt-get install munin-libvirt-plugins sudo munin-libvirt-plugins-detect sudo service munin-node restart }}} = Sauvegardes des VM = * [[ZA/Montréal/Sauvegardes/BackupDuplicity/HôtesLibvirt|Serveurs Libvirt/qemu]] ---- |
Sommaire
Virtualisation KVM avec Libvirt sur une machine (Squeeze) roulant déjà Openvz
Documentation
http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-squeeze-server
http://www.howtoforge.com/installing-kvm-guests-with-virt-install-on-ubuntu-12.04-lts-server
les CGROUPS : http://blog.hbis.fr/2012/01/16/debian-webserver_and_cgroups/
Bonnes pratiques pour KVM, par IBM (en) (PDF) (copie locale du PDF)
NB : j'ai suivi la première.
On prépare le serveur
Ne pas taper les commandes sans en comprendre le sens, lire la première doc citée ci-dessus (je n'en fais qu'un résumé) |
apt-get install kvm qemu-kvm libvirt-bin virtinst adduser `id -un` libvirt adduser `id -un` kvm adduser mnombre kvm ; adduser mnombre libvirt <---- pour l'accès depuis son Ubuntu avec virt-manager # installation et configs réseau (bridge-utils) : vu qu'on utilise une machine Openvz, cette config est déjà faite
C'est tout le serveur KVM est prêt !
Les machines virtuelles
On peut créer nos machines virtuelles. Et là nous avons deux choix : ligne de commande (méthode utilisée) ou interface graphique (non expérimentée jusqu'où bout, cf le NB plus bas)
télécharger le netinstall de Debian dans /var/lib/libvirt/images
- ici on a : 2 partitions lv (une pour la racine et l'autre pour ... autre chose, par exemple /opt)
- en ligne de commande sur le serveur hôte (cf plus bas, pour la méthode via le client libvirt, bien plus pratique ;))
virt-install \ --connect qemu:///system \ -n portail-intranet-liferay \ -r 2000 \ --vcpus=2 \ --disk path=/dev/vz/413-kvm-intranet \ <------ partition allouée (sera vu comme sda) -c /var/lib/libvirt/images/debian-7.1.0-amd64-netinst.iso \ --vnc \ --noautoconsole \ --os-type linux \ --os-variant debianwheezy \ --network bridge=vz1 \ --hvm
==> Oups ... ERROR OS variant 'debianwheezy' does not exist in our dictionary for OS type 'linux' . On continu donc en enlevant cette option.
WillyManga me fait remarquer que ce soucis est corrigé avec Wheezy
==> il est important de rajouter l'option size pour definir la taille de la ram
- depuis un poste Ubuntu via le paquet virt-manager (je ne vais pas faire une doc complète ici, juste de grandes lignes !)
- installation du paquet : sudo aptitude install virt-manager
- accès : Application - Outils systèmes - Gestionnaire de machine virtuelle
- création d'une connexion au serveur
- connexion à l'hôte
- on ajoute un nouvel espace de stockage (bouton droit sur le nom de l'hôte et clique sur Détail, onglet stockage). Ici, on ajoute le volume group lvm sur lequel se trouvent nos partitions
- création d'un nouveau vm : bouton droit sur le nom de l'hôte puis nouveau (on fixe le nom, la distro, le chemin de l'iso, le stockage (on choisit ici un stockage géré/existant == notre partoche lvm racine créée précédemment, sera vu comme /dev/sda), etc.)
- double clic sur notre nouveau vm puis afficher - détails : on lui ajoute un nouveau matériel (disque pour nous, en mode ide, sera vu comme /dev/sdb)
- reboot le vm
- on l'ouvre et on procède à l'installation de notre debian
NB : SOUCIS je n'ai pas trouvé comment ajouter une interface bridge pour le partage du même port réseau
- Installation de Wheezy 64 bits (install debian classique)
- on partitionne par la suite le second disque ajouté : cfdisk /dev/sdb, création d'une partoche ext4, montage sur /opt
Migration de machine kvm d'un hôte à un autre
copier/coller de mes notes (NM) vz-tech :virsh -c qemu:///system dumpxml labo-si > labo-si.xml vz-intranet : nc -l -p 12345 | dd bs=1M of=/dev/vz/569-labo-si vz-tech : dd bs=1M if=/dev/serveurs-virtuels/569-labo-si |nc vz-intranet.ca.auf 12345 vz-intranet : kill -USR1 9895 # pour suivre l'évolution rsync du labo-si.xml vers vz-intranet modifier les noms de vg dans labo-si.xml (serveurs-virtuels --> vz) vz-intranet :virsh -c qemu:///system define /tmp/labo-si.xml virt-manager vz-intranet vérifier et corriger les bridges démarrer la kvm vz-tech : virsh -c qemu:///system undefine labo-si
Augmentation de la taille des disques
- Dans l'hôte :
- augmentation de la taille :
pour une VM dans une lv : lvresize -L 20G /dev/vz/415-kvm-sirh-disk2
pour une VM en img : virsh blockresize glpi /var/lib/libvirt/images/glpi-data.img 75G
- augmentation de la taille :
- Dans la VM :
vérifier la nouvelle taille du disque : fdisk -l /dev/sda
photo de la table des partitions : sfdisk -d /dev/sda > /boot/sda.dump et aussi
refaire la table des partition : fdisk /dev/sda
si le premier secteur de l'ancienne partition est < 2048, ajouter l'option -c=dos pour autoriser un début de partition en dessous de cette nouvelle norme
lister les partition et bien noter le début de la partition (par ex. 63) : p
supprimer la partition voulue : d
recréer la partition : n
vérifier le début et s'assurer que la nouvelle partition commence exactement au même endroit que la précédente (par ex. 63)
s'assurer que le type de partition soit le même que l'ancien (par ex. 8e) : t
enregistrer : w
et quitter : q
Redémarrer la VM (soit un reboot dans la VM, soit un redémarrage depuis l'hôte)
Retourner dans la VM pour retailler le PV : pvresize /dev/sda1
À noter que, quand on souhaite utiliser la totalité d'un disque, il serait préférable de faire directement le PV sur /dev/sda plutôt que de partitionner. Cela permettrait de s'affranchir de toutes les étapes de partitionnement et ne nécessiterait qu'un seul redémarrage de la VM (pour que KVM informe de la nouvelle taille du disque). Il serait peut-être même possible que KVM informe de la nouvelle taille sans même avoir à redémarrer, avec un simple reload/SIGHUP (piste à explorer). -- ProgFou
Virtualisation KVM avec Libvirt sur une machine (Wheezy) sans Openvz
Documentation
Installation d'une nouvelle VM
La section "On prépare le serveur" est valable pour ce qui va suivre aussi
Création d'une VM Debien 7, nommée testkvm2 avec 1024 de RAM et un disk de 10G0, sur le bridge br0.
# virt-install --connect qemu:///system --virt-type kvm --name testkvm2 --ram 1024 --disk /var/lib/libvirt/images/testkvm2,size=10 --cdrom /var/lib/libvirt/template/debian-7.5.0-amd64-netinst.iso --network bridge=br0 --vnc --os-type linux --os-variant debianwheezy
Lire les explications décrites : ici
La VM sera lancée automatiquement. Il faudra alors utiliser virt-manager depuis un Desktop graphique (Ubuntu par exemple) pour poursuivre l’installation.
Créer une VM depuis une image disque existante, KVM-PROXMOX par exemple
# virt-install --import --disk path=/var/lib/libvirt/images/vm-106-disk-1.raw --disk path=/var/lib/libvirt/images/vm-106-disk-2.raw --vcpus=2 --ram=1024 --name=ifadem-fichiers --hvm --vnc --network bridge:br0
# virsh list --all Id Name State ---------------------------------------------------- 4 ifadem-fichiers running - testkvm2 shut off
Créer une VM depuis une image existante avec une configuration existante
Le fichier image existant (intranet.fr.auf.raw) est défini dans le saip-auf.xml :
vz-intranet:/etc/libvirt/qemu# grep raw saip-auf.xml <source file='/var/lib/libvirt/images/intranet.fr.auf.raw'/>
vz-intranet:/etc/libvirt/qemu# virsh -c qemu:///system create saip-auf.xml Domain intranet.fr.auf created from saip-auf.xml
vz-intranet:/etc/libvirt/qemu# virsh -c qemu:///system list --all Id Name State ---------------------------------------------------- ... 11 intranet.fr.auf running ... vz-intranet:/etc/libvirt/qemu#
Mettre en place un gabarit personnalisé de VM
cf http://ostolc.org/kvm-clone-guests-from-template-image.html
Convertir une VM de lvm à img
qemu-img convert -O qcow2 /dev/mapper/vz-511--glpi /var/lib/libvirt/images/glpi-sys.img
source http://nocoast-tech.blogspot.ca/2010/05/converting-kvm-guests-from-lvm-to-qcow2.html
Suivi des infos sur les VM avec Munin
Sur Debian c'est aussi simple que :
sudo apt-get install munin-libvirt-plugins sudo munin-libvirt-plugins-detect sudo service munin-node restart
Sauvegardes des VM