最近在测试基于opennebula的云平台,通过onehost create node1 im_kvm vmm_kvm tm_ssh命令,将一个节点node1加入到onehost列表中,然后就可以通过onevm来创建虚拟机。在创建虚拟机的过程中遇到了关于driver的错误,导致虚拟机无法创建。总结了两个容易造成oned.log或者vm.log出现driver错误的点。
1. onehost create命令中的参数im_kvm、vmm_kvm和oned.conf中的不匹配
这时创建虚拟机时oned.log会出现Could not find information driver xxx,来看一下oned.conf中Information Driver Manager的配置,参考如下:
IM_MAD = [
name = "im_kvm",
executable = "one_im_ssh",
arguments = "-r 0 -t 15 kvm" ]
VM_MAD = [
name = "vmm_kvm",
executable = "one_vmm_ssh",
arguments = "-t 15 -r 0 kvm",
default = "vmm_ssh/vmm_ssh_kvm.conf",
type = "kvm" ]
TM_MAD = [
name = "tm_ssh",
executable = "one_tm",
arguments = "tm_ssh/tm_ssh.conf" ]
IM的Driver名称是im_kvm,执行脚本是one_im_ssh,在one/lib/mads/目录下,同理VM_MAD和TM_MAD。这里的配置是没问题的。如果onehost create添加一个host时的driver名和conf文件里面的不一致,就会报出cound not find information driver 的问题。删除这个节点重新使用正确地driver名称创建即可。
2. OpenNebula控制节点周期性polling的影响
参考http://confluence.wartungsfenster.de/display/Adminspace/OpenNebula+information+drivers
也会造成could not find information driver的错误,原因是无法连接到host。用onehost list查看会发现host没有信息,状态为err。
oneadmin
@one
-controller:~$ onehost list
ID NAME RVM TCPU FCPU ACPU TMEM FMEM AMEM STAT
4
egal
0
600
548
600
7
.8G
5
.8G
7
.8G on
5
waxh0015
0
0
0
100
0K 0K 0K err
oneadmin
@one
-controller:~$ onehost list
ID NAME RVM TCPU FCPU ACPU TMEM FMEM AMEM STAT
4
egal
0
600
557
600
7
.8G
5
.8G
7
.8G on
5
waxh0015
0
2400
2399
2400
96G 636M 96G on