User Tools

Site Tools


informatica:linux:virtualizacion:kvm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatica:linux:virtualizacion:kvm [2014/02/24 12:44] – [Otras herramientas] javiinformatica:linux:virtualizacion:kvm [2015/12/29 10:30] – [Comandos varios] javi
Line 293: Line 293:
 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 370:
   sudo vim test-1.example.com.xml   sudo vim test-1.example.com.xml
  
-ajustar los nombres, como por ejemplo en las siguientes etiquetas:+asegurarse de que los siguientes valores son unicos y correctos:
  
 +  * Name
 <code> <code>
-Name +<name>test-1.example.com</name> 
-Disk+</code> 
 +  * Almacenamiento (en este caso LVM) 
 +<code> 
 +<source dev='/dev/vg/lv_test_1'/> 
 +</code> 
 +  * MAC address (importante, quiza hemos copiado la maquina y esta duplicada): 
 +<code>   
 +<mac address='00:16:3e:0e:3e:53'/>
 </code> </code>
  
-5. Ajustar, si es necesario, la ruta/punto de montaje del disco.+Script para generar MAC addresses:
  
-6Definir la nueva VM:+<code> 
 +#!/usr/bin/python 
 +# macgen.py script to generate a MAC address for guests on Xen 
 +
 +import random 
 +
 +def randomMAC(): 
 +        mac = [ 0x00, 0x16, 0x3e, 
 +                random.randint(0x00, 0x7f), 
 +                random.randint(0x00, 0xff), 
 +                random.randint(0x00, 0xff) ] 
 +        return ':'.join(map(lambda x: "%02x" % x, mac)) 
 +
 +print randomMAC() 
 +</code>
  
-  virsh define test-1.example.com.xml+Ahora obtenemos el listado de VMS: 
 + 
 +  virsh list --all
      
 +Y para cada una de ellas obtenemos la MAC address:
 +
 +  virsh dumpxml vm-1.example.com | grep "mac address" | awk '{print $2}' | cut -d "'" -f2
 +
 +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 850:
 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:
  
-  sudo parted -a optimal /dev/vda+  parted -a optimal /dev/vda
  
 Cambiamos a sectores como unidad: Cambiamos a sectores como unidad:
Line 840: Line 879:
 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=/dev/vdb5 of=/dev/vda5 bs=512+  time dd if=/dev/vdb5 of=/dev/vda5 bs=512
      
 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 1738:
   * 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 "./script.sh" y si un "bash script.sh". No se que consecuencias puede tener   * En las mismas circunstancias no puedo hacer un "./script.sh" y si un "bash script.sh". No se que consecuencias puede tener
 +  * **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 2018: Line 2058:
 http://libguestfs.org/guestfish.1.html http://libguestfs.org/guestfish.1.html
  
