[one-users] Raw attributes not getting resolved

Ruben S. Montero rubensm at dacya.ucm.es
Thu Feb 4 13:15:17 PST 2010


Hi,

It seems that the console attribute needs to be defined within the
devices element. We can try a couple of things:

1. Let see if libvirt can deal with two devices elements. Try to add:
RAW = [ type = "kvm",
              data = "</devices><serial type=\"pty\"><source
 path=\"/dev/pts/5\"/><target port=\"0\"/></serial><console type=\"pty\"
 tty=\"/dev/pts/5\"><source path=\"/dev/pts/5\"/><target
 port=\"0\"/></console></devices>" ]

That is the same you have but within a device element

2. We can modify the KVM driver so the RAW attributes are generated
within the devices section. Or at least add an option to tell
OpenNebula where to put the RAW attributes.

3. If you need this for debugging purposes, you can always connect to
the VM through VNC with the GRAPHICS attribute...

Cheers

Ruben

On Thu, Feb 4, 2010 at 7:16 PM, Jack Jill <jacknjill111 at gmail.com> wrote:
> I'm attempting to configure a console for my vm so I can connect to it via
> "virsh", but I believe I am screwing up the declaration in the template.
>
> <quote>
> RAW = [ type = "kvm", data = "<console type=\"stdio\"><target
> port=\"1\"/></console>" ]
> </quote>
>
> results in the following deployment descriptor:
>
> <domain type='kvm'>
>     <name>one-31</name>
>     <memory>262144</memory>
>     <os>
>         <type>hvm</type>
>         <boot dev='hd'/>
>     </os>
>     <devices>
>         <emulator>/usr/bin/kvm</emulator>
>         <disk type='file' device='disk'>
>             <source file='/opt/nebula/ONE/var//31/images/disk.0'/>
>             <target dev='vda' bus='virtio'/>
>         </disk>
>         <interface type='bridge'>
>             <source bridge='br0'/>
>             <model type='virtio'/>
>         </interface>
>         <interface type='bridge'>
>             <source bridge='br0'/>
>             <mac address='00:03:0a:00:01:04'/>
>             <model type='virtio'/>
>         </interface>
>     </devices>
>     <features>
>         <pae/>
>         <acpi/>
>     </features>
>     <console type="stdio"><target port="1"/></console>
> </domain>
>
> But when I attempt to connect to the console I get the following error:
>
> <quote>
> sudo virsh console one-31
> [sudo] password for xxxx:
> Connecting to uri: qemu:///system
> No console available for domain
> </quote>
>
> virsh dumpxml shows the following:
>
> <domain type='kvm' id='13'>
>   <name>one-31</name>
>   <uuid>89e69209-ba37-8ccf-832f-f637ab753710</uuid>
>   <memory>262144</memory>
>   <currentMemory>262144</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch='i686' machine='pc-0.11'>hvm</type>
>     <boot dev='hd'/>
>   </os>
>   <features>
>     <acpi/>
>     <pae/>
>   </features>
>   <clock offset='utc'/>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>destroy</on_crash>
>   <devices>
>     <emulator>/usr/bin/kvm</emulator>
>     <disk type='file' device='disk'>
>       <source file='/opt/nebula/ONE/var//31/images/disk.0'/>
>       <target dev='vda' bus='virtio'/>
>     </disk>
>     <interface type='bridge'>
>       <mac address='52:54:00:9c:c1:cb'/>
>       <source bridge='br0'/>
>       <target dev='vnet4'/>
>       <model type='virtio'/>
>     </interface>
>     <interface type='bridge'>
>       <mac address='00:03:0a:00:01:04'/>
>       <source bridge='br0'/>
>       <target dev='vnet5'/>
>       <model type='virtio'/>
>     </interface>
>   </devices>
>   <seclabel type='dynamic' model='apparmor'>
>     <label>libvirt-89e69209-ba37-8ccf-832f-f637ab753710</label>
>     <imagelabel>libvirt-89e69209-ba37-8ccf-832f-f637ab753710</imagelabel>
>   </seclabel>
> </domain>
>
> As you can see no console element.
>
> If I redefine the domain and add the following (via virsh), I can connect
> successfully.
>
> <domain type='kvm'>
>   <name>one-31</name>
>   <uuid>89e69209-ba37-8ccf-832f-f637ab753710</uuid>
>   <memory>262144</memory>
>   <currentMemory>262144</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch='i686' machine='pc-0.11'>hvm</type>
>     <boot dev='hd'/>
>   </os>
>   <features>
>     <acpi/>
>     <pae/>
>   </features>
>   <clock offset='utc'/>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>destroy</on_crash>
>   <devices>
>     <emulator>/usr/bin/kvm</emulator>
>     <disk type='file' device='disk'>
>       <source file='/opt/nebula/ONE/var//31/images/disk.0'/>
>       <target dev='vda' bus='virtio'/>
>     </disk>
>     <interface type='bridge'>
>       <mac address='52:54:00:9c:c1:cb'/>
>       <source bridge='br0'/>
>       <target dev='vnet4'/>
>       <model type='virtio'/>
>     </interface>
>     <interface type='bridge'>
>       <mac address='00:03:0a:00:01:04'/>
>       <source bridge='br0'/>
>       <target dev='vnet5'/>
>       <model type='virtio'/>
>     </interface>
>     <serial type='pty'>
>       <source path='/dev/pts/5'/>
>       <target port='0'/>
>     </serial>
>     <console type='pty' tty='/dev/pts/5'>
>       <source path='/dev/pts/5'/>
>       <target port='0'/>
>     </console>
>   </devices>
> </domain>
>
> So I tried passing in the following as RAW attributes:
>
> RAW = [ type = "kvm",
>               data = "<serial type=\"pty\"><source
> path=\"/dev/pts/5\"/><target port=\"0\"/></serial><console type=\"pty\"
> tty=\"/dev/pts/5\"><source path=\"/dev/pts/5\"/><target
> port=\"0\"/></console>" ]
>
> The above results in the following deployment descriptor being generated:
>
> <domain type='kvm'>
>     <name>one-32</name>
>     <memory>262144</memory>
>     <os>
>         <type>hvm</type>
>         <boot dev='hd'/>
>     </os>
>     <devices>
>         <emulator>/usr/bin/kvm</emulator>
>         <disk type='file' device='disk'>
>             <source file='/opt/nebula/ONE/var//32/images/disk.0'/>
>             <target dev='vda' bus='virtio'/>
>         </disk>
>         <interface type='bridge'>
>             <source bridge='br0'/>
>             <model type='virtio'/>
>         </interface>
>         <interface type='bridge'>
>             <source bridge='br0'/>
>             <mac address='00:03:0a:00:01:04'/>
>             <model type='virtio'/>
>         </interface>
>     </devices>
>     <features>
>         <pae/>
>         <acpi/>
>     </features>
>     <serial type="pty"><source path="/dev/pts/5"/><target
> port="0"/></serial><console type="pty" tty="/dev/pts/5"><source
> path="/dev/pts/5"/><target port="0"/></console>
> </domain>
>
> But still cannot connect to the console. The dumpxml (via virsh) reveals the
> following:
>
> oneadmin at uecB:~/domainTemplates$ virsh dumpxml one-32
> Connecting to uri: qemu:///system
> <domain type='kvm' id='15'>
>   <name>one-32</name>
>   <uuid>c51c3deb-7685-3722-9df1-10600d3f2df0</uuid>
>   <memory>262144</memory>
>   <currentMemory>262144</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch='i686' machine='pc-0.11'>hvm</type>
>     <boot dev='hd'/>
>   </os>
>   <features>
>     <acpi/>
>     <pae/>
>   </features>
>   <clock offset='utc'/>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>destroy</on_crash>
>   <devices>
>     <emulator>/usr/bin/kvm</emulator>
>     <disk type='file' device='disk'>
>       <source file='/opt/nebula/ONE/var//32/images/disk.0'/>
>       <target dev='vda' bus='virtio'/>
>     </disk>
>     <interface type='bridge'>
>       <mac address='52:54:00:9c:1f:76'/>
>       <source bridge='br0'/>
>       <target dev='vnet4'/>
>       <model type='virtio'/>
>     </interface>
>     <interface type='bridge'>
>       <mac address='00:03:0a:00:01:04'/>
>       <source bridge='br0'/>
>       <target dev='vnet5'/>
>       <model type='virtio'/>
>     </interface>
>   </devices>
>   <seclabel type='dynamic' model='apparmor'>
>     <label>libvirt-c51c3deb-7685-3722-9df1-10600d3f2df0</label>
>     <imagelabel>libvirt-c51c3deb-7685-3722-9df1-10600d3f2df0</imagelabel>
>   </seclabel>
> </domain>
>
> As you can see, the RAW attributes did not get generated here. Any idea what
> is going on and how I can get this resolved.
>
>
> Also, the documentation at
> http://opennebula.org/doku.php?id=documentation:rel1.4:kvmg
>
> <quote>
>
>   RAW = [ type = "kvm",
>
>
>           data = "<console type=\"stdio\"><target port=\"1\"></console>" ]
>
> </quote>
>
> causes the deployment to fail with the following error in the vm.log
>
> Thu Feb  4 11:37:59 2010 [VMM][I]: error: Failed to create domain from
> /opt/nebula/ONE/var//30/images/deployment.0
> Thu Feb  4 11:37:59 2010 [VMM][I]: error: at line 28: Opening and ending tag
> mismatch: target line 28 and console
> Thu Feb  4 11:37:59 2010 [VMM][I]:
> Thu Feb  4 11:37:59 2010 [VMM][I]: ExitCode: 1
> Thu Feb  4 11:37:59 2010 [VMM][E]: Error deploying virtual machine
>
> Therefore please update the documentation.
>
> Front Controller:
> ---------------------
> Ubuntu Karmic
> Open Nebula 1.4
>
> Node:
> -------
> Ubuntu Karmic
> KVM hypervisor
>
> Thanks in advance,
> RS
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>



-- 
Dr. Ruben Santiago Montero
Associate Professor, Complutense University of Madrid

URL:    http://dsa-research.org/doku.php?id=people:ruben
Weblog: http://blog.dsa-research.org/?author=7



More information about the Users mailing list