关于OpenNebula/one 报 information driver的问题

本文探讨了在使用OpenNebula云平台创建虚拟机过程中遇到的driver相关错误,并提供了两种常见问题的解决方案:一是确保onehostcreate命令中的参数与oned.conf配置文件一致;二是检查控制节点是否能正常轮询并获取主机信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在测试基于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
配置无问题的话,保证OpenNebula controller在一个polling周期以后收到hosts的信息,确保one可以连接到host:

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


### OpenNebula云计算管理平台介绍 #### 平台概述 OpenNebula是一个开源的云和边缘计算平台,旨在为企业提供灵活且高效的云计算解决方案[^1]。通过这个平台可以实现对多种工作负载的支持,包括但不限于传统的虚拟机、现代容器化应用程序以及新兴的无服务器函数。 #### 技术特性 - **多样的部署模式**:不仅限于数据中心内部署,在混合云环境中同样表现出色; - **广泛的兼容性**:能够与主流硬件设备无缝对接,并支持KVM, XenServer等多种hypervisor技术; - **丰富的API接口**:提供了RESTful API用于自动化管理和集成第三方工具; #### 开发语言和支持协议 该项目主要采用了Python 和 C++ 编程语言来构建核心组件和服务。同时为了鼓励更广泛的应用和发展,OpenNebula选择了Apache-2.0作为其主要授权方式之一,另外还包含了ONSLA (OpenNebula Software License Agreement) 及 ONSLA-NC (Non-Commercial Use Only)两种特定场景下的许可条款。 ```python import requests def get_opennebula_version(): url = "http://localhost:2633/RPC2" headers = {'Content-Type': 'text/xml'} body = """ <?xml version='1.0'?> <methodCall> <methodName>one.system.version</methodName> <params/> </methodCall> """ response = requests.post(url, data=body, headers=headers) if response.status_code == 200: return parse_xml(response.text).find('value/string').text else: raise Exception("Failed to connect") print(get_opennebula_version()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值