-====== libvirt ACL ======+====== libvirt ====== 
 + 
 +**TODO** quiza habria que mover esta seccion a un articulo propio 
 + 
 +===== ACL =====
  
 http://libvirt.org/acl.html http://libvirt.org/acl.html
 +
 +http://libvirt.org/aclpolkit.html
 +
 +https://wiki.archlinux.org/index.php/libvirt#Using_Python
 +
 +Ejemplo sencillo de uso sin contrasenya si se dan las siguientes condiciones:
 +
 +  * Configuracion por defecto (**NO** se ha habilitado policykit)
 +  * El usuario que ejecuta el script pertenece al grupo especificado en la variable "unix_sock_group" de /etc/libvirt/libvirtd.conf
 +  * El script se ejecuta desde el mismo hipervisor
 +
 +  virsh -c qemu:///system list
 +
 +La url sirve para la API tambien
 +===== API =====
 +
 +http://libvirt.org/html/libvirt-libvirt.html
 +
 +==== virConnect ====
 +
 +<code>
 +[('__class__', <class 'libvirt.virConnect'>)
 +('__del__', <bound method virConnect.__del__ of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('__delattr__', <method-wrapper '__delattr__' of virConnect object at 0x7f653a08df10>)
 +('__dict__', {'_o': <capsule object "virConnectPtr" at 0x7f6538716c00>})
 +('__doc__', None)
 +('__format__', <built-in method __format__ of virConnect object at 0x7f653a08df10>)
 +('__getattribute__', <method-wrapper '__getattribute__' of virConnect object at 0x7f653a08df10>)
 +('__hash__', <method-wrapper '__hash__' of virConnect object at 0x7f653a08df10>)
 +('__init__', <bound method virConnect.__init__ of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('__module__', 'libvirt')
 +('__new__', <built-in method __new__ of type object at 0x8fbce0>)
 +('__reduce__', <built-in method __reduce__ of virConnect object at 0x7f653a08df10>)
 +('__reduce_ex__', <built-in method __reduce_ex__ of virConnect object at 0x7f653a08df10>)
 +('__repr__', <method-wrapper '__repr__' of virConnect object at 0x7f653a08df10>)
 +('__setattr__', <method-wrapper '__setattr__' of virConnect object at 0x7f653a08df10>)
 +('__sizeof__', <built-in method __sizeof__ of virConnect object at 0x7f653a08df10>)
 +('__str__', <method-wrapper '__str__' of virConnect object at 0x7f653a08df10>)
 +('__subclasshook__', <built-in method __subclasshook__ of type object at 0x29d7020>)
 +('__weakref__', None)
 +('_dispatchCloseCallback', <bound method virConnect._dispatchCloseCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventBalloonChangeCallback', <bound method virConnect._dispatchDomainEventBalloonChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventBlockPullCallback', <bound method virConnect._dispatchDomainEventBlockPullCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventCallbacks', <bound method virConnect._dispatchDomainEventCallbacks of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventDeviceRemovedCallback', <bound method virConnect._dispatchDomainEventDeviceRemovedCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventDiskChangeCallback', <bound method virConnect._dispatchDomainEventDiskChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventGenericCallback', <bound method virConnect._dispatchDomainEventGenericCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventGraphicsCallback', <bound method virConnect._dispatchDomainEventGraphicsCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventIOErrorCallback', <bound method virConnect._dispatchDomainEventIOErrorCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventIOErrorReasonCallback', <bound method virConnect._dispatchDomainEventIOErrorReasonCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventLifecycleCallback', <bound method virConnect._dispatchDomainEventLifecycleCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventPMSuspendCallback', <bound method virConnect._dispatchDomainEventPMSuspendCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventPMSuspendDiskCallback', <bound method virConnect._dispatchDomainEventPMSuspendDiskCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventPMWakeupCallback', <bound method virConnect._dispatchDomainEventPMWakeupCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventRTCChangeCallback', <bound method virConnect._dispatchDomainEventRTCChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventTrayChangeCallback', <bound method virConnect._dispatchDomainEventTrayChangeCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_dispatchDomainEventWatchdogCallback', <bound method virConnect._dispatchDomainEventWatchdogCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('_o', <capsule object "virConnectPtr" at 0x7f6538716c00>)
 +('baselineCPU', <bound method virConnect.baselineCPU of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('changeBegin', <bound method virConnect.changeBegin of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('changeCommit', <bound method virConnect.changeCommit of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('changeRollback', <bound method virConnect.changeRollback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('close', <bound method virConnect.close of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('compareCPU', <bound method virConnect.compareCPU of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('createLinux', <bound method virConnect.createLinux of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('createXML', <bound method virConnect.createXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('createXMLWithFiles', <bound method virConnect.createXMLWithFiles of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('defineXML', <bound method virConnect.defineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('domainEventDeregister', <bound method virConnect.domainEventDeregister of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('domainEventDeregisterAny', <bound method virConnect.domainEventDeregisterAny of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('domainEventRegister', <bound method virConnect.domainEventRegister of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('domainEventRegisterAny', <bound method virConnect.domainEventRegisterAny of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('domainXMLFromNative', <bound method virConnect.domainXMLFromNative of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('domainXMLToNative', <bound method virConnect.domainXMLToNative of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('findStoragePoolSources', <bound method virConnect.findStoragePoolSources of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getCPUMap', <bound method virConnect.getCPUMap of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getCPUModelNames', <bound method virConnect.getCPUModelNames of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getCPUStats', <bound method virConnect.getCPUStats of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getCapabilities', <bound method virConnect.getCapabilities of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getCellsFreeMemory', <bound method virConnect.getCellsFreeMemory of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getFreeMemory', <bound method virConnect.getFreeMemory of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getHostname', <bound method virConnect.getHostname of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getInfo', <bound method virConnect.getInfo of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getLibVersion', <bound method virConnect.getLibVersion of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getMaxVcpus', <bound method virConnect.getMaxVcpus of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getMemoryParameters', <bound method virConnect.getMemoryParameters of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getMemoryStats', <bound method virConnect.getMemoryStats of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getSecurityModel', <bound method virConnect.getSecurityModel of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getSysinfo', <bound method virConnect.getSysinfo of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getType', <bound method virConnect.getType of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getURI', <bound method virConnect.getURI of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('getVersion', <bound method virConnect.getVersion of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('interfaceDefineXML', <bound method virConnect.interfaceDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('interfaceLookupByMACString', <bound method virConnect.interfaceLookupByMACString of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('interfaceLookupByName', <bound method virConnect.interfaceLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('isAlive', <bound method virConnect.isAlive of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('isEncrypted', <bound method virConnect.isEncrypted of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('isSecure', <bound method virConnect.isSecure of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllDevices', <bound method virConnect.listAllDevices of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllDomains', <bound method virConnect.listAllDomains of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllInterfaces', <bound method virConnect.listAllInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllNWFilters', <bound method virConnect.listAllNWFilters of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllNetworks', <bound method virConnect.listAllNetworks of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllSecrets', <bound method virConnect.listAllSecrets of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listAllStoragePools', <bound method virConnect.listAllStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listDefinedDomains', <bound method virConnect.listDefinedDomains of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listDefinedInterfaces', <bound method virConnect.listDefinedInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listDefinedNetworks', <bound method virConnect.listDefinedNetworks of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listDefinedStoragePools', <bound method virConnect.listDefinedStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listDevices', <bound method virConnect.listDevices of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listDomainsID', <bound method virConnect.listDomainsID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listInterfaces', <bound method virConnect.listInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listNWFilters', <bound method virConnect.listNWFilters of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listNetworks', <bound method virConnect.listNetworks of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listSecrets', <bound method virConnect.listSecrets of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('listStoragePools', <bound method virConnect.listStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('lookupByID', <bound method virConnect.lookupByID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('lookupByName', <bound method virConnect.lookupByName of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('lookupByUUID', <bound method virConnect.lookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('lookupByUUIDString', <bound method virConnect.lookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('networkCreateXML', <bound method virConnect.networkCreateXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('networkDefineXML', <bound method virConnect.networkDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('networkLookupByName', <bound method virConnect.networkLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('networkLookupByUUID', <bound method virConnect.networkLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('networkLookupByUUIDString', <bound method virConnect.networkLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('newStream', <bound method virConnect.newStream of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nodeDeviceCreateXML', <bound method virConnect.nodeDeviceCreateXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nodeDeviceLookupByName', <bound method virConnect.nodeDeviceLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nodeDeviceLookupSCSIHostByWWN', <bound method virConnect.nodeDeviceLookupSCSIHostByWWN of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfDefinedDomains', <bound method virConnect.numOfDefinedDomains of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfDefinedInterfaces', <bound method virConnect.numOfDefinedInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfDefinedNetworks', <bound method virConnect.numOfDefinedNetworks of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfDefinedStoragePools', <bound method virConnect.numOfDefinedStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfDevices', <bound method virConnect.numOfDevices of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfDomains', <bound method virConnect.numOfDomains of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfInterfaces', <bound method virConnect.numOfInterfaces of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfNWFilters', <bound method virConnect.numOfNWFilters of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfNetworks', <bound method virConnect.numOfNetworks of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfSecrets', <bound method virConnect.numOfSecrets of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('numOfStoragePools', <bound method virConnect.numOfStoragePools of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nwfilterDefineXML', <bound method virConnect.nwfilterDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nwfilterLookupByName', <bound method virConnect.nwfilterLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nwfilterLookupByUUID', <bound method virConnect.nwfilterLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('nwfilterLookupByUUIDString', <bound method virConnect.nwfilterLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('registerCloseCallback', <bound method virConnect.registerCloseCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('restore', <bound method virConnect.restore of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('restoreFlags', <bound method virConnect.restoreFlags of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('saveImageDefineXML', <bound method virConnect.saveImageDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('saveImageGetXMLDesc', <bound method virConnect.saveImageGetXMLDesc of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('secretDefineXML', <bound method virConnect.secretDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('secretLookupByUUID', <bound method virConnect.secretLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('secretLookupByUUIDString', <bound method virConnect.secretLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('secretLookupByUsage', <bound method virConnect.secretLookupByUsage of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('setKeepAlive', <bound method virConnect.setKeepAlive of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('setMemoryParameters', <bound method virConnect.setMemoryParameters of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storagePoolCreateXML', <bound method virConnect.storagePoolCreateXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storagePoolDefineXML', <bound method virConnect.storagePoolDefineXML of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storagePoolLookupByName', <bound method virConnect.storagePoolLookupByName of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storagePoolLookupByUUID', <bound method virConnect.storagePoolLookupByUUID of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storagePoolLookupByUUIDString', <bound method virConnect.storagePoolLookupByUUIDString of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storageVolLookupByKey', <bound method virConnect.storageVolLookupByKey of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('storageVolLookupByPath', <bound method virConnect.storageVolLookupByPath of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('suspendForDuration', <bound method virConnect.suspendForDuration of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('unregisterCloseCallback', <bound method virConnect.unregisterCloseCallback of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('virConnGetLastError', <bound method virConnect.virConnGetLastError of <libvirt.virConnect object at 0x7f653a08df10>>)
 +('virConnResetLastError', <bound method virConnect.virConnResetLastError of <libvirt.virConnect object at 0x7f653a08df10>>)]
 +</code>
 +
 +==== virDomain ====
 +
 +<code>
 +[('ID', <bound method virDomain.ID of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('OSType', <bound method virDomain.OSType of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('UUID', <bound method virDomain.UUID of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('UUIDString', <bound method virDomain.UUIDString of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('XMLDesc', <bound method virDomain.XMLDesc of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('__class__', <class 'libvirt.virDomain'>)
 +('__del__', <bound method virDomain.__del__ of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('__delattr__', <method-wrapper '__delattr__' of virDomain object at 0x7f39740e6750>)
 +('__dict__', {'_conn': <libvirt.virConnect object at 0x7f3975a5ff50>, '_o': <capsule object "virDomainPtr" at 0x7f39740e7c90>})
 +('__doc__', None)
 +('__format__', <built-in method __format__ of virDomain object at 0x7f39740e6750>)
 +('__getattribute__', <method-wrapper '__getattribute__' of virDomain object at 0x7f39740e6750>)
 +('__hash__', <method-wrapper '__hash__' of virDomain object at 0x7f39740e6750>)
 +('__init__', <bound method virDomain.__init__ of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('__module__', 'libvirt')
 +('__new__', <built-in method __new__ of type object at 0x8fbce0>)
 +('__reduce__', <built-in method __reduce__ of virDomain object at 0x7f39740e6750>)
 +('__reduce_ex__', <built-in method __reduce_ex__ of virDomain object at 0x7f39740e6750>)
 +('__repr__', <method-wrapper '__repr__' of virDomain object at 0x7f39740e6750>)
 +('__setattr__', <method-wrapper '__setattr__' of virDomain object at 0x7f39740e6750>)
 +('__sizeof__', <built-in method __sizeof__ of virDomain object at 0x7f39740e6750>)
 +('__str__', <method-wrapper '__str__' of virDomain object at 0x7f39740e6750>)
 +('__subclasshook__', <built-in method __subclasshook__ of type object at 0x1d606f0>)
 +('__weakref__', None)
 +('_conn', <libvirt.virConnect object at 0x7f3975a5ff50>)
 +('_o', <capsule object "virDomainPtr" at 0x7f39740e7c90>)
 +('abortJob', <bound method virDomain.abortJob of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('attachDevice', <bound method virDomain.attachDevice of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('attachDeviceFlags', <bound method virDomain.attachDeviceFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('autostart', <bound method virDomain.autostart of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blkioParameters', <bound method virDomain.blkioParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockCommit', <bound method virDomain.blockCommit of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockInfo', <bound method virDomain.blockInfo of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockIoTune', <bound method virDomain.blockIoTune of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockJobAbort', <bound method virDomain.blockJobAbort of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockJobInfo', <bound method virDomain.blockJobInfo of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockJobSetSpeed', <bound method virDomain.blockJobSetSpeed of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockPeek', <bound method virDomain.blockPeek of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockPull', <bound method virDomain.blockPull of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockRebase', <bound method virDomain.blockRebase of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockResize', <bound method virDomain.blockResize of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockStats', <bound method virDomain.blockStats of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('blockStatsFlags', <bound method virDomain.blockStatsFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('connect', <bound method virDomain.connect of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('controlInfo', <bound method virDomain.controlInfo of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('coreDump', <bound method virDomain.coreDump of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('create', <bound method virDomain.create of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('createWithFiles', <bound method virDomain.createWithFiles of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('createWithFlags', <bound method virDomain.createWithFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('destroy', <bound method virDomain.destroy of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('destroyFlags', <bound method virDomain.destroyFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('detachDevice', <bound method virDomain.detachDevice of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('detachDeviceFlags', <bound method virDomain.detachDeviceFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('diskErrors', <bound method virDomain.diskErrors of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('emulatorPinInfo', <bound method virDomain.emulatorPinInfo of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('fSTrim', <bound method virDomain.fSTrim of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('getCPUStats', <bound method virDomain.getCPUStats of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('hasCurrentSnapshot', <bound method virDomain.hasCurrentSnapshot of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('hasManagedSaveImage', <bound method virDomain.hasManagedSaveImage of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('hostname', <bound method virDomain.hostname of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('info', <bound method virDomain.info of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('injectNMI', <bound method virDomain.injectNMI of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('interfaceParameters', <bound method virDomain.interfaceParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('interfaceStats', <bound method virDomain.interfaceStats of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('isActive', <bound method virDomain.isActive of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('isPersistent', <bound method virDomain.isPersistent of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('isUpdated', <bound method virDomain.isUpdated of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('jobInfo', <bound method virDomain.jobInfo of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('jobStats', <bound method virDomain.jobStats of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('listAllSnapshots', <bound method virDomain.listAllSnapshots of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('managedSave', <bound method virDomain.managedSave of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('managedSaveRemove', <bound method virDomain.managedSaveRemove of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('maxMemory', <bound method virDomain.maxMemory of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('maxVcpus', <bound method virDomain.maxVcpus of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('memoryParameters', <bound method virDomain.memoryParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('memoryPeek', <bound method virDomain.memoryPeek of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('memoryStats', <bound method virDomain.memoryStats of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('metadata', <bound method virDomain.metadata of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrate', <bound method virDomain.migrate of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrate2', <bound method virDomain.migrate2 of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrate3', <bound method virDomain.migrate3 of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateGetCompressionCache', <bound method virDomain.migrateGetCompressionCache of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateGetMaxSpeed', <bound method virDomain.migrateGetMaxSpeed of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateSetCompressionCache', <bound method virDomain.migrateSetCompressionCache of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateSetMaxDowntime', <bound method virDomain.migrateSetMaxDowntime of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateSetMaxSpeed', <bound method virDomain.migrateSetMaxSpeed of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateToURI', <bound method virDomain.migrateToURI of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateToURI2', <bound method virDomain.migrateToURI2 of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('migrateToURI3', <bound method virDomain.migrateToURI3 of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('name', <bound method virDomain.name of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('numaParameters', <bound method virDomain.numaParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('openChannel', <bound method virDomain.openChannel of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('openConsole', <bound method virDomain.openConsole of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('openGraphics', <bound method virDomain.openGraphics of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('pMSuspendForDuration', <bound method virDomain.pMSuspendForDuration of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('pMWakeup', <bound method virDomain.pMWakeup of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('pinEmulator', <bound method virDomain.pinEmulator of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('pinVcpu', <bound method virDomain.pinVcpu of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('pinVcpuFlags', <bound method virDomain.pinVcpuFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('reboot', <bound method virDomain.reboot of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('reset', <bound method virDomain.reset of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('resume', <bound method virDomain.resume of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('revertToSnapshot', <bound method virDomain.revertToSnapshot of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('save', <bound method virDomain.save of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('saveFlags', <bound method virDomain.saveFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('schedulerParameters', <bound method virDomain.schedulerParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('schedulerParametersFlags', <bound method virDomain.schedulerParametersFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('schedulerType', <bound method virDomain.schedulerType of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('screenshot', <bound method virDomain.screenshot of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('securityLabel', <bound method virDomain.securityLabel of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('securityLabelList', <bound method virDomain.securityLabelList of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('sendKey', <bound method virDomain.sendKey of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('sendProcessSignal', <bound method virDomain.sendProcessSignal of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setAutostart', <bound method virDomain.setAutostart of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setBlkioParameters', <bound method virDomain.setBlkioParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setBlockIoTune', <bound method virDomain.setBlockIoTune of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setInterfaceParameters', <bound method virDomain.setInterfaceParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setMaxMemory', <bound method virDomain.setMaxMemory of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setMemory', <bound method virDomain.setMemory of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setMemoryFlags', <bound method virDomain.setMemoryFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setMemoryParameters', <bound method virDomain.setMemoryParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setMemoryStatsPeriod', <bound method virDomain.setMemoryStatsPeriod of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setMetadata', <bound method virDomain.setMetadata of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setNumaParameters', <bound method virDomain.setNumaParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setSchedulerParameters', <bound method virDomain.setSchedulerParameters of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setSchedulerParametersFlags', <bound method virDomain.setSchedulerParametersFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setVcpus', <bound method virDomain.setVcpus of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('setVcpusFlags', <bound method virDomain.setVcpusFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('shutdown', <bound method virDomain.shutdown of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('shutdownFlags', <bound method virDomain.shutdownFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('snapshotCreateXML', <bound method virDomain.snapshotCreateXML of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('snapshotCurrent', <bound method virDomain.snapshotCurrent of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('snapshotListNames', <bound method virDomain.snapshotListNames of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('snapshotLookupByName', <bound method virDomain.snapshotLookupByName of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('snapshotNum', <bound method virDomain.snapshotNum of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('state', <bound method virDomain.state of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('suspend', <bound method virDomain.suspend of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('undefine', <bound method virDomain.undefine of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('undefineFlags', <bound method virDomain.undefineFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('updateDeviceFlags', <bound method virDomain.updateDeviceFlags of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('vcpuPinInfo', <bound method virDomain.vcpuPinInfo of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('vcpus', <bound method virDomain.vcpus of <libvirt.virDomain object at 0x7f39740e6750>>)
 +('vcpusFlags', <bound method virDomain.vcpusFlags of <libvirt.virDomain object at 0x7f39740e6750>>)]
 +</code>
 +
 +==== Varios ====
 +
 +  * Obtener la lista de dominios no-activos:
 +<code>
 +conn = libvirt.open("qemu+ssh://localhost/system")
 +domains = conn.listDefinedDomains()
 +</code>
 +  * Obtener la lista de dominios activos:
 +<code>
 +conn = libvirt.open("qemu+ssh://localhost/system")
 +domains = conn.listDomainsID()
 +</code>
 +
 +
informatica/linux/virtualizacion/kvm.txt · Last modified: 2020/06/10 07:12 by javi