虚拟化平台 KVM API的ioctl使用示范(一)

KVM虚拟化平台提供了大量的API函数供用户级开发人员使用,但很多人还不知道如何使用。 本文将举一些实例提供给大家,后面会陆续更新。

 

KVM API 函数原理

      用户利用ioctl发送KVM  API  与 /dev/kvm进行交互,从而可以操纵KVM

KVM API 函数功能

       用户可以通过KVM API 获得KVM的内核信息,创建虚拟机,创建VCPU等等

KVM API 函数的文档位置

      因为KVM已经纳入了linux标准发布路线里,所以KVM的API文档也相应的在linux源文件夹中。

      以  linux-3.6 源文件为例,文档位置是 linux-3.6/Documentation/virtual/kvm

KVM API函数举例

     KVM_GET_API_VERSION 获得 kvm api版本号,(目前是12)

     KVM_CHECK_EXTENSIONS 获得 kvm对单台虚拟机最高支持的性能规格,(比如vcpu的个数)

     KVM_CREATE_VM 创建虚拟机

 

KVM  API函数使用示范

     目标:使用KVM_GET_API_VERSION,和KVM_CHECK_EXTENSIONS查询KVM的参数设置
     方法:使用ioctl 与/dev/kvm 交互,获得返回值

     代码如下

 

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/kvm.h>






#define    KVM_FILE  "/dev/kvm"


int main()
{
        int dev;
        int state;
        int cnt;

        dev=open(KVM_FILE,O_RDWR|O_NDELAY);
        cnt=ioctl(dev,KVM_GET_API_VERSION,0);
        printf ("----KVM API version is--%d---\n",cnt);
        cnt=ioctl(dev,KVM_CHECK_EXTENSION,KVM_CAP_MAX_VCPUS);
        printf ("----KVM supporting guest MAX_VCPUS is %d---\n",cnt);
        return 0;
}

Makefile:

all:get_version

编译,使用

make

./get_version

 

使用结果



我们可以知道 当前KVM api 版本时12,支持guest 最大VCPU个数是254个

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值