Xen Management API
Rafael dos Santos Alves
Visão geral
• Gerenciamento de sistemas Xen
• Baseado em chamadas XML-RPC
• Implementações
–
–
–
–
Python
C
Java
Perl
• Daemon xend espera por chamadas XML-RPC e executa
operações administrativas
• Executa as mesmas operações que a ferrmamenta xm
Ciclo de vida das VMs
Classes
Configuração
• Arquivo /etc/xen/xend-config.sxp
(xen-api-server ((9363 none '^localhost$ gta\\.ufrj\\.br$')
(unix)))
Exemplo
from xen.xm.XenAPI import Session
session = Session('http://itaipava:9363/')
session.login_with_password(' ', ' ')
for vm_uuid in session.xenapi.VM.get_all():
if "xenvm1.gta.ufrj.br" ==
session.xenapi.VM.get_name_label(vm_uuid):
vm = vm_uuid
session.xenapi.VM.migrate(vm,'floresta',True,{})
Exemplo 2
Python
session = session.login_with_password("user", "passwd“)
XML
<?xml version=‘1.0’?>
<methodCall>
<methodName>session.login_with_password</methodName>
<params>
<param>
<value><string>user</string></value>
</param>
<param>
<value><string>passwd</string></value>
</param>
</params>
</methodCall>
Concorrente
• Libvirt
– Suporte
• Xen, QEMU, KVM Linux, LXC Linux, OpenVZ, User Mode Linux e
VirtualBox
– Configuração
• Arquivo /etc/xen/xend-config.sxp
(xend-unix-server yes)
– Exemplo
import libvirt
conn = libvirt.open('xen:///')
vm = conn.lookupByName('winxp')
dconn = libvirt.open('xen+ssh://floresta/')
vm.migrate(dconn,1,None,None,0)
Download

Apresentação do Rafael