您的位置:首页 > 其它

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

2012-12-06 14:26 661 查看
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个

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  APi kvm 虚拟化 虚拟机