[one-users] retrieve info from OpenVZ host running libvirtd

knawnd at gmail.com knawnd at gmail.com
Fri Feb 18 08:27:12 PST 2011


Dear all,

Trying to implement IM driver for OpenVZ cluster nodes I faced with the 
following problem:

$ onehost list
   ID NAME                           CLUSTER  RVM   TCPU   FCPU   ACPU 
   TMEM    FMEM STAT
    2 <cluster_node1>         xen_x64           0       200      200 
     200       3.1G     128M    on
    3 <cluster_node2>         ovz_x32           0            0 
  0       100           0K          0K     err

oned.log:
[...]
Fri Feb 18 18:54:47 2011 [InM][D]: Host 3 successfully monitored.
Fri Feb 18 18:54:47 2011 [ONE][E]: syntax error, unexpected $end, 
expecting VARIABLE at line 2, columns 1:2
Fri Feb 18 18:54:47 2011 [InM][E]: Error parsing host information:
[...]

I added oneadmin user into /etc/sudoers file and commented out the line 
"Defaults    requiretty":
$ egrep "oneadmin|requiretty" /etc/sudoers
#Defaults    requiretty
oneadmin        ALL=(ALL)       NOPASSWD: ALL

(I couldn't figure out more secure and elegant way to get info from 
OpenVZ host having libvirt interface installed. Any suggestions on that?)

and did the following changes in ovz.rb file:
$ diff /usr/lib/one/remotes/im/ovz.d/ovz.rb 
/usr/lib/one/remotes/im/kvm.d/kvm.rb
29c29
< nodeinfo_text = `sudo virsh -c openvz:///system nodeinfo`
---
 > nodeinfo_text = `virsh -c qemu:///system nodeinfo`
90c90
< print_info("HYPERVISOR","ovz")
---
 > print_info("HYPERVISOR","kvm")

"sudo virsh -c openvz:///system nodeinfo" running under oneadmin user 
from front-end node gives the following output:
[oneadmin@<ONE_front-end>$ ssh <OVZ_cluster_node> sudo virsh -c 
openvz:///system nodeinfo
CPU model:           i686
CPU(s):              1
CPU frequency:       2793 MHz
CPU socket(s):       1
Core(s) per socket:  1
Thread(s) per core:  1
NUMA cell(s):        1
Memory size:         2056216 kB

I was hoping to apply the same solution as written in "KVM Driver Guide 
2.0" (http://opennebula.org/documentation:rel2.0:kvmg) since ONE uses 
the libvirt interface as well to interact with KVM hosts:
...The following steps are required in the cluster nodes to get the KVM 
driver running:
[...]
     *      The user with access to these remotes hosts on behalf of 
OpenNebula (typically <oneadmin>) has to pertain to the <libvirtd> and 
<kvm> groups in order to use the deaemon and be able to launch VMs.

but I can't following that way since there is no libvirt group and 
libvirtd is run under root (I had to build libvirt from tarball 
available at its home page since CentOS has a pretty old one in its 
repos without openvz support).

Any help on that is highly appreciated!
Nikolay.



More information about the Users mailing list