informatica:linux:virtualizacion:kvm
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatica:linux:virtualizacion:kvm [2014/02/25 12:28] – [ACL] javi | informatica:linux:virtualizacion:kvm [2020/06/10 07:12] (current) – javi | ||
---|---|---|---|
Line 17: | Line 17: | ||
3. Comprobar que el sistema operativo soporta virtualizacion: | 3. Comprobar que el sistema operativo soporta virtualizacion: | ||
+ | |||
+ | Una vez encontré un escenario en el que la prueba 3.1. era KO y la 3.2. OK, por lo que creo que la más exacta es la 3.1. | ||
+ | |||
+ | 3.1. Ver si kvm está deshabilitado a nivel de BIOS | ||
+ | |||
+ | dmesg | grep bios | ||
+ | |||
+ | 3.2 Ejecutar | ||
sudo egrep ' | sudo egrep ' | ||
Line 293: | Line 301: | ||
En este ejemplo se establece el valor en 524288 KB | En este ejemplo se establece el valor en 524288 KB | ||
+ | * Arrancar la VM al arrancar el hipervisor: | ||
+ | |||
+ | sudo virsh autostart myvmname | ||
====== Salir de la consola ====== | ====== Salir de la consola ====== | ||
Line 367: | Line 378: | ||
sudo vim test-1.example.com.xml | sudo vim test-1.example.com.xml | ||
- | Y ajustar | + | Y asegurarse de que los siguientes |
+ | * Name | ||
< | < | ||
- | Name | + | < |
- | Disk | + | </ |
+ | * Almacenamiento (en este caso LVM) | ||
+ | < | ||
+ | <source dev='/ | ||
+ | </ | ||
+ | * MAC address (importante, | ||
+ | < | ||
+ | <mac address=' | ||
</ | </ | ||
- | 5. Ajustar, si es necesario, la ruta/punto de montaje del disco. | + | Script para generar MAC addresses: |
- | 6. Definir la nueva VM: | + | < |
+ | # | ||
+ | # macgen.py script to generate a MAC address for guests on Xen | ||
+ | # | ||
+ | import random | ||
+ | # | ||
+ | def randomMAC(): | ||
+ | mac = [ 0x00, 0x16, 0x3e, | ||
+ | random.randint(0x00, | ||
+ | random.randint(0x00, | ||
+ | random.randint(0x00, | ||
+ | return ':' | ||
+ | # | ||
+ | print randomMAC() | ||
+ | </ | ||
- | | + | Ahora obtenemos el listado de VMS: |
+ | |||
+ | | ||
| | ||
+ | Y para cada una de ellas obtenemos la MAC address: | ||
+ | |||
+ | virsh dumpxml vm-1.example.com | grep "mac address" | ||
+ | |||
+ | TODO: hacer un script en bash que lo haga | ||
+ | |||
+ | Finalmente nos aseguramos que la nueva MAC generada es unica. | ||
+ | |||
+ | 5. Definir la nueva VM: | ||
+ | |||
+ | virsh define test-1.example.com.xml | ||
+ | |||
===== VM destino existe ===== | ===== VM destino existe ===== | ||
Line 811: | Line 858: | ||
9. (VM arrancada con live CD) Con parted eliminar las particiones 2 y 5 y recrearlas. Recomiendo ejecutarlo asi: | 9. (VM arrancada con live CD) Con parted eliminar las particiones 2 y 5 y recrearlas. Recomiendo ejecutarlo asi: | ||
- | | + | parted -a optimal /dev/vda |
Cambiamos a sectores como unidad: | Cambiamos a sectores como unidad: | ||
Line 840: | Line 887: | ||
10. (VM arrancada con live CD) Copiar con dd de la particion destino a la origan, una vez recreada: | 10. (VM arrancada con live CD) Copiar con dd de la particion destino a la origan, una vez recreada: | ||
- | time sudo dd if=/ | + | time dd if=/ |
| | ||
Creo que el proceso de nuevo tiene una velocidad entorno a los 60 MB/s | Creo que el proceso de nuevo tiene una velocidad entorno a los 60 MB/s | ||
Line 1699: | Line 1746: | ||
* Cuando el volumen es montado por un segundo guest, los guests ya solo pueden leer, y escribir como root, pero no escribir como un usuario normal. No creo que sea una limitacion de virtfs, pero tengo que investigarlo. | * Cuando el volumen es montado por un segundo guest, los guests ya solo pueden leer, y escribir como root, pero no escribir como un usuario normal. No creo que sea una limitacion de virtfs, pero tengo que investigarlo. | ||
* En las mismas circunstancias no puedo hacer un " | * En las mismas circunstancias no puedo hacer un " | ||
+ | * **BUG**: cuando se anyade un nuevo punto de montaje en una VM (virsh edit vm_1) tengo que parar y luego arrancar la VM para que esta vea el punto de montaje. Si simplemente la reinicio vera los puntos de montajes anteriores, pero no el nuevo | ||
===== Virtfs (9p) passthrough ===== | ===== Virtfs (9p) passthrough ===== | ||
Line 2030: | Line 2078: | ||
https:// | https:// | ||
- | ===== API ===== | + | Ejemplo sencillo de uso sin contrasenya si se dan las siguientes condiciones: |
- | Ejemplo | + | * Configuracion por defecto (**NO** se ha habilitado policykit) |
+ | * El usuario que ejecuta el script pertenece al grupo especificado en la variable " | ||
+ | * El script se ejecuta desde el mismo hipervisor | ||
- | < | + | virsh -c qemu:/// |
- | conn = libvirt.open(" | + | |
- | domains = conn.listDomainsID() | + | La url sirve para la API tambien |
- | for domainID in domains: | + | ===== API ===== |
- | | + | |
- | </code> | + | http:// |
==== virConnect ==== | ==== virConnect ==== |
informatica/linux/virtualizacion/kvm.txt · Last modified: 2020/06/10 07:12 by javi